Alert Issue (AlertCaption)

We've ben tracking an issue where the name of the object in the alert does not match the current name of an object.

(pedantically we use the IP address for our edge switches, when they renumber the name changes)

the AlertObject table doesn't track changes in caption, and it's the value initially stored in that table that gets displayed in the ActiveAlerts / AllAlerts widget.

Try this database query in your environment to find nodes where the alert captions will not match the [current] node name.

select AO.EntityCaption,AO.RelatedNodeCaption,N.Caption
FROM [dbo].[AlertObjects] AO inner join nodes N on
and AO.EntityType='Orion.Nodes'
where  AO.EntityCaption<>N.Caption or AO.RelatedNodeCaption<>N.Caption
and N.unmanaged=0

Version: 12.0.1

Bug report being filed with SW Support

  • Here are the Fix Scripts I wrote and applied to correct this issue:

    These scripts are provided wholly without warranty, utility, or verification beyond my own environment.

    By executing these scripts you take full responsibility for understanding what they do and any outcome

    Please contact Solarwinds Support before applying these and open a case before applying

    Fix the related node captions

    set AO.RelatedNodeCaption = N.Caption
    FROM [dbo].[AlertObjects] AO inner join nodes N on
    and N.unmanaged=0
    where  AO.RelatedNodeCaption<>N.Caption

    Fix the alert captions on Node Alerts

    Update AO
    Set AO.EntityCaption=N.Caption
    FROM [dbo].[AlertObjects] AO inner join nodes N on
         and AO.EntityType='Orion.Nodes'
         and N.unmanaged=0
    WHERE AO.EntityCaption<>N.Caption

    Fix the Alert captions on interface alerts

    Update AO
    SET AO.EntityCaption= I.Caption
    FROM [dbo].[AlertObjects] AO inner join nodes N
         on AO.relatednodeid=N.Nodeid
         and N.Unmanaged=0
    Inner join interfaces I
         ON I.Nodeid=AO.relatedNodeID
         and AO.EntityType='Orion.NPM.Interfaces'
         and i.unmanaged=0
    where  AO.EntityCaption<>I.Caption
    and  'I:'+cast(I.InterfaceID as varchar) = EntityNetObjectID
  • Nice Catch!  On a different yet related note, I actually switched from using the Caption to using Sysname where possible because of conflicts with CMDB discovery data.  Clients tend to use caption in wildly different ways and can sometimes be nothing like the actual name of the device (sysname).  So things like CI binding (we use ServiceNOW CMDB and ITSM) don't work if you pass caption because ServiceNOW has no clue what device you're trying to bind an incident to!

  • Note: this bug is still there in NPM 12.1 and 12.2

    in our upgrade the server names were changed, and staff started troubleshooting alerts on inactive SolarWinds servers.

    Also need to fix the engine names

    Update AO 
        Set AO.EntityCaption=E.ServerName
        FROM [dbo].[AlertObjects] AO , Engines E
        WHERE AO.EntityCaption<>e.ServerName
            and  AO.EntityType='Orion.Engines'
            and  ':'+cast(E.EngineID  as varchar) = EntityNetObjectID  ;
  • Bug is still there in 12.4 as well.

    it had always bugged me that i changed the names and they weren't reflected in all areas, i didn't realise how bad it was until l ran your select query and found over 2000 node entries ( i took your interface update and changed it to a select and have 30 entries).

    I'm torn between running your provided select statements and leaving as is just in case it causes further damage.

    Engine names: Be careful with this one if you have HA running as the Engine names change dependant on active poller.

    Thanks for the information and the fixes though.

  • What about alerts for 'RESET: Average Response time of blah blah blah...  All other alerts show dns this alert shows server name, not my poller (dns)??

  • Bug is still present on 2020.2.6 HF2