Advanced Mode Trigger¶
Sometimes a simple trigger (Simple Threshold Trigger) doesn’t provide enough flexibility for your task.
For example, you may want to receive a notification when 5% of user requests take up more than a second to process, but only if there are more than 100 requests per minute. Usually, you will have two separate metrics for this:
Nginx.requests.process_time.p95- 95th percentile of request processing time in milliseconds
Nginx.requests.count- request count per minute
Maybe you can construct a monstrous Graphite expression to reflect this combination, but Moira’s Advanced Mode is better:
You can use any govaluate expression with predefined constants here:
t2, … are values from your targets
NODATAare states that must be the result of evaluation
PREV_STATEis equal to previously set state, and allows you to prevent frequent state changes
Only T1 target can resolve into multiple metrics in Advanced Mode. T2, T3, … must resolve to single metrics. Moira will calculate expression separately for every metric in T1.
Any incorrect expressions or bad syntax will result in EXCEPTION trigger state.