@@ -38,7 +38,8 @@ data class Alert(
3838 val errorHistory : List <AlertError >,
3939 val severity : String ,
4040 val actionExecutionResults : List <ActionExecutionResult >,
41- val aggregationResultBucket : AggregationResultBucket ? = null
41+ val aggregationResultBucket : AggregationResultBucket ? = null ,
42+ val executionId : String? = null ,
4243) : Writeable, ToXContent {
4344
4445 init {
@@ -47,6 +48,24 @@ data class Alert(
4748 }
4849 }
4950
51+ constructor (
52+ startTime: Instant ,
53+ lastNotificationTime: Instant ? ,
54+ state: State = State .ACTIVE ,
55+ errorMessage: String? = null ,
56+ schemaVersion: Int = NO_SCHEMA_VERSION ,
57+ executionId: String ,
58+ chainedAlertTrigger: ChainedAlertTrigger ,
59+ workflow: Workflow
60+ ) : this (
61+ monitorId = NO_ID , monitorName = " " , monitorVersion = NO_VERSION , monitorUser = workflow.user,
62+ triggerId = chainedAlertTrigger.id, triggerName = chainedAlertTrigger.name, state = state, startTime = startTime,
63+ lastNotificationTime = lastNotificationTime, errorMessage = errorMessage, errorHistory = emptyList(),
64+ severity = chainedAlertTrigger.severity, actionExecutionResults = emptyList(), schemaVersion = schemaVersion,
65+ aggregationResultBucket = null , findingIds = emptyList(), relatedDocIds = emptyList(),
66+ executionId = executionId
67+ )
68+
5069 constructor (
5170 monitor: Monitor ,
5271 trigger: QueryLevelTrigger ,
@@ -56,13 +75,15 @@ data class Alert(
5675 errorMessage: String? = null ,
5776 errorHistory: List <AlertError > = mutableListOf (),
5877 actionExecutionResults: List <ActionExecutionResult > = mutableListOf (),
59- schemaVersion: Int = NO_SCHEMA_VERSION
78+ schemaVersion: Int = NO_SCHEMA_VERSION ,
79+ executionId: String? = null
6080 ) : this (
6181 monitorId = monitor.id, monitorName = monitor.name, monitorVersion = monitor.version, monitorUser = monitor.user,
6282 triggerId = trigger.id, triggerName = trigger.name, state = state, startTime = startTime,
6383 lastNotificationTime = lastNotificationTime, errorMessage = errorMessage, errorHistory = errorHistory,
6484 severity = trigger.severity, actionExecutionResults = actionExecutionResults, schemaVersion = schemaVersion,
65- aggregationResultBucket = null , findingIds = emptyList(), relatedDocIds = emptyList()
85+ aggregationResultBucket = null , findingIds = emptyList(), relatedDocIds = emptyList(),
86+ executionId = executionId
6687 )
6788
6889 constructor (
@@ -75,13 +96,15 @@ data class Alert(
7596 errorHistory: List <AlertError > = mutableListOf (),
7697 actionExecutionResults: List <ActionExecutionResult > = mutableListOf (),
7798 schemaVersion: Int = NO_SCHEMA_VERSION ,
78- findingIds: List <String > = emptyList()
99+ findingIds: List <String > = emptyList(),
100+ executionId: String? = null
79101 ) : this (
80102 monitorId = monitor.id, monitorName = monitor.name, monitorVersion = monitor.version, monitorUser = monitor.user,
81103 triggerId = trigger.id, triggerName = trigger.name, state = state, startTime = startTime,
82104 lastNotificationTime = lastNotificationTime, errorMessage = errorMessage, errorHistory = errorHistory,
83105 severity = trigger.severity, actionExecutionResults = actionExecutionResults, schemaVersion = schemaVersion,
84- aggregationResultBucket = null , findingIds = findingIds, relatedDocIds = emptyList()
106+ aggregationResultBucket = null , findingIds = findingIds, relatedDocIds = emptyList(),
107+ executionId = executionId
85108 )
86109
87110 constructor (
@@ -95,13 +118,15 @@ data class Alert(
95118 actionExecutionResults: List <ActionExecutionResult > = mutableListOf (),
96119 schemaVersion: Int = NO_SCHEMA_VERSION ,
97120 aggregationResultBucket: AggregationResultBucket ,
98- findingIds: List <String > = emptyList()
121+ findingIds: List <String > = emptyList(),
122+ executionId: String? = null
99123 ) : this (
100124 monitorId = monitor.id, monitorName = monitor.name, monitorVersion = monitor.version, monitorUser = monitor.user,
101125 triggerId = trigger.id, triggerName = trigger.name, state = state, startTime = startTime,
102126 lastNotificationTime = lastNotificationTime, errorMessage = errorMessage, errorHistory = errorHistory,
103127 severity = trigger.severity, actionExecutionResults = actionExecutionResults, schemaVersion = schemaVersion,
104- aggregationResultBucket = aggregationResultBucket, findingIds = findingIds, relatedDocIds = emptyList()
128+ aggregationResultBucket = aggregationResultBucket, findingIds = findingIds, relatedDocIds = emptyList(),
129+ executionId = executionId
105130 )
106131
107132 constructor (
@@ -116,13 +141,15 @@ data class Alert(
116141 errorMessage: String? = null ,
117142 errorHistory: List <AlertError > = mutableListOf (),
118143 actionExecutionResults: List <ActionExecutionResult > = mutableListOf (),
119- schemaVersion: Int = NO_SCHEMA_VERSION
144+ schemaVersion: Int = NO_SCHEMA_VERSION ,
145+ executionId: String? = null
120146 ) : this (
121147 id = id, monitorId = monitor.id, monitorName = monitor.name, monitorVersion = monitor.version, monitorUser = monitor.user,
122148 triggerId = trigger.id, triggerName = trigger.name, state = state, startTime = startTime,
123149 lastNotificationTime = lastNotificationTime, errorMessage = errorMessage, errorHistory = errorHistory,
124150 severity = trigger.severity, actionExecutionResults = actionExecutionResults, schemaVersion = schemaVersion,
125- aggregationResultBucket = null , findingIds = findingIds, relatedDocIds = relatedDocIds
151+ aggregationResultBucket = null , findingIds = findingIds, relatedDocIds = relatedDocIds,
152+ executionId = executionId
126153 )
127154
128155 constructor (
@@ -171,7 +198,8 @@ data class Alert(
171198 errorHistory = sin.readList(::AlertError ),
172199 severity = sin.readString(),
173200 actionExecutionResults = sin.readList(::ActionExecutionResult ),
174- aggregationResultBucket = if (sin.readBoolean()) AggregationResultBucket (sin) else null
201+ aggregationResultBucket = if (sin.readBoolean()) AggregationResultBucket (sin) else null ,
202+ executionId = sin.readOptionalString()
175203 )
176204
177205 fun isAcknowledged (): Boolean = (state == State .ACKNOWLEDGED )
@@ -205,6 +233,7 @@ data class Alert(
205233 } else {
206234 out .writeBoolean(false )
207235 }
236+ out .writeOptionalString(executionId)
208237 }
209238
210239 companion object {
@@ -229,6 +258,7 @@ data class Alert(
229258 const val ALERT_HISTORY_FIELD = " alert_history"
230259 const val SEVERITY_FIELD = " severity"
231260 const val ACTION_EXECUTION_RESULTS_FIELD = " action_execution_results"
261+ const val EXECUTION_ID_FIELD = " execution_id"
232262 const val BUCKET_KEYS = AggregationResultBucket .BUCKET_KEYS
233263 const val PARENTS_BUCKET_PATH = AggregationResultBucket .PARENTS_BUCKET_PATH
234264 const val NO_ID = " "
@@ -254,6 +284,7 @@ data class Alert(
254284 var lastNotificationTime: Instant ? = null
255285 var acknowledgedTime: Instant ? = null
256286 var errorMessage: String? = null
287+ var executionId: String? = null
257288 val errorHistory: MutableList <AlertError > = mutableListOf ()
258289 val actionExecutionResults: MutableList <ActionExecutionResult > = mutableListOf ()
259290 var aggAlertBucket: AggregationResultBucket ? = null
@@ -288,6 +319,7 @@ data class Alert(
288319 LAST_NOTIFICATION_TIME_FIELD -> lastNotificationTime = xcp.instant()
289320 ACKNOWLEDGED_TIME_FIELD -> acknowledgedTime = xcp.instant()
290321 ERROR_MESSAGE_FIELD -> errorMessage = xcp.textOrNull()
322+ EXECUTION_ID_FIELD -> executionId = xcp.textOrNull()
291323 ALERT_HISTORY_FIELD -> {
292324 ensureExpectedToken(XContentParser .Token .START_ARRAY , xcp.currentToken(), xcp)
293325 while (xcp.nextToken() != XContentParser .Token .END_ARRAY ) {
@@ -323,7 +355,7 @@ data class Alert(
323355 lastNotificationTime = lastNotificationTime, acknowledgedTime = acknowledgedTime,
324356 errorMessage = errorMessage, errorHistory = errorHistory, severity = severity,
325357 actionExecutionResults = actionExecutionResults, aggregationResultBucket = aggAlertBucket, findingIds = findingIds,
326- relatedDocIds = relatedDocIds
358+ relatedDocIds = relatedDocIds, executionId = executionId
327359 )
328360 }
329361
@@ -349,6 +381,7 @@ data class Alert(
349381 .field(SCHEMA_VERSION_FIELD , schemaVersion)
350382 .field(MONITOR_VERSION_FIELD , monitorVersion)
351383 .field(MONITOR_NAME_FIELD , monitorName)
384+ .field(EXECUTION_ID_FIELD , executionId)
352385
353386 if (! secure) {
354387 builder.optionalUserField(MONITOR_USER_FIELD , monitorUser)
@@ -379,6 +412,7 @@ data class Alert(
379412 ALERT_VERSION_FIELD to version,
380413 END_TIME_FIELD to endTime?.toEpochMilli(),
381414 ERROR_MESSAGE_FIELD to errorMessage,
415+ EXECUTION_ID_FIELD to executionId,
382416 LAST_NOTIFICATION_TIME_FIELD to lastNotificationTime?.toEpochMilli(),
383417 SEVERITY_FIELD to severity,
384418 START_TIME_FIELD to startTime.toEpochMilli(),
0 commit comments