MOD/HACK - NPM 12 Notification on Paused Alert Actions

Version 1

    To prevent prolonged periods where Alert Actions are paused, you can use this tweak to have a notification added to the header of your NPM web page. This hack is surely not supported by SolarWinds, use it at your own risk... until they provide a permanent feature as requested here: "Pause all alerts action" should trigger the addition of a message to the Notification section

     

    1 - Create a new Notification Type:

    INSERT INTO [SolarWindsOrion].[dbo].[NotificationItemTypes]
        (    [TypeID],
            [TypeName],
            [Module],
            [DetailsUrl],
            [Icon],
            [DisplayAs]
        )
    VALUES 
        (    NEWID(),
            'PausedAlertActionsNotification',
            'Orion.Core',
            '/Orion/NetPerfMon/Alerts.aspx',
            '/Orion/images/NotificationImages/notification_tip_suggestion.gif',
            'LatestItemTitle'
        )
    

     

    2 - Do a query to find out the newly generated GUID and validate step #1: Note down the resulting GUID, as we will reuse it in the next steps

    SELECT 
            [TypeID],
            [TypeName],
            [Module],
            [Caption],
            [DetailsUrl],
            [DetailsCaption],
            [Icon],
            [Description],
            [DisplayAs],
            [CustomDismissButtonText],
            [HideDismissButton]
    FROM [SolarWindsOrion].[dbo].[NotificationItemTypes]
    WHERE [TypeName] = 'PausedAlertActionsNotification'
    

     

    3 - Insert permissions for newly created Notification Type: Replace the content in line #6 with the GUID givent at Step #2

    INSERT INTO [SolarWindsOrion].[dbo].[NotificationTypePermissions]
        (    [NotificationTypeID],
            [RequiredRoleID]
        )
    VALUES 
        (    '26484C48-F474-4B05-BB9E-14CCFBF36609',
            '1'
        )
    

     

    4 - Restart the SolarWinds services for this permission to be taken into account

     

    5 - Create a test notification: Replace the content in line #14 with the GUID givent at Step #2

    INSERT INTO [SolarWindsOrion].[dbo].[NotificationItems]
        (    [NotificationID],
            [Title],
            [CreatedAt],
            [Ignored],
            [NotificationTypeID],
            [Url]
        )
    VALUES 
        (    NEWID(),
            'All Alerts actions were paused',
            GETUTCDATE(),
            '0',
            '26484C48-F474-4B05-BB9E-14CCFBF36609',
            '/Orion/NetPerfMon/Alerts.aspx'
        )
    

     

    6 - Refresh your homepage the notification should be there!

     

    7 - Create a job to automagically trigger a notification when alerts are paused: Once again, replace the GUID at line #23 according to your previous results.

    USE [SolarWindsOrion]
    GO
    
    CREATE TRIGGER PausedAlertActionsNotificationSetTrigger 
        ON [SolarWindsOrion].[dbo].[Settings]
    AFTER UPDATE
    AS 
    BEGIN
        SET NOCOUNT ON;
        INSERT INTO [SolarWindsOrion].[dbo].[NotificationItems] 
            (    [NotificationID], 
                [Title], 
                [CreatedAt],    
                [Ignored], 
                [NotificationTypeID],
                [Url]
            )
        VALUES 
            (    NEWID(),
                'All Alerts actions were paused',
                GETUTCDATE(),
                '0',
                '26484C48-F474-4B05-BB9E-14CCFBF36609',
                '/Orion/NetPerfMon/Alerts.aspx'    )
        SELECT I.[SettingID], I.[CurrentValue]
        FROM [SolarWindsOrion].[dbo].[Settings] s
        INNER JOIN inserted i on s.SettingID=i.SettingID
            AND i.SettingID='AlertEngine-PauseActionsOfAllAlerts'
            AND i.CurrentValue='1'
    END
    

     

    The trigger will appear under dbo.Settings/Triggers:

     

    8 - Navigate to YourServer/Orion/Netperfmon/Alerts.aspx and pause actions of all alerts:

     

    9 - Enjoy!

     

     

    Possible improvements:

    • Auto-remove the notification when the condition is no longer true.
    • Hide the dismiss button so everyone has visibility on this status
    • Add desktop notification, audit trail and/or SW event entries.