With increase number of nodes it is hectic to track which nodes are muted or planned to mute.
Do we have any Report/ Dashboard that can show me which nodes are currently in maintenance mode ?
I am using version 2024.1
check out this custom report Muted Element Report
Can you share me the SQL query ?
SWQL - the only issue i have with this report which i havent had time to look into is that it shows multiple entries for servers and different users who muted it.
SELECT DISTINCT [EntityUri], [SuppressFrom] AS [UtcSuppressFrom], [SuppressUntil] AS [UtcSuppressUntil], ToLocal([SuppressFrom]) AS [LocalSuppressFrom], ToLocal([SuppressUntil]) AS [LocalSuppressUntil], 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 [DetailsUrl], CASE WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' THEN [N].[Status] WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' THEN [I].[Status] WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' THEN [AA].[Status] ELSE 30 END AS [Status], [AE].AccountIDFROM 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].ActionTypeIDWHERE [AT].ActionTypeDisplayName LIKE '%mute%'
Thanks a lot its very helpfull for me. For all the nodes I have customer wise custom properties created like "Customer" I will appreciate if you can help me to filter that data by adding custom properties as customer through that SQL.
Here is an example to add the Custom Property 'Customer' to the SWQL report.
SELECT DISTINCT [EntityUri], [SuppressFrom] AS [UtcSuppressFrom], [SuppressUntil] AS [UtcSuppressUntil], ToLocal([SuppressFrom]) AS [LocalSuppressFrom], ToLocal([SuppressUntil]) AS [LocalSuppressUntil], 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 [DetailsUrl], CASE WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%' THEN [N].[Status] WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%' THEN [I].[Status] WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%' THEN [AA].[Status] ELSE 30 END AS [Status], [AE].AccountIDFROM 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].ActionTypeIDWHERE [AT].ActionTypeDisplayName LIKE '%mute%'AND [N].CustomProperties.Customer LIKE 'CUSTOMERNAME'
Thanks Steven, I use the same but it is showing invalid query.
WHERE [AT].ActionTypeDisplayName LIKE '%mute%'AND [N].CustomProperties.Customer LIKE 'XYZ'