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.

Muted Nodes Resource

Muting of Nodes, Interfaces, and Applications is a great option added to Orion, but I've noticed that there wasn't an easy way to see these in a report.  With that in mind, I added a custom report in my environment.  There are three total variations of the report - for those running Network Performance Monitor, Server & Application, or both.

You can also easily see muted elements from the new Managed Entities view, but I want them quicker.

New_Managed_Entities.png

Managed Entities is restricted to pseudo-admins, and some of my users don't have access to that page, nor do I want them to have access.  They could run the report, I don't always want them to run a report when they need a list of elements that are muted.

Since the report is based around SWQL, I can leverage the same to build a custom query resource on the Enterprise Dashboard.

For those new to the suite, I wanted to give you the step-by-step skinny on how I did this.

Start by clicking on the pencil icon on the top-left of the page to Customize the page.

Customize_Page.png

Next, we've got to add a new widget.

Add_Widget.png

Search in the Available Widgets for the Custom Query.

Find_Widget.png

Now drag that Widget to a new location on your page.

Drag_Widget.gif

In the Add Widgets bar, click "Done Adding Widgets."

Done_Adding_Widgets.png

In the Customize Page bar, click on "Done Editing."

Done_Customizing.png

The current resource is empty, now let's edit it.

Edit_Resource.png

Here's the meat and potatoes for the widget.

Meat_and_Potatoes.png

These are the settings that I'm using:

Title: Muted Alerts

Subtitle: Current or Scheduled Muted Alerts

Custom SWQL Query:

SELECT DISTINCT
       CASE
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
             THEN [N].[Caption]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
             THEN [I].[FullName]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
             THEN [AA].[FullyQualifiedName]
          ELSE 'SomethingElse'
       END AS [Element],
       CASE
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
             THEN [N].[DetailsUrl]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
             THEN [I].[DetailsUrl]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
             THEN [AA].[DetailsUrl]
          ELSE 'SomethingElse'
       END AS [_LinkFor_Element],
       [AE].AccountID AS [By],
       ToLocal([SuppressFrom]) AS [Start],       
       ToLocal([SuppressUntil]) AS [End]
FROM Orion.AlertSuppression AS [AlertSup]
LEFT OUTER JOIN Orion.Nodes AS [N]
   ON [AlertSup].[EntityUri] = [N].[Uri]
LEFT OUTER JOIN Orion.NPM.Interfaces AS [I]
   ON [AlertSup].[EntityUri] = [I].[Uri]
LEFT OUTER JOIN Orion.APM.Application AS [AA]
   ON [AlertSup].[EntityUri] = [AA].[Uri]
LEFT OUTER JOIN Orion.AuditingEvents AS [AE]
   ON [AE].AuditEventMessage LIKE CONCAT('%', CASE
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
             THEN [N].[NodeName]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
             THEN [I].[InterfaceCaption]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
             THEN [AA].[Name]
          ELSE 'Wrong'
       END, '%') AND [EntityUri] LIKE CONCAT('%=', [AE].NetObjectID)
INNER JOIN Orion.AuditingActionTypes AS [AT]
   ON [AE].ActionTypeID = [AT].ActionTypeID
WHERE [AT].ActionType IN  ( 'Orion.AlertSuppressionAdded', 'Orion.AlertSuppressionChanged' )
ORDER BY [SuppressFrom]

Search SQWL Query:

SELECT DISTINCT
       CASE
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
             THEN [N].[Caption]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
             THEN [I].[FullName]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
             THEN [AA].[FullyQualifiedName]
          ELSE 'SomethingElse'
       END AS [Element],
       CASE
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
             THEN [N].[DetailsUrl]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
             THEN [I].[DetailsUrl]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
             THEN [AA].[DetailsUrl]
          ELSE 'SomethingElse'
       END AS [_LinkFor_Element],
       [AE].AccountID AS [By],
       ToLocal([SuppressFrom]) AS [Start],
       ToLocal([SuppressUntil]) AS [End]
FROM Orion.AlertSuppression AS [AlertSup]
LEFT OUTER JOIN Orion.Nodes AS [N]
   ON [AlertSup].[EntityUri] = [N].[Uri]
LEFT OUTER JOIN Orion.NPM.Interfaces AS [I]
   ON [AlertSup].[EntityUri] = [I].[Uri]
LEFT OUTER JOIN Orion.APM.Application AS [AA]
   ON [AlertSup].[EntityUri] = [AA].[Uri]
LEFT OUTER JOIN Orion.AuditingEvents AS [AE]
   ON [AE].AuditEventMessage LIKE CONCAT('%', CASE
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
             THEN [N].[NodeName]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
             THEN [I].[InterfaceCaption]
          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
             THEN [AA].[Name]
          ELSE 'Wrong'
       END, '%') AND [EntityUri] LIKE CONCAT('%=', [AE].NetObjectID)
INNER JOIN Orion.AuditingActionTypes AS [AT]
   ON [AE].ActionTypeID = [AT].ActionTypeID
WHERE [AT].ActionType IN  ( 'Orion.AlertSuppressionAdded', 'Orion.AlertSuppressionChanged' )
  AND CASE
         WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'
            THEN [N].[Caption]
         WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'
            THEN [I].[FullName]
         WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'
            THEN [AA].[FullyQualifiedName]
         ELSE 'SomethingElse'
      END LIKE '%${SEARCH_STRING}%'
ORDER BY ToLocal([SuppressFrom])

Number Of Rows Per Page: 5 (choose this number as you like)

Submit the changes and you are set.

Muted_Alerts_Resource.png

Now you have quick access to all the elements that you have muted... oh and you get to see who requested the alerts being muted.

  • Hi,

    How can we see the muted nodes either vendor wise or EffectiveCategory =1?

  • I need a little more clarification.  What exactly are you looking to see?

  • Hi ,

    Thank you for the quick response.

    I want to see only  muted network device (EffectiveCategory =1). Or if there is options like we can filter Network nodes, Server nodes, Unix nodes as muted.

    I have gone through through above SQL query that is very good but there is all vendor nodes are showing in same queue.

    Thanks.

  • Maybe I'm just lost, but I don't see "EffectiveCategory" as any type of variable to use to key off of.

  • Hello KMSigma,

    Here "EffectiveCategory =1?" is related to Network nodes nothing else. So, I need SQL query option through which we can see the muted nodes of the networking device only.

    pastedImage_0.png

  • Change the WHERE Clause to be this:

    WHERE [AT].ActionType IN  ( 'Orion.AlertSuppressionAdded', 'Orion.AlertSuppressionChanged' )

       AND [N].Category = 1

  • Hello KMSigma,

    Excellent !, thank you, working for me.

  • Hi KMSigma, It is not working on real-time.  There are no longer muted, but show up on my team page.

    pastedImage_0.png

  • Hello KMSigma, Can you suggest where can we use Catogery=1 in below query? As I checked above query is not working on real-time.

    select n.caption as [Device], n.DetailsURL as [_LinkFor_Device]

    ,'/Orion/images/StatusIcons/Small-' + StatusIcon AS [_IconFor_Device]

    ,n.IP_Address as [IP], n.DetailsURL as [_LinkFor_IP]

    , Alerts.SuppressFrom as [Mute from], Alerts.SuppressUntil as [Mute Until]

    from Orion.AlertSuppression AlertS

    join Orion.nodes n on n.uri = AlertS.EntityURI

    select

    n.caption as [Device], n.DetailsURL as [_LinkFor_Device]

    ,'/Orion/images/StatusIcons/Small-' + StatusIcon AS [_IconFor_Device]

    ,n.IP_Address as [IP], n.DetailsURL as [_LinkFor_IP]

    , Alerts.SuppressFrom as [Mute from], Alerts.SuppressUntil as [Mute Until]

    from Orion.AlertSuppression AlertS

    join Orion.nodes n on n.uri = AlertS.EntityURI

    where n.caption like '%${SEARCH_STRING}%'

  • Hello KMSigma,

    It is not working on real-time, can you please check it once. It is not updated since 8th May 2018.

    pastedImage_0.png

    I am using below SWQL query:

    Custom SWQL Query:

    SELECT DISTINCT 

           CASE 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' 

                 THEN [N].[Caption] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' 

                 THEN [I].[FullName] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' 

                 THEN [AA].[FullyQualifiedName] 

              ELSE 'SomethingElse' 

           END AS [Element], 

           CASE 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' 

                 THEN [N].[DetailsUrl] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' 

                 THEN [I].[DetailsUrl] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' 

                 THEN [AA].[DetailsUrl] 

              ELSE 'SomethingElse' 

           END AS [_LinkFor_Element], 

           [AE].AccountID AS [By], 

           ToLocal([SuppressFrom]) AS [Start],        

           ToLocal([SuppressUntil]) AS [End] 

    FROM Orion.AlertSuppression AS [AlertSup] 

    LEFT OUTER JOIN Orion.Nodes AS [N] 

       ON [AlertSup].[EntityUri] = [N].[Uri] 

    LEFT OUTER JOIN Orion.NPM.Interfaces AS [I] 

       ON [AlertSup].[EntityUri] = [I].[Uri] 

    LEFT OUTER JOIN Orion.APM.Application AS [AA] 

       ON [AlertSup].[EntityUri] = [AA].[Uri] 

    LEFT OUTER JOIN Orion.AuditingEvents AS [AE] 

       ON [AE].AuditEventMessage LIKE CONCAT('%', CASE 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' 

                 THEN [N].[NodeName] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' 

                 THEN [I].[InterfaceCaption] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' 

                 THEN [AA].[Name] 

              ELSE 'Wrong' 

           END, '%') AND [EntityUri] LIKE CONCAT('%=', [AE].NetObjectID) 

    INNER JOIN Orion.AuditingActionTypes AS [AT] 

       ON [AE].ActionTypeID = [AT].ActionTypeID 

    WHERE [AT].ActionType IN  ( 'Orion.AlertSuppressionAdded', 'Orion.AlertSuppressionChanged' )

    AND [N].Category = 1

    ORDER BY [SuppressFrom] 

    -------------------------------------------------------------------------------------------------

    Search SWQL Query:

    SELECT DISTINCT 

           CASE 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' 

                 THEN [N].[Caption] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' 

                 THEN [I].[FullName] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' 

                 THEN [AA].[FullyQualifiedName] 

              ELSE 'SomethingElse' 

           END AS [Element], 

           CASE 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' 

                 THEN [N].[DetailsUrl] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' 

                 THEN [I].[DetailsUrl] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' 

                 THEN [AA].[DetailsUrl] 

              ELSE 'SomethingElse' 

           END AS [_LinkFor_Element], 

           [AE].AccountID AS [By], 

           ToLocal([SuppressFrom]) AS [Start], 

           ToLocal([SuppressUntil]) AS [End] 

    FROM Orion.AlertSuppression AS [AlertSup] 

    LEFT OUTER JOIN Orion.Nodes AS [N] 

       ON [AlertSup].[EntityUri] = [N].[Uri] 

    LEFT OUTER JOIN Orion.NPM.Interfaces AS [I] 

       ON [AlertSup].[EntityUri] = [I].[Uri] 

    LEFT OUTER JOIN Orion.APM.Application AS [AA] 

       ON [AlertSup].[EntityUri] = [AA].[Uri] 

    LEFT OUTER JOIN Orion.AuditingEvents AS [AE] 

       ON [AE].AuditEventMessage LIKE CONCAT('%', CASE 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' 

                 THEN [N].[NodeName] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' 

                 THEN [I].[InterfaceCaption] 

              WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' 

                 THEN [AA].[Name] 

              ELSE 'Wrong' 

           END, '%') AND [EntityUri] LIKE CONCAT('%=', [AE].NetObjectID) 

    INNER JOIN Orion.AuditingActionTypes AS [AT] 

       ON [AE].ActionTypeID = [AT].ActionTypeID 

    WHERE [AT].ActionType IN  ( 'Orion.AlertSuppressionAdded', 'Orion.AlertSuppressionChanged' ) 

    AND [N].Category = 1

      AND CASE 

             WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' 

                THEN [N].[Caption] 

             WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' 

                THEN [I].[FullName] 

             WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' 

                THEN [AA].[FullyQualifiedName] 

             ELSE 'SomethingElse' 

          END LIKE '%${SEARCH_STRING}%' 

    ORDER BY ToLocal([SuppressFrom])