This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

One Alert for Multiple Conditions

Hi,

I am successfully monitoring the performance stats of a DS3 interface of a muliplexer by using the Universal Device Poller.  The specific statistics I am watching are 10 different circuit related errors, like Errored Seconds, Coding Violations, etc.  Each error statistic is an individual poller. 

The issue I am experiencing is in regards to the alerting.  I'm sure it's a simple trigger condition, but havent figured it out yet.

What I want the alert rule to do is trigger only once for that particular node if any of the pollers have a status greater than 0.  Instead, what I am seeing is a trigger for EACH of the individual pollers in the alert rule.  So for example, if the DS3 experiences 4 different types of errors, I only want one alert stating the DS3 is not clean as opposed to 4 separate alerts.

If anyone can help me out with this, I would appreciate it as this would cut down on an alerting storm.  Normally when a DS3 experiences significant problems, it will generate multiple types of errors.

Here is my Advanced Alert trigger condition:

Type of Property to Monitor: Custom Node Poller

  • Trigger Alert when any of the following apply
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalUASs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalSEFSs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalPSESs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalPESs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalPCVs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalLESs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalLCVs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalCSESs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalCESs
      • Status is greater than 0
    • Trigger Alert when all of the following apply
      • Poller Name is equal to dsx3TotalCCVs
      • Status is greater than 0

Thanks!

Mike

  • I'm interested in this as well.

    Unfortunately everything I've seen so far treats an event that triggers an alert as a "stateful" event, meaning you have access to the data that triggered the alert and only that data.

    The poller may go on and read each of the subsequent values you are wanting to check against, but it will trigger for each as if it alone was occurring in that instance of the alert call procedure.

    Short version is it seems you can't see other data units your polling durring an event that triggers the call to the alerting system.

     

    If I'm wrong I look forward to learning how to do this!

  • This should only generate one alert for the node if the conditions remain true for the whole time.

    With advanced alerts the alert state is maintained for (alert-name,objectid) [where objectid is a the nodeid in this case]

    So as long as the alert does not get reset you get the one alert

    -> What are your reset conditions?

    -> Do you have a reset event to write the reason for reset into the event log?

    you can do something like this in the eventlog message action to write the current assignmentname/value pairs into the log message:

    ${SQL:SELECT A.AssignmentName + '=' + A.Status + CHAR(10)  AS [text()] FROM   (SELECT CPA.AssignmentName , CPS.status from CustomPollerAssignment CPA inner join CustomPollerStatus CPS on CPA.CustomPollerAssignmentID=CPS.CustomPollerAssignmentID where CPA.nodeid = ${NodeID}) A FOR xml path('')}

    [this uses a xml path trick to convert a number of rows in one table into a single string that can be logged in the message.]