This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

My boss is wanting me to create a custom widget for a dynamic top 10 list of "nodes that need attention" like nodes with CPU > 95, and memory > 95 and disk > 95% etc. Any ideas on how to achieve this with SWQL?

Smart nodes list  I imagine multiple widgets for windows servers, Linux servers, Network devices.  For items that are in duress and only those items.

Parents
  • Since "under pressure" can mean different things to different devices, you might want to rely on the native Thresholds and their reflected status.

    Also, did you want this on a classic dashboard (called a 'view') or a Modern Dashboard?

    Why would you segregate Windows vs. Linux vs. Network Gear?  As far as Orion is concerned, they are all "nodes" and you can get the CPU, Memory, and Response time for each of them from the same place.

    You could do something like this in Modern Dashboards

  • Kevin,

    Thanks for your reply.  I am wanting to master modern dashboards and SWQL type dashboards.  What you showed is a great start.  Can you share your query?  Thanks  Matt

  • I can do you one better.  Here's the entire dashboard (as a JSON) which you can import using the Import-ModernDashboard PowerShell function in OrionSDK/func_ModernDashboards.ps1 at master · solarwinds/OrionSDK (github.com).

    {
      "version": 1,
      "dashboards": [
        {
          "widgets": [
            {
              "unique_key": "a828ac68-786b-43d7-856f-ef465d7f8bfc",
              "location": {
                "x": 0,
                "y": 2,
                "cols": 7,
                "rows": 2
              },
              "reference": false
            },
            {
              "unique_key": "9c325418-b41b-4b04-bce7-ebfcfe4f565a",
              "location": {
                "x": 0,
                "y": 0,
                "cols": 7,
                "rows": 2
              },
              "reference": false
            }
          ],
          "parent": null,
          "unique_key": "96fe0902-3301-437e-9919-97e3d0de9615",
          "name": "Monitored Entities Needing Attention",
          "private": null
        }
      ],
      "widgets": [
        {
          "type": "table",
          "configuration": {
            "header": {
              "properties": {
                "title": "Volumes",
                "subtitle": "Status is not Up",
                "url": "",
                "description": "",
                "collapsible": false,
                "collapsed": true
              }
            },
            "table": {
              "providers": {
                "dataSource": {
                  "providerId": "TableSwqlDatasourceService",
                  "properties": {
                    "swql": "SELECT [Volumes].Node.Caption AS [Node]\n, [Volumes].Node.DetailsUrl AS [NodeDetailsUrl]\n     , CASE WHEN [Volumes].Type = 'Mount Point' THEN [Volumes].VolumeDescription\nELSE \nIsNull([Volumes].DeviceId, [Volumes].VolumeDescription) END AS [Name]\n     , [Volumes].Icon\n     , [Volumes].Status     \n     , [Volumes].Type\n     , [Volumes].VolumePercentUsed\n     , [Volumes].VolumeTypeIcon\n     , [Volumes].DiskQueueLength\n     , [Volumes].DiskTransfer\n     , [Volumes].DiskReads\n     , [Volumes].DiskWrites\n     , [Volumes].TotalDiskIOPS\n     , [Volumes].DetailsUrl\nFROM Orion.Volumes AS [Volumes]\nWHERE [Volumes].Type IN ( 'Fixed Disk', 'Mount Point', 'NetworkDisk', 'FixedDisk' )\n   AND [Volumes].Responding = 'Y'\n   AND [Status] <> 1\nORDER BY [Volumes].VolumePercentUsed DESC",
                    "dataFields": [
                      {
                        "id": "Node",
                        "label": "Node",
                        "dataType": "System.String"
                      },
                      {
                        "id": "NodeDetailsUrl",
                        "label": "NodeDetailsUrl",
                        "dataType": "System.String"
                      },
                      {
                        "id": "Name",
                        "label": "Name",
                        "dataType": "System.String"
                      },
                      {
                        "id": "Icon",
                        "label": "Icon",
                        "dataType": "System.String"
                      },
                      {
                        "id": "Status",
                        "label": "Status",
                        "dataType": "System.Int32"
                      },
                      {
                        "id": "Type",
                        "label": "Type",
                        "dataType": "System.String"
                      },
                      {
                        "id": "VolumePercentUsed",
                        "label": "VolumePercentUsed",
                        "dataType": "System.Single"
                      },
                      {
                        "id": "VolumeTypeIcon",
                        "label": "VolumeTypeIcon",
                        "dataType": "System.String"
                      },
                      {
                        "id": "DiskQueueLength",
                        "label": "DiskQueueLength",
                        "dataType": "System.Double"
                      },
                      {
                        "id": "DiskTransfer",
                        "label": "DiskTransfer",
                        "dataType": "System.Double"
                      },
                      {
                        "id": "DiskReads",
                        "label": "DiskReads",
                        "dataType": "System.Double"
                      },
                      {
                        "id": "DiskWrites",
                        "label": "DiskWrites",
                        "dataType": "System.Double"
                      },
                      {
                        "id": "TotalDiskIOPS",
                        "label": "TotalDiskIOPS",
                        "dataType": "System.Double"
                      },
                      {
                        "id": "DetailsUrl",
                        "label": "DetailsUrl",
                        "dataType": "System.String"
                      }
                    ],
                    "type": "hand-edit"
                  }
                },
                "adapter": {
                  "properties": {
                    "dataSource": {
                      "properties": {
                        "swql": "SELECT [Volumes].Node.Caption AS [Node]\n, [Volumes].Node.DetailsUrl AS [NodeDetailsUrl]\n     , CASE WHEN [Volumes].Type = 'Mount Point' THEN [Volumes].VolumeDescription\nELSE \nIsNull([Volumes].DeviceId, [Volumes].VolumeDescription) END AS [Name]\n     , [Volumes].Icon\n     , [Volumes].Status     \n     , [Volumes].Type\n     , [Volumes].VolumePercentUsed\n     , [Volumes].VolumeTypeIcon\n     , [Volumes].DiskQueueLength\n     , [Volumes].DiskTransfer\n     , [Volumes].DiskReads\n     , [Volumes].DiskWrites\n     , [Volumes].TotalDiskIOPS\n     , [Volumes].DetailsUrl\nFROM Orion.Volumes AS [Volumes]\nWHERE [Volumes].Type IN ( 'Fixed Disk', 'Mount Point', 'NetworkDisk', 'FixedDisk' )\n   AND [Volumes].Responding = 'Y'\n   AND [Status] <> 1\nORDER BY [Volumes].VolumePercentUsed DESC",
                        "dataFields": [
                          {
                            "id": "Node",
                            "label": "Node",
                            "dataType": "System.String"
                          },
                          {
                            "id": "NodeDetailsUrl",
                            "label": "NodeDetailsUrl",
                            "dataType": "System.String"
                          },
                          {
                            "id": "Name",
                            "label": "Name",
                            "dataType": "System.String"
                          },
                          {
                            "id": "Icon",
                            "label": "Icon",
                            "dataType": "System.String"
                          },
                          {
                            "id": "Status",
                            "label": "Status",
                            "dataType": "System.Int32"
                          },
                          {
                            "id": "Type",
                            "label": "Type",
                            "dataType": "System.String"
                          },
                          {
                            "id": "VolumePercentUsed",
                            "label": "VolumePercentUsed",
                            "dataType": "System.Single"
                          },
                          {
                            "id": "VolumeTypeIcon",
                            "label": "VolumeTypeIcon",
                            "dataType": "System.String"
                          },
                          {
                            "id": "DiskQueueLength",
                            "label": "DiskQueueLength",
                            "dataType": "System.Double"
                          },
                          {
                            "id": "DiskTransfer",
                            "label": "DiskTransfer",
                            "dataType": "System.Double"
                          },
                          {
                            "id": "DiskReads",
                            "label": "DiskReads",
                            "dataType": "System.Double"
                          },
                          {
                            "id": "DiskWrites",
                            "label": "DiskWrites",
                            "dataType": "System.Double"
                          },
                          {
                            "id": "TotalDiskIOPS",
                            "label": "TotalDiskIOPS",
                            "dataType": "System.Double"
                          },
                          {
                            "id": "DetailsUrl",
                            "label": "DetailsUrl",
                            "dataType": "System.String"
                          }
                        ],
                        "type": "hand-edit"
                      }
                    }
                  }
                }
              },
              "properties": {
                "configuration": {
                  "columns": [
                    {
                      "id": "column_0efee495-ea92-4858-9a40-4b00a594c4ae",
                      "formatter": {
                        "componentType": "EntityLinkFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "status": null,
                            "vendor": null,
                            "link": "NodeDetailsUrl",
                            "value": "Node"
                          },
                          "iconFormat": "noIcon",
                          "entityIcon": null
                        }
                      },
                      "isActive": true,
                      "label": "Node"
                    },
                    {
                      "id": "column_c3d159c2-687f-4b8d-97ff-3e28e0b4a2ec",
                      "label": "NodeDetailsUrl",
                      "isActive": false,
                      "formatter": {
                        "componentType": "RawFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "NodeDetailsUrl"
                          }
                        }
                      }
                    },
                    {
                      "id": "column_7b49f959-e3b2-49c6-97a2-adbfa2ddd887",
                      "formatter": {
                        "componentType": "EntityLinkFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "status": "Status",
                            "vendor": null,
                            "link": "DetailsUrl",
                            "value": "Name"
                          },
                          "iconFormat": "status",
                          "entityIcon": null
                        }
                      },
                      "isActive": true,
                      "label": "Name"
                    },
                    {
                      "id": "column_c3998b18-dfab-438c-a1c5-16e361818965",
                      "label": "Status",
                      "isActive": false,
                      "formatter": {
                        "componentType": "RawFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "Status"
                          }
                        }
                      }
                    },
                    {
                      "id": "column_c31148a1-e7fe-46c8-ab65-5274271f1539",
                      "formatter": {
                        "componentType": "RawFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "Type"
                          }
                        }
                      },
                      "isActive": true,
                      "label": "Type"
                    },
                    {
                      "id": "column_810f5f87-0e83-4cc4-a70f-9e1baee4a69f",
                      "formatter": {
                        "componentType": "ThresholdFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "VolumePercentUsed",
                            "instanceId": "",
                            "siteId": ""
                          },
                          "thresholdName": "Volumes.Stats.PercentDiskUsed",
                          "visualization": "barChart"
                        }
                      },
                      "isActive": true,
                      "label": "VolumePercentUsed"
                    },
                    {
                      "id": "column_76c9401d-bc47-4464-8fc3-4091a96f264e",
                      "label": "VolumeTypeIcon",
                      "isActive": false,
                      "formatter": {
                        "componentType": "RawFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "VolumeTypeIcon"
                          }
                        }
                      }
                    },
                    {
                      "id": "column_e79c57a7-d2c1-4a60-bad1-1fc8391d5fce",
                      "label": "DetailsUrl",
                      "isActive": false,
                      "formatter": {
                        "componentType": "RawFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "DetailsUrl"
                          }
                        }
                      }
                    }
                  ],
                  "sorterConfiguration": {
                    "sortBy": "column_810f5f87-0e83-4cc4-a70f-9e1baee4a69f",
                    "descendantSorting": true
                  },
                  "hasVirtualScroll": true,
                  "searchConfiguration": {
                    "enabled": false
                  }
                }
              }
            },
            "/": {
              "providers": {
                "refresher": {
                  "properties": {
                    "enabled": true,
                    "interval": 45,
                    "overrideDefaultSettings": false
                  }
                }
              }
            }
          },
          "subtitle": "Status is not Up",
          "description": "",
          "unique_key": "a828ac68-786b-43d7-856f-ef465d7f8bfc",
          "name": "Volumes",
          "private": false
        },
        {
          "type": "table",
          "configuration": {
            "header": {
              "properties": {
                "title": "Nodes under Pressure",
                "subtitle": "Ignores 'Up' and 'External' Devices",
                "url": "",
                "description": "",
                "collapsible": false,
                "collapsed": true
              }
            },
            "table": {
              "providers": {
                "dataSource": {
                  "providerId": "TableSwqlDatasourceService",
                  "properties": {
                    "swql": "SELECT [Nodes].Caption\n     , CASE WHEN [Nodes].ObjectSubType IN ( 'ICMP', 'External' ) THEN -1\nELSE [Nodes].CPULoad\nEND AS CPU\n     , CASE WHEN [Nodes].ObjectSubType IN ( 'ICMP', 'External' ) THEN -1\nELSE [Nodes].PercentMemoryUsed\nEND AS Memory\n     , [Nodes].PercentLoss\n     , [Nodes].Status\n     , [Nodes].StatusDescription\n     , [Nodes].DetailsUrl\nFROM Orion.Nodes\nWHERE [Nodes].Status NOT IN ( 1, 11 ) -- 1 = Up and 11 = External\nORDER BY Severity DESC",
                    "dataFields": [
                      {
                        "id": "Caption",
                        "label": "Caption",
                        "dataType": "System.String"
                      },
                      {
                        "id": "CPU",
                        "label": "CPU",
                        "dataType": "System.Int32"
                      },
                      {
                        "id": "Memory",
                        "label": "Memory",
                        "dataType": "System.Int32"
                      },
                      {
                        "id": "PercentLoss",
                        "label": "PercentLoss",
                        "dataType": "System.Double"
                      },
                      {
                        "id": "Status",
                        "label": "Status",
                        "dataType": "System.Int32"
                      },
                      {
                        "id": "StatusDescription",
                        "label": "StatusDescription",
                        "dataType": "System.String"
                      },
                      {
                        "id": "DetailsUrl",
                        "label": "DetailsUrl",
                        "dataType": "System.String"
                      }
                    ],
                    "type": "hand-edit"
                  }
                },
                "adapter": {
                  "properties": {
                    "dataSource": {
                      "properties": {
                        "swql": "SELECT [Nodes].Caption\n     , CASE WHEN [Nodes].ObjectSubType IN ( 'ICMP', 'External' ) THEN -1\nELSE [Nodes].CPULoad\nEND AS CPU\n     , CASE WHEN [Nodes].ObjectSubType IN ( 'ICMP', 'External' ) THEN -1\nELSE [Nodes].PercentMemoryUsed\nEND AS Memory\n     , [Nodes].PercentLoss\n     , [Nodes].Status\n     , [Nodes].StatusDescription\n     , [Nodes].DetailsUrl\nFROM Orion.Nodes\nWHERE [Nodes].Status NOT IN ( 1, 11 ) -- 1 = Up and 11 = External\nORDER BY Severity DESC",
                        "dataFields": [
                          {
                            "id": "Caption",
                            "label": "Caption",
                            "dataType": "System.String"
                          },
                          {
                            "id": "CPU",
                            "label": "CPU",
                            "dataType": "System.Int32"
                          },
                          {
                            "id": "Memory",
                            "label": "Memory",
                            "dataType": "System.Int32"
                          },
                          {
                            "id": "PercentLoss",
                            "label": "PercentLoss",
                            "dataType": "System.Double"
                          },
                          {
                            "id": "Status",
                            "label": "Status",
                            "dataType": "System.Int32"
                          },
                          {
                            "id": "StatusDescription",
                            "label": "StatusDescription",
                            "dataType": "System.String"
                          },
                          {
                            "id": "DetailsUrl",
                            "label": "DetailsUrl",
                            "dataType": "System.String"
                          }
                        ],
                        "type": "hand-edit"
                      }
                    }
                  }
                }
              },
              "properties": {
                "configuration": {
                  "columns": [
                    {
                      "id": "column_69ce58a5-a3e7-4746-acb7-79b6a8529520",
                      "label": "Node Name",
                      "isActive": true,
                      "formatter": {
                        "componentType": "EntityLinkFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "status": "Status",
                            "vendor": null,
                            "link": "DetailsUrl",
                            "value": "Caption"
                          },
                          "iconFormat": "status",
                          "entityIcon": null
                        }
                      }
                    },
                    {
                      "id": "column_5a7bdc8f-b9a6-4339-8ad6-d0d707995228",
                      "label": "CPU",
                      "isActive": true,
                      "formatter": {
                        "componentType": "ThresholdFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "CPU",
                            "instanceId": "",
                            "siteId": ""
                          },
                          "thresholdName": "Nodes.Stats.CpuLoad",
                          "visualization": "barChart"
                        }
                      }
                    },
                    {
                      "id": "column_b7737a78-db47-4ac2-9ae8-1babcf87b745",
                      "formatter": {
                        "componentType": "ThresholdFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "Memory",
                            "instanceId": "",
                            "siteId": ""
                          },
                          "thresholdName": "Nodes.Stats.PercentMemoryUsed",
                          "visualization": "barChart"
                        }
                      },
                      "isActive": true,
                      "label": "Memory"
                    },
                    {
                      "id": "column_bcf96418-76c7-48ce-a295-37282885e01d",
                      "formatter": {
                        "componentType": "ThresholdFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "PercentLoss",
                            "instanceId": "",
                            "siteId": ""
                          },
                          "thresholdName": "Nodes.Stats.PercentLoss",
                          "visualization": "barChart"
                        }
                      },
                      "isActive": true,
                      "label": "PercentLoss"
                    },
                    {
                      "id": "column_8255b318-f588-43a3-b004-c173c917dfeb",
                      "label": "Status",
                      "isActive": false,
                      "formatter": {
                        "componentType": "RawFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "Status"
                          }
                        }
                      }
                    },
                    {
                      "id": "column_6fc56122-a268-4a61-b2e4-cb2a3e8d66bd",
                      "label": "Status Description",
                      "isActive": false,
                      "width": 300,
                      "formatter": {
                        "componentType": "RawFormatterComponent",
                        "properties": {
                          "dataFieldIds": {
                            "value": "StatusDescription"
                          }
                        }
                      }
                    }
                  ],
                  "sorterConfiguration": {
                    "sortBy": "",
                    "descendantSorting": ""
                  },
                  "hasVirtualScroll": true
                }
              }
            }
          },
          "subtitle": "Ignores 'Up' and 'External' Devices",
          "description": "",
          "unique_key": "9c325418-b41b-4b04-bce7-ebfcfe4f565a",
          "name": "Nodes under Pressure",
          "private": false
        }
      ],
      "remove": null
    }
    

    This dashboard doesn't use any Custom Properties, so it should work for anyone.  It was created on Orion Platform 2020.2.6 HF1 (current version as of today).

  • Awesome!!!!!  Trying it now.  Thanks

  • Also - THWACK MVP  is doing the same thing now (re: Dashboards) and writing about it in a 3 part series starting with Modern Dashboarding: Introduction to SWQL Studio.

  • So I am not seeing how to do the Import-ModernDashboard PowerShell function . I see this doc but I am not seeing how to open the invoke tab   the documentation.solarwinds.com/.../core-fusion-dashboard-import-export.htm

  • Open PowerShell on your system.

    Install the SwisPowerShell module if not already installed.

    if ( -not ( Get-Command -Name Connect-Swis -ErrorAction SilentlyContinue ) ) {
        Install-Module -Name SwisPowerShell -Confirm:$false
    }

    This will install the module from the PowerShell Gallery.

    Build a connection to your Orion Server.

    $SwisConnection = Connect-Swis -Hostname "myOrionServer.domain.local" -Username "myUsername" -Password "myComplexPassword"

    Load the functions from the script.

    # This line must start with a single period and then the path to the downloaded PS1 file
    . C:\Path\To\Place\Where\I\Downloaded\func_ModernDashboards.ps1

    Now the functions are loaded in memory.  You can use the function to import the JSON file.

    Import-ModernDashboard -SwisConnection $SwisConnection -Path "C:\Path\To\Dashboard.json"
     

    Basically this says "using my current connection to SolarWinds import the JSON file as a Modern Dashboard."

  • Thanks so much for your help Kevin,  excited to get this going.  I am getting this error on the last step 


    PS C:\Users\adminmatm> Import-ModernDashboard -SwisConnection $SwisConnection -Path "C:\Download\import\Dashboard.json"
    Get-SwisData : No DNS entries exist for host https.
    At C:\Download\export\moderndash.ps1:214 char:23
    + ... ashboards = Get-SwisData -SwisConnection $SwisConnection -Query $Swql ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Get-SwisData], EndpointNotFoundException
    + FullyQualifiedErrorId : System.ServiceModel.EndpointNotFoundException,SwisPowerShell.GetSwisData

    Import-ModernDashboard : File content of 'C:\Download\import\Dashboard.json' does not match JSON format
    At line:1 char:1
    + Import-ModernDashboard -SwisConnection $SwisConnection -Path "C:\Down ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Import-ModernDashboard

  • For the SWIS hostname, you shouldn't include the http:// or https:// - just the name or IP address.

  • Ughhh,  well I am a pain today I guess.   Lastly getting this error.  
    PS C:\Users\adminmatm> Import-ModernDashboard -SwisConnection $SwisConnection -Path "C:\Download\import\dashboard.json"
    Import-ModernDashboard : File content of 'C:\Download\import\dashboard.json' does not match JSON format
    At line:1 char:1
    + Import-ModernDashboard -SwisConnection $SwisConnection -Path "C:\Down ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Import-ModernDashboard 

    I did paste it into json format checker and it passed

Reply
  • Ughhh,  well I am a pain today I guess.   Lastly getting this error.  
    PS C:\Users\adminmatm> Import-ModernDashboard -SwisConnection $SwisConnection -Path "C:\Download\import\dashboard.json"
    Import-ModernDashboard : File content of 'C:\Download\import\dashboard.json' does not match JSON format
    At line:1 char:1
    + Import-ModernDashboard -SwisConnection $SwisConnection -Path "C:\Down ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Import-ModernDashboard 

    I did paste it into json format checker and it passed

Children
  • That error message comes from this part of func_ModernDashboards.ps1.  See Everything you wanted to know about exceptions for details about how PowerShell handles exceptions, and pay attention to the $PSItem automatic variable that gives you details about the exception.  If you tweak the script to print that out in the catch block, you will likely get some additional details that will help you understand what went wrong.  Maybe something like this:

    Write-Error -Message "Error processing'$( $File.Fullname )': $PSItem"

  • Just out of curiosity, what version of PowerShell are you running? I ask because I ran into the same/similar issue as you, with the "Does not match JSON format". I then realized, out of bad habits, I had been running it in the old PowerShell ISE. I opened up a PowerShell 7 prompt, reran the same commands, and everything worked perfectly.

  • Thanks for your reply ,  I am running version 5.1.   Let me upgrade to 7 and test

  • Looks like I need to add a #Requires line for PowerShell 7 to be more thorough.

    Hey  - I added this as Pull Request #299.

  • Thanks!  I approved and merged the pull request.

  • Thanks all for your input.  I have it working.  I do end up with unmanaged devices and servers that I would like to remove from the list as we have a number of volumes called docshares that are full for a reason and we create new volumes.  

  • For the upper, edit the data source to exclude Unmanaged.

    SELECT [Nodes].Caption
         , CASE WHEN [Nodes].ObjectSubType IN ( 'ICMP', 'External' ) THEN -1
    ELSE [Nodes].CPULoad
    END AS CPU
         , CASE WHEN [Nodes].ObjectSubType IN ( 'ICMP', 'External' ) THEN -1
    ELSE [Nodes].PercentMemoryUsed
    END AS Memory
         , [Nodes].PercentLoss
         , [Nodes].Status
         , [Nodes].StatusDescription
         , [Nodes].DetailsUrl
    FROM Orion.Nodes
    WHERE [Nodes].Status NOT IN ( 1, 11 ) -- 1 = Up and 11 = External
      AND [Nodes].Unmanaged != 1 -- Skip unmanaged devices
    ORDER BY Severity DESC

    For the lower, you can ignore anything with 'docshare' in the name.

    SELECT [Volumes].Node.Caption AS [Node]
    , [Volumes].Node.DetailsUrl AS [NodeDetailsUrl]
         , CASE WHEN [Volumes].Type = 'Mount Point' THEN [Volumes].VolumeDescription
    ELSE 
    IsNull([Volumes].DeviceId, [Volumes].VolumeDescription) END AS [Name]
         , [Volumes].Icon
         , [Volumes].Status     
         , [Volumes].Type
         , [Volumes].VolumePercentUsed
         , [Volumes].VolumeTypeIcon
         , [Volumes].DiskQueueLength
         , [Volumes].DiskTransfer
         , [Volumes].DiskReads
         , [Volumes].DiskWrites
         , [Volumes].TotalDiskIOPS
         , [Volumes].DetailsUrl
    FROM Orion.Volumes AS [Volumes]
    WHERE [Volumes].Type IN ( 'Fixed Disk', 'Mount Point', 'NetworkDisk', 'FixedDisk' )
       AND [Volumes].Responding = 'Y'
       AND [Status] <> 1
       AND [Volumes].Caption NOT LIKE '%docshare%' -- skip the docshare volumes
    ORDER BY [Volumes].VolumePercentUsed DESC