in x-pack/platform/plugins/shared/alerting/server/lib/alerting_event_logger/alerting_event_logger.ts [689:785]
export function updateEvent(event: IEvent, opts: UpdateEventOpts) {
const {
message,
outcome,
error,
status,
reason,
metrics,
timings,
alertingOutcome,
backfill,
maintenanceWindowIds,
} = opts;
if (!event) {
throw new Error('Cannot update event because it is not initialized.');
}
if (message) {
event.message = message;
}
if (outcome) {
event.event = event.event || {};
event.event.outcome = outcome;
}
if (alertingOutcome) {
event.kibana = event.kibana || {};
event.kibana.alerting = event.kibana.alerting || {};
event.kibana.alerting.outcome = alertingOutcome;
}
if (error) {
event.error = event.error || {};
event.error.message = error;
}
if (status) {
event.kibana = event.kibana || {};
event.kibana.alerting = event.kibana.alerting || {};
event.kibana.alerting.status = status;
}
if (reason) {
event.event = event.event || {};
event.event.reason = reason;
}
if (metrics) {
event.kibana = event.kibana || {};
event.kibana.alert = event.kibana.alert || {};
event.kibana.alert.rule = event.kibana.alert.rule || {};
event.kibana.alert.rule.execution = event.kibana.alert.rule.execution || {};
event.kibana.alert.rule.execution.metrics = {
...event.kibana.alert.rule.execution.metrics,
number_of_triggered_actions: metrics.numberOfTriggeredActions
? metrics.numberOfTriggeredActions
: 0,
number_of_generated_actions: metrics.numberOfGeneratedActions
? metrics.numberOfGeneratedActions
: 0,
alert_counts: {
active: metrics.numberOfActiveAlerts ? metrics.numberOfActiveAlerts : 0,
new: metrics.numberOfNewAlerts ? metrics.numberOfNewAlerts : 0,
recovered: metrics.numberOfRecoveredAlerts ? metrics.numberOfRecoveredAlerts : 0,
},
number_of_delayed_alerts: metrics.numberOfDelayedAlerts ? metrics.numberOfDelayedAlerts : 0,
number_of_searches: metrics.numSearches ? metrics.numSearches : 0,
es_search_duration_ms: metrics.esSearchDurationMs ? metrics.esSearchDurationMs : 0,
total_search_duration_ms: metrics.totalSearchDurationMs ? metrics.totalSearchDurationMs : 0,
};
}
if (backfill) {
event.kibana = event.kibana || {};
event.kibana.alert = event.kibana.alert || {};
event.kibana.alert.rule = event.kibana.alert.rule || {};
event.kibana.alert.rule.execution = event.kibana.alert.rule.execution || {};
event.kibana.alert.rule.execution.backfill = backfill;
}
if (timings) {
event.kibana = event.kibana || {};
event.kibana.alert = event.kibana.alert || {};
event.kibana.alert.rule = event.kibana.alert.rule || {};
event.kibana.alert.rule.execution = event.kibana.alert.rule.execution || {};
event.kibana.alert.rule.execution.metrics = {
...event.kibana.alert.rule.execution.metrics,
...timings,
};
}
if (maintenanceWindowIds) {
event.kibana = event.kibana || {};
event.kibana.alert = event.kibana.alert || {};
event.kibana.alert.maintenance_window_ids = maintenanceWindowIds;
}
}