Shared Files for the Orion Platform
  • Map Membership (Nodes)

    Follow-up on a report for Nodes Map Membership. This is a query that can be put on any summary page with (optional) filter. (Described in the SWQL) As Built Search Results (for 'switch') Original Request: Report or Widget to Identify any nodes not included in any map - Orion SDK - The Orion Platform - THWACK ( Related Report: Map Summary Report (Nodes) - Reports - The Orion Platform - THWACK (
    • 18 Nov 2022
  • Classic Dashboard Widget List (and Search)

    Someone recently asked if there was a way to determine the widget type behind a resource. There it, and it's accessible via the API. This is a searchable listing of all widgets on your system. It searches the Dashboard Name, the Parent Name (if a NOC-style dashboard), the position on the page (column, and position), the Widget Type, the Widget Name (as displayed on the dashboard) and the Widget Subtitle (as displayed on the dashboard). In the event that it returns either a NOC or a Summary...
    • 8 Nov 2022
  • Maps containing Node (Node Details)

    In helping out another THWACK user on this thread , I decided that this might be useful for others, so here it is... This is meant to be placed on a Node Details Page and configured like this: The query is very simple and I decided to just have it sort by name. Nothing more onerous. Note: This is meant to be on a Node Details page and won't work properly elsewhere.
    • 20 Sep 2022
  • NCM Backup Job Config Status

    This query is an attempt to pull together as much information within NCM as far as its backup jobs go, NCM login status and the age of the last backup. It's not perfect and relies on a few not so ideal ways to join various bits of data but it's sufficient. Long story short, SolarWinds NCM could do a better job at auditing its own happenings. Regardless, here's what the query shows and also a mockup of what it looks like if you use within a modern dashboard. Last Login status, "Login OK" =...
    • 1 Sep 2022
  • Access Layer VLANs (with good/bad VLAN defined)

    This provides a list of all interfaces with an assigned Access-level VLAN (trunks ignored). Includes icons for vendor, interface type, and a faux-status on a matching VLAN ID (as defined in the query). Mostly this was created so that I could validate that you can stitch together VLAN --> Interface --> Node correctly, but I figured I would share it. Summary Page (query as is) Node Details Page (requires minor edits, see below ) Possible Use Cases Could be used to identify ports on specific...
    • 7 Jul 2022
  • Query date template assigned node SAM (SQL)

    Note this is a SQL query (not SWQL). Query date template assigned node SAM SET NOCOUNT OFF SET ROWCOUNT 0 DECLARE @StartDate DateTime DECLARE @EndDate DateTime DECLARE @Rango DateTime DECLARE @ResultVar real SET @StartDate = DATEADD(DD,-30,DATEADD(DD,DATEDIFF(DD,0,GETDATE()),0)) SET @EndDate = DATEADD(DD,0,DATEADD(DD,DATEDIFF(DD,0,GETDATE()),0)) SELECT ,n.caption ,a.created ,a.lastModified FROM APM_Application A INNER JOIN Nodes N ON a.nodeid = n.nodeid WHERE a.Created >= @StartDate...
    • 28 Jun 2022
  • Run a query about licensed component monitors in SAM

    The query is from the below site but re-written to work in SWQL Studio or a custom query Run a report about licensed component monitors in SAM ( Hope its useful, I also adjust the case part and just show the column data as I want to found out the actual total not that its 50 for AppInsight, etc. replace - CASE WHEN r . Template = 'Windows Scheduled Tasks' THEN 5 WHEN r . Template LIKE 'AppInsight for IIS' THEN 30 WHEN r . Template LIKE 'AppInsight for%' THEN 50 ELSE COUNT...
    • 23 Jun 2022
  • Query last 7 days of alert email action history in SWQL

    Quick query to pull the last 7 days of alert email action history via SWQL. SELECT ac.Name AS [Alert Configuration] ,ah.Message AS [Action Message] ,ah.AlertObjects.EntityNetObjectId ,ah.EventType ,ah.TimeStamp ,ah.ActionID ,a.ActionTypeID AS [ActionType] ,a.Title AS [ActionName] ,n.NodeName AS [Node] FROM Orion.AlertHistory AS ah INNER JOIN Orion.Nodes AS n ON CONCAT('N:', TOSTRING(n.NodeID)) = ah.AlertObjects.EntityNetObjectId LEFT JOIN Orion.Actions AS a ON a.ActionID...
    • 10 Jun 2022
  • Volume Utilization with Forecast Capacity

    So I developed this a while ago, and recently have been asked for something similar again. Prompted me to refine it a little bit more and provide it to the larger community. Can be displayed as a custom query, and will display Volume information along with its capacity forecast. Decided to make this because its hard to get those metrics in one consolidated widget. The code to make it searchable by Volume/Node caption is already present, just uncomment where appropriate.
    • 26 May 2022
  • Modern Dashboard List (and Search)

    Very simple query to pull a list of non-system, publicly posted Modern Dashboards. If you'd like to enable search, uncomment the line indicated in the query.
    • 30 Mar 2022
  • Active Alerts with Severity

    Modified to remove Custom Query and pull 'correct' lookup for severity.
    • 24 Mar 2022
  • Unmanaged & Muted Nodes (with a Node Custom Property Filter]

    Inspired by a comment thread from Unmanaged Muted - Report Lab - The Orion Platform - THWACK ( This is a custom query that can be put on a global summary page to show all devices which have been unmanaged or muted based AND match a specific filter. Raw Results: As rendered on a Summary Page: Custom Properties Required: Orion Nodes / AuditCategory [string]
    • 21 Mar 2022
  • Query nodes failing to poll via their configured polling technology

    This query is more meant to be an alert, however could also be thrown into a custom widget within a view and is very useful to have in and of itself also. SELECT Nodes.Uri, Nodes.DisplayName FROM Orion.Nodes AS Nodes WHERE ( MINUTEDIFF(Nodes.LastSystemUptimePollUtc, GETUTCDATE()) >= 480 AND ( Nodes.PolledStatus = 1 AND Nodes.ObjectSubType IN ('Wmi', 'Agent', 'SNMP') ) )
    • 23 Feb 2022
  • Query Alert Captions that don't match real Entity Captions

    Note this is a SQL query (not SWQL). This query will show alert captions that do not match their true entity captions. This is a continuing problem within many Orion environments where nodes get updated and they're left with stale alert captions that don't match. This can help you clean that mess up. SELECT sub1.RealCaption ,sub1.AlertCaption FROM ( SELECT CASE WHEN a.EntityType = 'Orion.Nodes' THEN n.Caption WHEN a.EntityType = 'Orion.NPM.Interfaces' THEN i.Caption WHEN a.EntityType...
    • 23 Feb 2022
  • Query Orion Views

    Quick query to view the Orion (classic) views. SELECT v.ViewID ,v.ViewTitle ,v.ViewGroupName ,v.ViewType ,v.LimitationID FROM Orion.Views AS v WHERE v.ViewID IN ( 1, 2 )
    • 23 Feb 2022
  • SQL Advanced Find/Replace within email alert actions

    I had the need to update the email action message (subject) of email actions, and also the email address fields in bulk and this is what I used to do that. Note these are both SQL queries - not SWQL -- Update the Email Message of Actions -- with the following query UPDATE dbo.ActionsProperties SET dbo.ActionsProperties.PropertyValue = replace (dbo.ActionsProperties.PropertyValue, 'oldval', 'newval') FROM dbo.ActionsProperties INNER JOIN dbo.Actions ON dbo.ActionsProperties.ActionID =...
    • 17 Feb 2022
  • Orion agent plugin details

    SELECT a.Plugins.PluginId ,a.Plugins.Status ,a.Plugins.StatusMessage ,a.Plugins.Version ,a.Name ,a.IP ,a.AgentId ,a.AgentGuid ,a.Node.NodeID ,a.AgentStatus ,a.AgentStatusMessage ,a.ConnectionStatus ,a.ConnectionStatusMessage FROM Orion.AgentManagement.Agent AS a WHERE a.Node.NodeID = 1
    • 17 Feb 2022
  • Node enabled pollers query

    Query has NetObjectID = 1 as an example, simply replace with the node id necessary (or adjust as needed to show all data). SELECT n.Caption ,p.PollerID ,p.PollerType ,p.Enabled ,p.NetObjectID FROM Orion.Pollers AS p INNER JOIN Orion.Nodes AS n ON n.NodeID = p.NetObjectID AND p.NetObjectType = 'N' AND p.Enabled = 1 INNER JOIN Orion.DeviceStudio.PollerAssignments AS d ON d.NetObjectID = n.NodeID AND d.NetObjectType = 'N' AND d.Enabled = 1 WHERE p.NetObjectID = 1 UNION ALL ( SELECT...
    • 17 Feb 2022
  • Conditional email addresses within email actions SWQL query

    This may belong in the alert lab - but it's not explicitly an alert of xml file type and is in essence a SWQL query. Regardless I wanted to show how you can use the custom SWQL variables within the to / cc / bcc fields in email actions to send email conditionally to specific folks. This could also be a custom SQL variable also but works out better to be SWQL. Similar custom variables can also be leveraged in other alert actions such as filling in the data of a text custom property conditionally...
    • 17 Feb 2022