12 hours ago, Stuart Weenig said:
No built in way to reference other datapoints when one datapoint has an alert.
However, you could make your complex datapoint a little more complex. Not knowing exactly, I assume that resource_actual_state and resource_configuration_state can both be either 0 or 1.
Your complex datapoint could be:
(resource_actual_state * 10) + resource_configuration_state
The resulting values could be 0, 1, 10, or 11. Your threshold could be >0. You could include the value in the alert and provide a description that says the first digit represents the resource_actual_state and the second digit represents the resource_configuration_state.
Workaround and klugey I know, but it is what it is.
I appreciate your suggestion, however, it doesn't suit our case.
The complex datapoint is being used to trigger the actual severity of the problem. In case it's a resource fault we want it critical, if it's only config we'll want error instead.
However, the status that we would like to pass on the message itself can have a lot of values (from the simple datapoint itself).
It can be 1,2,3,4,5,6,7,etc...
In sum, we've 2 simple data points that can have multiple values (where >2 isn't healthy). But 1 overrides the other (in terms of the issue itself).
That's why we came up with the complex expression below:
if(un(Configuration),if(gt(State,2),1,0),if(gt(State,2),1,if(gt(Configuration,2),2,0)))
Basically we might have instances the return the 'Configuration' data & others that doesn't. So, we validate if the actual 'Configuration' returns data in first place.
If it doesn't return proper data then we'll look to 'State' directly (returning 1 if it's >2). If it does return valid 'Data' (!= NaN), evaluate the 'State' first (returning 1 if it's >2) and, if the 'State' isn't >2 then evaluate the 'Configuration' condition (returning 2 if it's >2).
Then we just alarm 'Error' if it's 2 & 'Critical' if it's 1
I guess we'll just instruct our team(s) to have a look on the graph(s) for both datapoint values.
Regards,