@@ -44,7 +44,8 @@ data class Monitor(
44
44
val dataSources : DataSources = DataSources (),
45
45
val deleteQueryIndexInEveryRun : Boolean? = false ,
46
46
val shouldCreateSingleAlertForFindings : Boolean? = false ,
47
- val owner : String? = " alerting"
47
+ val owner : String? = " alerting" ,
48
+ val fanoutEnabled : Boolean? = true ,
48
49
) : ScheduledJob {
49
50
50
51
override val type = MONITOR_TYPE
@@ -114,6 +115,7 @@ data class Monitor(
114
115
},
115
116
deleteQueryIndexInEveryRun = sin.readOptionalBoolean(),
116
117
shouldCreateSingleAlertForFindings = sin.readOptionalBoolean(),
118
+ fanoutEnabled = sin.readOptionalBoolean(),
117
119
owner = sin.readOptionalString()
118
120
)
119
121
@@ -175,6 +177,7 @@ data class Monitor(
175
177
builder.field(DATA_SOURCES_FIELD , dataSources)
176
178
builder.field(DELETE_QUERY_INDEX_IN_EVERY_RUN_FIELD , deleteQueryIndexInEveryRun)
177
179
builder.field(SHOULD_CREATE_SINGLE_ALERT_FOR_FINDINGS_FIELD , shouldCreateSingleAlertForFindings)
180
+ builder.field(FAN_OUT_ENABLED_FIELD , fanoutEnabled)
178
181
builder.field(OWNER_FIELD , owner)
179
182
if (params.paramAsBoolean(" with_type" , false )) builder.endObject()
180
183
return builder.endObject()
@@ -228,6 +231,7 @@ data class Monitor(
228
231
dataSources.writeTo(out )
229
232
out .writeOptionalBoolean(deleteQueryIndexInEveryRun)
230
233
out .writeOptionalBoolean(shouldCreateSingleAlertForFindings)
234
+ out .writeOptionalBoolean(fanoutEnabled)
231
235
out .writeOptionalString(owner)
232
236
}
233
237
@@ -250,6 +254,7 @@ data class Monitor(
250
254
const val ENABLED_TIME_FIELD = " enabled_time"
251
255
const val DELETE_QUERY_INDEX_IN_EVERY_RUN_FIELD = " delete_query_index_in_every_run"
252
256
const val SHOULD_CREATE_SINGLE_ALERT_FOR_FINDINGS_FIELD = " should_create_single_alert_for_findings"
257
+ const val FAN_OUT_ENABLED_FIELD = " fan_out_enabled"
253
258
const val OWNER_FIELD = " owner"
254
259
val MONITOR_TYPE_PATTERN = Pattern .compile(" [a-zA-Z0-9_]{5,25}" )
255
260
@@ -281,6 +286,7 @@ data class Monitor(
281
286
var deleteQueryIndexInEveryRun = false
282
287
var delegateMonitor = false
283
288
var owner = " alerting"
289
+ var fanoutEnabled = true
284
290
285
291
XContentParserUtils .ensureExpectedToken(XContentParser .Token .START_OBJECT , xcp.currentToken(), xcp)
286
292
while (xcp.nextToken() != XContentParser .Token .END_OBJECT ) {
@@ -343,6 +349,11 @@ data class Monitor(
343
349
} else {
344
350
xcp.booleanValue()
345
351
}
352
+ FAN_OUT_ENABLED_FIELD -> fanoutEnabled = if (xcp.currentToken() == XContentParser .Token .VALUE_NULL ) {
353
+ fanoutEnabled
354
+ } else {
355
+ xcp.booleanValue()
356
+ }
346
357
OWNER_FIELD -> owner = if (xcp.currentToken() == XContentParser .Token .VALUE_NULL ) owner else xcp.text()
347
358
else -> {
348
359
xcp.skipChildren()
@@ -372,7 +383,8 @@ data class Monitor(
372
383
dataSources,
373
384
deleteQueryIndexInEveryRun,
374
385
delegateMonitor,
375
- owner
386
+ owner,
387
+ fanoutEnabled
376
388
)
377
389
}
378
390
0 commit comments