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 Python 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.
Expression evaluation is intended to be as safe as possible. You can’t use any Python functions here.
Any incorrect expressions or bad syntax will result in EXCEPTION trigger state.