[Security Solution] Add Task Metric Collection to New Tasks (#145181)

## Summary

Adding task metric collections to the recently added kibana tasks
This commit is contained in:
JD Kurma 2022-11-14 17:12:58 -05:00 committed by GitHub
parent 105e54fe96
commit 24df1db3a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 2 deletions

View file

@ -6,13 +6,14 @@
*/
import type { Logger } from '@kbn/core/server';
import { TASK_METRICS_CHANNEL } from '../constants';
import type { ITelemetryEventsSender } from '../sender';
import type { TelemetryConfiguration } from '../types';
import type { ITelemetryReceiver } from '../receiver';
import type { TaskExecutionPeriod } from '../task';
import { artifactService } from '../artifact';
import { telemetryConfiguration } from '../configuration';
import { tlog } from '../helpers';
import { createTaskMetric, tlog } from '../helpers';
export function createTelemetryConfigurationTaskConfig() {
return {
@ -28,6 +29,8 @@ export function createTelemetryConfigurationTaskConfig() {
sender: ITelemetryEventsSender,
taskExecutionPeriod: TaskExecutionPeriod
) => {
const startTime = Date.now();
const taskName = 'Security Solution Telemetry Configuration Task';
try {
const artifactName = 'telemetry-buffer-and-batch-sizes-v1';
const configArtifact = (await artifactService.getArtifact(
@ -42,10 +45,16 @@ export function createTelemetryConfigurationTaskConfig() {
configArtifact.max_endpoint_telemetry_batch;
telemetryConfiguration.max_security_list_telemetry_batch =
configArtifact.max_security_list_telemetry_batch;
await sender.sendOnDemand(TASK_METRICS_CHANNEL, [
createTaskMetric(taskName, true, startTime),
]);
return 0;
} catch (err) {
tlog(logger, `Failed to set telemetry configuration due to ${err.message}`);
telemetryConfiguration.resetAllToDefault();
await sender.sendOnDemand(TASK_METRICS_CHANNEL, [
createTaskMetric(taskName, false, startTime, err.message),
]);
return 0;
}
},

View file

@ -6,13 +6,14 @@
*/
import type { Logger } from '@kbn/core/server';
import { TASK_METRICS_CHANNEL } from '../constants';
import type { ITelemetryEventsSender } from '../sender';
import type { TelemetryFilterListArtifact } from '../types';
import type { ITelemetryReceiver } from '../receiver';
import type { TaskExecutionPeriod } from '../task';
import { artifactService } from '../artifact';
import { filterList } from '../filterlists';
import { tlog } from '../helpers';
import { createTaskMetric, tlog } from '../helpers';
export function createTelemetryFilterListArtifactTaskConfig() {
return {
@ -28,6 +29,8 @@ export function createTelemetryFilterListArtifactTaskConfig() {
sender: ITelemetryEventsSender,
taskExecutionPeriod: TaskExecutionPeriod
) => {
const startTime = Date.now();
const taskName = 'Security Solution Telemetry Filter List Artifact Task';
try {
const artifactName = 'telemetry-filterlists-v1';
const artifact = (await artifactService.getArtifact(
@ -36,10 +39,16 @@ export function createTelemetryFilterListArtifactTaskConfig() {
filterList.endpointAlerts = artifact.endpoint_alerts;
filterList.exceptionLists = artifact.exception_lists;
filterList.prebuiltRulesAlerts = artifact.prebuilt_rules_alerts;
await sender.sendOnDemand(TASK_METRICS_CHANNEL, [
createTaskMetric(taskName, true, startTime),
]);
return 0;
} catch (err) {
tlog(logger, `Failed to set telemetry filterlist artifact due to ${err.message}`);
filterList.resetAllToDefault();
await sender.sendOnDemand(TASK_METRICS_CHANNEL, [
createTaskMetric(taskName, false, startTime, err.message),
]);
return 0;
}
},