For those of you who have both DPA and SolarWinds Observability Self Hosted, SWOSH, and have set up the integration between the two - this is something for you!
Some years ago I wrote an article on how to get the nice DPA overview table in Orion, classic dashboards. The one you see in DPA's first page. On request, I have ported that into Modern Dashboard with just a few minor tweaks.
This is what it looks like now:
If you like it and want it yourself, this is how you create it on your modern dashboard:
- Notes:
- You need to be on 2026.1 of SWOSH, or SAM, to have the HTML format
- DPA groups, their names are not in SWOSH db, so they will be hardcoded in the script, adjust script as needed
- Edit your dashboard and add a new "Table Widget"
- Add below SWQL query as the data model
SELECT
CASE
WHEN I.GroupId=1 THEN 'Group 1'
WHEN I.GroupId=2 THEN 'Group 2'
WHEN I.GroupId=3 THEN 'Group 3'
WHEN I.GroupId=4 THEN 'Group 4'
ELSE 'NoGroup'
END AS [Group],
I.Name AS [DBNameToSortBy],
CONCAT(Replace(D.DPAserver.JSwisAddress,'/iwc/services/InformationService',''),'/iwc/database.iwc?db_id=',I.DatabaseInstanceID) AS [DB Instance],
CASE
WHEN PO.WaitTimeCategory=0 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_normal_0.png">'
WHEN PO.WaitTimeCategory=1 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_normal_1.png">'
WHEN PO.WaitTimeCategory=2 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_normal_2.png">'
WHEN PO.WaitTimeCategory=3 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_normal_3.png">'
WHEN PO.WaitTimeCategory=4 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_normal_4.png">'
WHEN PO.WaitTimeCategory=5 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_normal_5.png">'
WHEN PO.WaitTimeCategory=6 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_1.png">'
WHEN PO.WaitTimeCategory=7 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_2.png">'
WHEN PO.WaitTimeCategory=8 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_3.png">'
WHEN PO.WaitTimeCategory=9 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_4.png">'
WHEN PO.WaitTimeCategory=10 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_5.png">'
WHEN PO.WaitTimeCategory=11 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_warning_1.png">'
WHEN PO.WaitTimeCategory=12 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_warning_2.png">'
WHEN PO.WaitTimeCategory=13 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_warning_3.png">'
WHEN PO.WaitTimeCategory=14 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_warning_4.png">'
WHEN PO.WaitTimeCategory=15 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_warning_5.png">'
WHEN PO.WaitTimeCategory=16 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_1.png">'
WHEN PO.WaitTimeCategory=17 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_2.png">'
WHEN PO.WaitTimeCategory=18 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_3.png">'
WHEN PO.WaitTimeCategory=19 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_4.png">'
WHEN PO.WaitTimeCategory=20 THEN '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_critical_5.png">'
ELSE '<img src="/Orion/DPA/images/StatusIcons/WaitTimeMeter_unknown.png">'
END AS [WaitStatus],
CASE
WHEN PO.CPUAlarmLevel=2 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-normal.png">'
WHEN PO.CPUAlarmLevel=3 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-unknown.png">'
WHEN PO.CPUAlarmLevel=4 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-warning.png">'
WHEN PO.CPUAlarmLevel=5 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-critical.png">'
END AS [CPU],
CASE
WHEN PO.MemoryAlarmLevel=2 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-normal.png">'
WHEN PO.MemoryAlarmLevel=3 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-unknown.png">'
WHEN PO.MemoryAlarmLevel=4 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-warning.png">'
WHEN PO.MemoryAlarmLevel=5 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-critical.png">'
END AS [Memory],
CASE
WHEN PO.DiskAlarmLevel=2 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-normal.png">'
WHEN PO.DiskAlarmLevel=3 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-unknown.png">'
WHEN PO.DiskAlarmLevel=4 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-warning.png">'
WHEN PO.DiskAlarmLevel=5 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-critical.png">'
END AS [Disk],
CASE
WHEN PO.SessionAlarmLevel=2 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-normal.png">'
WHEN PO.SessionAlarmLevel=3 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-unknown.png">'
WHEN PO.SessionAlarmLevel=4 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-warning.png">'
WHEN PO.SessionAlarmLevel=5 THEN '<img src="/Orion/DPA/images/StatusIcons/performance-critical.png">'
END AS [Session]
FROM Orion.Dpa.DatabaseInstance I
INNER JOIN DPA.PerformanceOverview PO ON I.DatabaseInstanceID=PO.DatabaseId
INNER JOIN Orion.DPA.DatabaseInstance AS D on I.DatabaseInstanceID=D.DatabaseInstanceID
WHERE I.IsLicensed=1
- Format the fields so that:
- DB instance is a "Link" format with [DBnameToSortBy] is the label and [DB Instance] the URL
- Wait, CPU, Memory, Disk and Session are formatted as "HTML"
- Adjust the widget name, sorting and stuff as you want them to be
- Now we have to copy the "wait" images from DPA to SWOSH: (change paths to match your environment)
- On the DPA-server, copy all PNG-filer like C:\Program Files\SolarWinds\DPA\iwc\tomcat\webapps\iwc\pages\images\WaitTimeMeter_*
- Paste them to the SWOSH web server into "C:\Program Files\SolarWinds\Orion\Web\Orion\DPA\images\StatusIcons"
Thats is!
Hope you like it!