2015-05-18 10:16:18 -07:00
{
"trigger" : {
"schedule" : {
"interval" : "1m"
}
} ,
"input" : {
"search" : {
"request" : {
"indices" : [
".marvel-*"
] ,
"search_type" : "count" ,
"body" : {
"query" : {
"filtered" : {
"filter" : {
"range" : {
2015-08-06 15:30:05 -07:00
"timestamp" : {
2015-05-18 10:16:18 -07:00
"gte" : "now-2m" ,
"lte" : "now"
}
}
}
}
} ,
"aggs" : {
"minutes" : {
"date_histogram" : {
2015-08-06 15:30:05 -07:00
"field" : "timestamp" ,
2015-05-18 10:16:18 -07:00
"interval" : "minute"
} ,
"aggs" : {
"nodes" : {
"terms" : {
"field" : "node.name.raw" ,
"size" : 10 ,
"order" : {
"memory" : "desc"
}
} ,
"aggs" : {
"memory" : {
"avg" : {
"field" : "jvm.mem.heap_used_percent"
}
}
}
}
}
}
}
}
}
}
} ,
"throttle_period" : "30m" ,
"condition" : {
"script" : "if (ctx.payload.aggregations.minutes.buckets.size() == 0) return false; def latest = ctx.payload.aggregations.minutes.buckets[-1]; def node = latest.nodes.buckets[0]; return node && node.memory && node.memory.value >= 75;"
} ,
"actions" : {
"send_email" : {
"transform" : {
"script" : "def latest = ctx.payload.aggregations.minutes.buckets[-1]; return latest.nodes.buckets.findAll { return it.memory && it.memory.value >= 75 };"
} ,
"email" : {
"to" : "user@example.com" ,
"subject" : "Watcher Notification - HIGH MEMORY USAGE" ,
"body" : "Nodes with HIGH MEMORY Usage (above 75%):\n\n{{#ctx.payload._value}}\"{{key}}\" - Memory Usage is at {{memory.value}}%\n{{/ctx.payload._value}}"
}
}
}
}