Using Your Custom HTML Resource To Properly Display SWQL Query Results

**2019.05.29 | Updated Attachment: In addition to the 2 previous versions(WITH and WITHOUT the node custom properties for Area & Department), I have added a 3rd option which shows recent events below the pie charts.**

     *Also, I have corrected/updated SWQL queries for the pie charts, which should now properly group results. (previously pie charts would have multiple results with same value(s))*

Please see this post for an example and/or further details:

**2018.07.13 | Updated Attachment to include a version WITH and WITHOUT the node custom properties for Area & Department, as those CPs were causing some confusion for some users**

     *Also, I have corrected/updated SWQL queries for the pie charts, which should now properly group results. (previously pie charts would have multiple results with same value(s))*

     *Copy/Use lines 1-199 to show only 2 graphs (MachineType & Vendor)*

     *Copy/Use lines 200+ to show all 4 graphs (NodeCustomProperties.Area & Department, as well as MachineType & Vendor)*

Please see this post (below) for further details:

Trying something different on this post, so let's make everything easy, and just jump right into it.

If you want to display data like this:


Then keep reading...

Over the past many years, I have wanted to be able to view my data in a few ways, specific to how my brain malfunctions. I have searched long and hard, thinking I would never make it to the promised land. A few days ago, conguir​ mentioned something in regards to having to use HTML/REST API queries to achieve a display they need. (Re: Simple NetPath Summary Widget​​ )

Now, I'm always looking for different ways to pull the soul out of my SolarWinds data, and show it on my screen. My coworker, mblackburn​​, has helped me with various iterations of displaying data in such ways. We have gone from having a separate server running code, pulling it into Orion via iframe, to building out multiple combinations of .net pages using variations of highchart files/versions, dumping data here and there, as well as a few other inefficient methods. Each time we revisit this project, we seem to somehow trim the fat, and figure out a better (for us) way to accomplish the task. This latest revision, the one you are reading about now, is our closet attempt yet. While we still have some things to improve, we are finally able to view our data in such a way, customized to us, being able to easily view the events occurring within our Orion environment.

The best part about this is there is nothing to install, restart, break, bend, boil... Just a simple copy and paste into a default resource, functioning exactly as it was meant to function.



  1. Youngling(Easiest/Most Basic; no coding experience required, no config wizard required, no system restart required, no system downtime.)
  2. Padawan (Easy/Basic; no coding experience required, possible config wizard required, possible system/services restart required, limited/no downtime.)
  3. Jedi Knight (Moderately Difficult/Advanced; some coding experience required/recommended, config wizard required, possible system/services restart required, limited/short duration downtime.)
  4. Jedi Master (Most Difficult/Advanced; advanced coding experience required, config wizard required, system/services restarts required, 30+ minutes downtime/maintenance window recommended, and other things that I do not even know I would need to know, required...)

This mod was performed on the following SolarWinds environment/versions: (It may, or may not work on other versions)

Orion Platform 2017.3.5 SP5, NCM 7.7, DPAIM 11.1.0, NPM 12.2, VMAN 8.2.0, NetPath 1.1.2, QoE 2.4, CloudMonitoring 2.0.0, SAM 6.6.0 Copyright 1999-2018 SolarWinds Worldwide, LLC. All Rights Reserved.


  1. Access to manage views in your Orion environment
  2. The "Custom HTML" resource added to a view
  3. A working method to copy text from the attached file
  4. A working method to paste text, copied in #3 above, into a custom HTML resource, from #2 above.

Before we begin, (while the following is certainly a good practice, it actually doesn't apply to this customization, for once.)

PLEASE don't edit the system files/database without backing them up first.

If you see a friend or co-worker making changes without backing up first, please alert the authorities.

Friends don't let friends mod without backups.

"If it's not broke, then fix it until it is."

     -The smartest person ever


     -Download/Open the attached file.

     -Login to you Orion environment.

          -Navigate to the "Custom HTML" resource you want to display the calendar.

               -Click edit.

     -Copy the contents of the attached file.

     -Paste the contents of the attached file into the "Custom HTML" resource you have opened to edit.

     -Click to save the resource edit.

     -Enjoy you new calendar view.

**The various SWQL queries, within the attached file, mostly reference default table/column names. There are, however, references to NODE Custom Properties "Area" & "Department". You can either go into the file and change the column, or create the columns in your environment. (you don't have to use them, but they will need to exist)**

The queries, as they are in the attached text, simply pull ALL alerts for the current year. I know the SWQL is not as efficient as it could/should be, however, we built it this way to work for us in a manner that would be flexible enough for us while we tested. Feel free to adjust/correct to your liking.

When the page loads, it starts with only the calendar displayed. (This calendar displays the days vertically, instead of the traditional horizontal layout) The calendar is showing ALL alerts triggered (up, down, left, right, node, meow, int, vader, etc.), broken down and grouped by day. The more total alerts per day, the closer (darker?) the color changes to red.


Once you click on a day, the data will be rolled down into pie charts, grouping each by a different metric. (Area, Department, MachineType, Vendor) This allows us to easily view the global trouble maker(s), showing us who/what did the most damage that day.


Clicking on different days will automatically refresh the pie charts to reflect the data from whichever day you select. (I still need to correct/adjust the grouping part of the SWQL queries for the pie charts, as they should not show multiple entries for the same results. ie. vendor should only show 1 of each vendor, but it currently shows some vendors multiple times.)

Anyway, that is just about it. Copy, paste, adjust the SWQL to meet your needs, and enjoy. There is really nothing else to it.

The following people have helped build this, knowingly or otherwise. mblackburn​, conguir​, mesverrum​, zackm​, nickzourdos​, CourtesyIT​, antonis.athanasiou​, tdanner​, mrxinu​, KMSigma​, jnathlich12​, equalswql​, monovex​, Yossarian​ (Yikes, I'm probably leaving some folks out here... Sorry.)

Here are a few links to some Thwack posts I have read over the years, each filling in another piece of the puzzle for me.

Generating Graphs Dynamically

Custom SQL Dynamic Graphing Resource

How to create a simple custom view of multiple interfaces' bandwidth utilization

Custom Graphing: Fun With Highcharts

Re: Multi-column Custom HTML Page

Orion SDK - Is there a way to generate a interface graph as a JPG/PNG/GIF via the SDK?

Custom Sparkline Charts

Re: How to modify size of interface utilization charts?

Re: 1 Page - All interface Graphs Wanted ... Help me kill MRTG

Re: HTML/Javacript

Re: Javascript in a Custom HTML Resource and the API

Interface aggregate chart (swql)

Using SWis query to get interface utilization

Moving Content from View to View

Creating views using OrionSDK REST API's

Re: Showing Graph from different nodes

Possible to embed SWQL inside of custom HTML

Well, here you go, meechaLTeReGocobrienserena

For more ways to customize your SolarWinds environment, make sure to check out this link, by CourtesyIT

How to do various customizations with your Solarwinds

Thank you,