mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[Alerting] Track fields usage in find api (#112096)
* Track fields usage * Add test * Add missing change
This commit is contained in:
parent
6c73b2ad2f
commit
49977b2e4b
4 changed files with 79 additions and 2 deletions
|
@ -4,7 +4,7 @@
|
||||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||||
* 2.0.
|
* 2.0.
|
||||||
*/
|
*/
|
||||||
|
import { usageCountersServiceMock } from 'src/plugins/usage_collection/server/usage_counters/usage_counters_service.mock';
|
||||||
import { findRulesRoute } from './find_rules';
|
import { findRulesRoute } from './find_rules';
|
||||||
import { httpServiceMock } from 'src/core/server/mocks';
|
import { httpServiceMock } from 'src/core/server/mocks';
|
||||||
import { licenseStateMock } from '../lib/license_state.mock';
|
import { licenseStateMock } from '../lib/license_state.mock';
|
||||||
|
@ -12,7 +12,6 @@ import { verifyApiAccess } from '../lib/license_api_access';
|
||||||
import { mockHandlerArguments } from './_mock_handler_arguments';
|
import { mockHandlerArguments } from './_mock_handler_arguments';
|
||||||
import { rulesClientMock } from '../rules_client.mock';
|
import { rulesClientMock } from '../rules_client.mock';
|
||||||
import { trackLegacyTerminology } from './lib/track_legacy_terminology';
|
import { trackLegacyTerminology } from './lib/track_legacy_terminology';
|
||||||
import { usageCountersServiceMock } from 'src/plugins/usage_collection/server/usage_counters/usage_counters_service.mock';
|
|
||||||
|
|
||||||
const rulesClient = rulesClientMock.create();
|
const rulesClient = rulesClientMock.create();
|
||||||
const mockUsageCountersSetup = usageCountersServiceMock.createSetupContract();
|
const mockUsageCountersSetup = usageCountersServiceMock.createSetupContract();
|
||||||
|
@ -187,4 +186,40 @@ describe('findRulesRoute', () => {
|
||||||
'alertTypeId',
|
'alertTypeId',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should track calls to deprecated functionality', async () => {
|
||||||
|
const licenseState = licenseStateMock.create();
|
||||||
|
const router = httpServiceMock.createRouter();
|
||||||
|
|
||||||
|
findRulesRoute(router, licenseState, mockUsageCounter);
|
||||||
|
|
||||||
|
const findResult = {
|
||||||
|
page: 1,
|
||||||
|
perPage: 1,
|
||||||
|
total: 0,
|
||||||
|
data: [],
|
||||||
|
};
|
||||||
|
rulesClient.find.mockResolvedValueOnce(findResult);
|
||||||
|
|
||||||
|
const [, handler] = router.get.mock.calls[0];
|
||||||
|
const [context, req, res] = mockHandlerArguments(
|
||||||
|
{ rulesClient },
|
||||||
|
{
|
||||||
|
params: {},
|
||||||
|
query: {
|
||||||
|
fields: ['foo', 'bar'],
|
||||||
|
per_page: 1,
|
||||||
|
page: 1,
|
||||||
|
default_search_operator: 'OR',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
['ok']
|
||||||
|
);
|
||||||
|
await handler(context, req, res);
|
||||||
|
expect(mockUsageCounter.incrementCounter).toHaveBeenCalledWith({
|
||||||
|
counterName: `alertingFieldsUsage`,
|
||||||
|
counterType: 'alertingFieldsUsage',
|
||||||
|
incrementBy: 1,
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -136,6 +136,14 @@ export const findRulesRoute = (
|
||||||
search_fields: searchFieldsAsArray(req.query.search_fields),
|
search_fields: searchFieldsAsArray(req.query.search_fields),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (req.query.fields) {
|
||||||
|
usageCounter?.incrementCounter({
|
||||||
|
counterName: `alertingFieldsUsage`,
|
||||||
|
counterType: 'alertingFieldsUsage',
|
||||||
|
incrementBy: 1,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const findResult = await rulesClient.find({ options });
|
const findResult = await rulesClient.find({ options });
|
||||||
return res.ok({
|
return res.ok({
|
||||||
body: rewriteBodyRes(findResult),
|
body: rewriteBodyRes(findResult),
|
||||||
|
|
|
@ -194,4 +194,30 @@ describe('findAlertRoute', () => {
|
||||||
'alertTypeId',
|
'alertTypeId',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should track calls to deprecated functionality', async () => {
|
||||||
|
const licenseState = licenseStateMock.create();
|
||||||
|
const router = httpServiceMock.createRouter();
|
||||||
|
const mockUsageCountersSetup = usageCountersServiceMock.createSetupContract();
|
||||||
|
const mockUsageCounter = mockUsageCountersSetup.createUsageCounter('test');
|
||||||
|
|
||||||
|
findAlertRoute(router, licenseState, mockUsageCounter);
|
||||||
|
const [, handler] = router.get.mock.calls[0];
|
||||||
|
const [context, req, res] = mockHandlerArguments(
|
||||||
|
{ rulesClient },
|
||||||
|
{
|
||||||
|
params: {},
|
||||||
|
query: {
|
||||||
|
fields: ['foo', 'bar'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
['ok']
|
||||||
|
);
|
||||||
|
await handler(context, req, res);
|
||||||
|
expect(mockUsageCounter.incrementCounter).toHaveBeenCalledWith({
|
||||||
|
counterName: `legacyAlertingFieldsUsage`,
|
||||||
|
counterType: 'alertingFieldsUsage',
|
||||||
|
incrementBy: 1,
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -89,6 +89,14 @@ export const findAlertRoute = (
|
||||||
: [query.search_fields];
|
: [query.search_fields];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (query.fields) {
|
||||||
|
usageCounter?.incrementCounter({
|
||||||
|
counterName: `legacyAlertingFieldsUsage`,
|
||||||
|
counterType: 'alertingFieldsUsage',
|
||||||
|
incrementBy: 1,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const findResult = await rulesClient.find({ options });
|
const findResult = await rulesClient.find({ options });
|
||||||
return res.ok({
|
return res.ok({
|
||||||
body: findResult,
|
body: findResult,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue