Showing results for 
Search instead for 
Did you mean: 
Create Post

Alerts with multiple custom poller values

I've been trying to figure out how to do this but I don't think it is possible.  Any help would be appreciated.

I have a custom poller for my APC UPS devices that checks a number of different values (battery remaining, temperature, humidity, etc.)  I have an alert created that sends out an email when the UPS has a battery percentage <95%.  I would like to include some other custom poller values as well.  In particular, I'd like to be able to include the last time diagnostics were run and their result.

My trigger looks like this:

Trigger Alert when all of the following apply
  ITCS is not empty
  Trigger Alert when all of the following apply
    Poller Name is equal to BatteryPercentageRemaining
    Numeric Status is less than 95
    Node Status is not equal to Unknown
    Node Status is not equal to Down
    Node Status is not equal to UnManaged

and the Trigger Action email looks like this:

Node ${NodeName} has ${CustomPollerStatus.Status}% battery capacity remaining.

   Triggered: ${AlertTriggerTime} ET
    Location: ${Node.Location}
     Contact: ${Node.Contact}
   Node Name: ${NodeName}
    Platform: ${Node.MachineType}
  IP Address: ${Node.IP_Address}

The problem seems to be that the only variables I can choose from relate to the custom poller that is being checked in the trigger.  I don't know a way to add another poller to the trigger as I would then have two "Poller Name is equal to. . ." conditions which would end up canceling each other out and the alert would never be triggered.

Does anybody know how I could add other custom poller values that are "informational" to this alert?


0 Kudos
5 Replies
Level 12

${SQL:SELECT CustomPollerStatus.Status FROM CustomPollers RIGHT OUTER JOIN CustomPollerStatus LEFT OUTER JOIN CustomPollerAssignment ON CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID ON CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID WHERE (CustomPollers.UniqueName = 'APC_UPS_Diagnostics_Result') AND (CustomPollerAssignment.NodeID = ${NodeID})}

Note that I probably got the something wrong in the query - join types, silly joins, needing extra joins... I'm a bit of an SQL newbie.

Custom SQL within alert emails is a pain in the neck to debug, and it's not supported by Solarwinds at all.

I use a UnDP with a name of 'APC_UPS_Diagnostics_Result' - you'll need to change that to whatever your UnDP is called. The query also works with the UPS last calibration date and self-test date & outcome.

It can also be adapted for other pollers, but won't work for pollers which return multiple rows of data. You have a complication for those: multiple rows of data with labels, while taking into account the different poller types & enums etc - it's very annoying. You could output the whole lot as XML by appending "for xml auto", which looks fugly, but perhaps you could pipe that into an alerting script or something.

Level 19

You can mix status sources, they can be from the custom poller and node by using the Type of Property to monitor drop down.

0 Kudos

Correct.  But I can't display the results of two custom pollers at the same time.  For example,I can show the % battery remaining and the IP address, because the IP address isn't a custom poller.  But I can't show the % battery remaining and the remaining run time, because both are a custom poller.

If you can show me how to do it, I'm more than willing to a GoToMeeting session. 🙂

0 Kudos

Did we get an answer to this. Can you have multiple pollers in a an alert?

0 Kudos

Can't do it today, but if you post it under NPM feature requests the PM will see it.

0 Kudos