Showing results for 
Search instead for 
Did you mean: 
Create Post

Orion® Platform 2020.2 - Modern Dashboards

Dashboards, Dashboards, Get Your Dashboards!

The Orion ® Platform Team is proud to announce a new modern dashboarding framework. This, data-driven and highly performant dashboard framework provides Orion users with a greater level of flexibility over how their dashboard data is displayed.

A grid-based layout, new widgets types, drag and drop placement with full vertical and horizontal widget scaling all provide users with increased control over the layout of the dashboard.

There is also one more really awesome feature of the new dashboarding framework which I love, but, you will have to read on to find out more about it!


For the full list of Orion new features and improvements visit: 

Example Modern Dashboard

2020-03-25 14_58_07-ITOM - Systems Status Dashboard.png

New widgets types, visually compelling, status and threshold driven indications.

    Summary Views, Classic and Modern Dashboards, what’s the difference?

    Orion modules provide many great examples of dashboards such as the Network Summary, Application Summary, and Top 10 dashboards. These are based on classic Orion views which contain resources whereby a Summary View is suited to displaying high-level information across all monitored entities such as All Nodes, All Volumes All Applications, etc.

    In the realm of Summary Views and Classic Dashboards, the two terms are interchangeable. Additional view types are available for displaying information related to a specific entity such a Node Details, Application Details etc. Modern Dashboards are not intended to replace these existing Summary Views, but rather offer you an alternative method for presenting the data in your dashboard.

    This is the 1st iteration of the new dashboard framework which will evolve with each subsequent release. Your feedback is central to this evolution and so I would encourage you to send any feedback you may have, positive or negative so that we can continue to deliver features that you want. 

    Let's Get Started - Manage Dashboards

    The Orion Veterans amongst you will likely have already seen the additional menu item 'Manage Dashboards' under 'All Settings'

    Manage Dashboards MM.png

    Manage Dashboards is your one-stop-shop for managing classic views and modern dashboards, it replaces the 'Manage Views' link in All Settings. It allows you to filter all dashboards based on Owner, Version & Visibility.

    Manage Dashboards.png

      Dashboard Security

    The dashboard security model differs from the classic view security model.

    • Dashboards can be created by ALL Orion Users,  Manage Views Permission is not required
    • Admins can see and edit ALL dashboards
    • Non-admins can see and edit dashboards they own
    • Dashboards visibility can be Public Or Private

    Go ahead, click create ‘Modern Dashboard’.

    Give the dashboard a name and 'Immediately open this dashboard for editing'

    Create New Dashboard.png

    Drag And Drop a new widget to the dashboard and click Finish Configuring 

    Drag and Drop.gif

    The Widget Cloner Panel presents you with the 4 widget types available. As you create new dashboards and widgets, these will be readily available for you to clone as you edit the dashboard.

    Clicking Create Widget will save an empty widget to the dashboard. Select the Table Widget and Click Customize to configure the widget. 

    Select type and configure.png


    All widgets have 2 common configuration elements, Presentation and Data Model.

    Inital State.png

    Widget Configuration Table Widget

    The table widget is designed to display tabular data. Let's take a look at what is required to build the following table which shows:

    • The Node Status
    • Current CPU Utilisation with warning and critical threshold indications.
    • Current Memory Utilisation with warning and critical threshold indications.
    • Number of monitored Volumes  on the Node
    • Number of monitored Interfaces on the Node

    Demo Table.png


    Widget Presentation


    Notice the Optional Widget Link URL? Here you can provide a link to another Orion URL or other external URL. The widget will display the 'Explore Data' button on the top right-hand side.



    The Data Model

    All dashboard widgets are data-driven. Based on SWQL users can define their own Custom Query or use the in-built Graphical Query Builder. The data model can be presented in a number of different formats, and the output of the query will need to match the type of widget you are creating. For those who may not be familiar or comfortable writing SWQL we have provided a graphical query builder that is covered in more detail below.

    Data Model.png

    If Choosing to hand-edit a SWQL query, the editor allows you to explore all entities and import a SWQL statement which selects all columns.

    Pro Tip! The 1st rule of SWQL: there is no SELECT *

    Hand edit.gif

    For this task, we are going to use the Visual Query Builder to define the Data Model configuration. The visual query builder can be used to quickly build a data model across multiple entities without having any knowledge of the entity relationships, put simply it creates the query and required joins for you!

    • Use the graphical query builder to edit the data model for a table widget.
    • Choose the Node for the row type.

    TB Select Entity Type.png


    • Select the check box "Show advanced and specialized entities" 
    • Drag Caption, Status, DetailsUrl, CPULoad, PerecentMemoryUsed, Volumes.Caption, Interfaces.Caption
    • The Orion Nodes entity has a 1 1:Many relationship with both Interfaces and volumes, the query builder allows you to aggregate the rows to provide Count, Min, Max, Average aggregations.
    • Save the Data Model

    query builder.gif

    We must now choose which columns will be displayed in the table, click add new column

    add new column.png


    Each Column has 2 configuration elements.

    • Description
    • Property & Formatting

    Define the description for the field such as 'Node' and expand the Property and formatting panel. Here you can choose from a section of preconfigured formatters. For the node column, we will use Orion Entity. This presents additional field mappings. 

    NOde Column.png

    Status, DetailsUrl and Label all match back to columns selected in the query builder. The Entity type is the icon of your choosing from the supplied list.


    The CPU and Memory Columns use a 'Threshold Value' for the format. There are many threshold formats available based on Orion thresholds for the metric such as response time, packet loss, IOPS, Interface Utilisation & many more. The Interface and Volume Count Fields both use a Simple Number Formatter.


    CPU Value Configuration Memory Value Configuration
    CPU Column.png Memory.png



    Volume Count Value Configuration Interface Count Value Configuration




      KPI Widget – The Big Number

    KPI Completed.png

    KPI widgets display a big number representing a certain metric. You can add multiple KPI cells to an individual KPI widget, select a default background color, and can have a warning and critical threshold applied to the observed values.

    KPI Threshold Applied.png

    The data model for a KPI should return a single number. Here are some example queries to get you started.

    Description Query
    Total nodes that are in a down state. SELECT COUNT(1) AS KPI_Numbe from Orion.Nodes WHERE Status=2 
    Total Number of Active Alerts SELECT
    COUNT(o.AlertConfigurations.Name) AS [KPI_Number]
    FROM Orion.AlertObjects o
    WHERE o.AlertActive.TriggeredMessage <> ''
    CPU Load of a node with caption PRODMGMT-16 SELECT n.CPULoad
    FROM Orion.Nodes n
    n.Caption = 'PRODMGMT-16'


    Proportional Chart

    The proportional chart allows you to chose from 4 subtypes

    • Pie Chart
    • Donut Chart
    • Horizontal Bar
    • Vertical Bar

    All Types .png

    Data models for proportional charts require two fields, one of which must be numerical, the other is used as a grouping. e.g how many nodes do I have, grouped by their status?

    In this example, the ‘how many nodes’  is the number we need and the status will be used to group the data.

    Description Query
    Count Nodes by Status SELECT COUNT(1) AS Count_Items, Status FROM Orion.Nodes GROUP BY Status
    Count Applications By Status SELECT COUNT(1) as Count_Items,
    FROM Orion.APM.Application
    GROUP BY Status
    Count Interfaces By Status SELECT COUNT(1) as Count_Items,
    FROM Orion.NPM.Interfaces
    GROUP BY Status


    Select the matching Value and Category Fields to display the data.

    Mapped values.png

    Notice the Data Format? The proportional chart can map the status values returned by the query to meaningful text and will show these in the legend.

    Pro Tip! Want to provide your own custom color mapping? Define the colors in your query and choose Custom from the data format

    Advanced Formatter.png Custom Color.png

    SELECT Count(o.AlertActive.TriggeredMessage) AS Item_Count ,CASE WHEN o.AlertConfigurations.Severity = 1 then '#03fc7f' WHEN o.AlertConfigurations.Severity = 2 then '#a903fc' WHEN o.AlertConfigurations.Severity = 3 then '#ebfc03' WHEN o.AlertConfigurations.Severity = 4 then '#bafc03' WHEN o.AlertConfigurations.Severity = 5 then '#fc2403' END AS [Color], CASE WHEN o.AlertConfigurations.Severity = 1 then 'Critical' WHEN o.AlertConfigurations.Severity = 2 then 'Serious' WHEN o.AlertConfigurations.Severity = 3 then 'Warning' WHEN o.AlertConfigurations.Severity = 4 then 'Informational' WHEN o.AlertConfigurations.Severity = 5 then 'Notice' END AS [Severity] FROM Orion.AlertObjects o WHERE o.AlertActive.TriggeredMessage <> '' GROUP By o.AlertConfigurations.Severity

    Time Series Widget

    This one is gimme, no reinventing the wheel here. The Time Series widget allows you to display a Perfstack project. One caveat, however, it supports line charts only at this time.

    To learn more about the powerful performance analysis and metric correlation capabilities available in  perfstack, I highly encourage you to read through the documentation here

    The time series widget has an additional configuration within the presentation panel allowing you to define the time span to display

    PS Time Span.png

    Editing the data model for a Timeseries widget presents a dialog to choose an existing Perfstack Project

    Select Project.png




    2020-03-25 16_05_51-Thwack Dashboard.png

    Pièce de résistance..  

    Auto update without page refresh.

    If you have gotten this far reading through everything and are eagerly waiting to find the awesome feature I mentioned, I salute you.  If you blindly scrolled down to get here, well I salute you too but you have missed out on some great info!

    Notice when placing an application into an unmanaged state how the proportional widget updates a few seconds later? Dashboard widgets can refresh their data model without having to reload the entire page. In classic Orion views, this change in status may take up to 5 minutes to become apparent.




    Happy Dashboarding! 

    Please let us know what you think, where we have done well, where can we do better.



    Labels (5)

    @tony.johnson Sadly in our deployment the "do not display a prefix icon" isn't accepted and it forces choosing an icon. As for the KPI I meant making it possible to show tx/rx in a single block to save space. As of now the KPI squares feel a bit bigger than they need to be.



    Consider me another vote for @hansolo's request for the "subset" left sidebar option to come to modern dashboards.

    In my current "business continuity" dashboard each main focus on the front page has a deeper dive set of widgets to dive into each category with greater depth. 

    Quickly flipping between them makes things easier. On top of that for "easy" testing and migration to other pages I have a public "Testgrounds" where upcoming widgets are demoed and then an "API Playground" for testing requested external vendor facing API calls being displayed via custom HTML widgets where there isn't a pre-built widget that will work. 

    Our team has been using this method for quick status checks without hunting all over the site to get to them. 


    Ultimately while new features are fantastic, doing away with the good parts of classic isn't so fantastic. Looking forward to someday mixing and matching widgets between views.

    Interesting... reminds me a LOT of the new SEM dashboards thanks to the UX team Ashley and others!


    Loving the new dashboards and how you can manipulate the data to present what you want to be able to see.

    Created a test Alerts Dashboard for our environment, however on the custom tables part when i define my table and get the records returned, is there any way to have only a section displayed within the widget, so that its split into pages of say 20 records at a time.

    As you can see from the screens, the first one has 68 records and a scroll bar, ideally i'd like to lose the scrollbar and have pages of 20 say, is that possible?


    @dunky2k Thank you for the feedback and for sharing this dashboard. Paging within a table is not possible in this release but is something I am tracking for consideration in the future as dashboard widgets evolve. I am curious as to your use case for paging over infinite scroll, is it purely a visual preference or are there other factors?

    @tony.johnson  Thanks for the clarity on what is and isn't possible at the moment, as for the use of scrolls, its purely a visual preference, nothing more than that. 

    Any plans to have an online event to go over creating these new dashboards?

    I'm totally with you cfizz34.  I've been messing with them and I really am struggling on how to reproduce a lot of what they've done in their samples.  It seems like one of those things that will be easy once you understand it, but until then it seems really complicated.  Kind of like when Custom Tables and Custom Charts came out.

    Dumb question maybe, can we change the dashboard name once created? Or is the process -> Duplicate and then create the new name and delete the old dashboard?


    Would also be great to have an iFrame widget for embedding external sites.

    @acandell The only method available right now to rename a dashboard is as you describe. I will add a +1 for a custom HTML widget which I am tracking internally.

    @cfizz34 We are currently in the planning stages for ThwackCamp and can certainly look at doing something more targeted. Are there particular workflows you are struggling with?

    Really just getting it started and usable seems to be a struggle personally.  Do you think shareable (via import/export) dashboards would ever be an option?


    I like this alot, now I must learn SWQL :).


    However a tiny thing that is bothering me immensly, I would very much be able to skip the warning threshold and go directly from green to red.

    I have created a KPI widget that should be green at all times until a single alert appears. But that is impossible at the moment, now I must go from green to yellow (1 alert) to red (more than 1 alert)


    Anyone have a table that is displaying information similar to how the 'Polling Summary' shows?



    Hey @tony.johnson would you be kind enough to post the SWQL statement you used to build the top interfaces by utilization?  Im trying to build something similar for my dashboard, but don't have super deep knowledge of the ins and outs of the database to pull in the needed info for my table and thus getting some rather random results.

    @martin.lkab Thank you for the feedback. I will track this internally as a feature request to make the warning threshold optional.

    @travis.schlafke This should help as a start. YOu can safely remove the WHERE i.Description like '%mpls%' clause if you want to see all interfaces or adjust the text "mpls" to any interface description suitable for your needs.

    n.NodeName AS Node,
    n.DetailsUrl AS [_Linkfor_Node],
    n.Status AS Node_Status,
    i.InterfaceName AS Interface,
    i.DetailsUrl AS [_Linkfor_Interface],
    i.Status AS Interface_Status,
    i.InPercentUtil AS RECEIVE,
    i.OutPercentUtil AS TRANSMIT
    Orion.NPM.Interfaces as i
    LEFT JOIN Orion.Nodes as n ON n.NodeID=i.NodeID
    WHERE i.Description like '%mpls%'
    PercentUtil DESCENDING

    Is there a central place all custom reports/SQL/SWQL queries can be stored on THWACK or GitHub?


    Both Report Lab and Alert Lab exist on thwack today

    however, for the pure SWQL/SQL used there is no specific content exchange.  

    Thanks TJ!


    Really like the new modern dashboards and are using 2 in production on wallboards and when using KPI Widgets with Table or Timeseries Widgets the KPI widgets update automatically as they should but the Table ones don't at all that I can see and the Timeseries using a know good Perfstack doesn't much at all. I have a browser addon refreshing the page but I shouldn't have to.

    Am I missing something? I have tested in Firefox and Chrome and have the same issue

    @tilde39 Thank you for reporting this. Can you confirm if you are running the RC or GA version?


    GA. You can duplicate this on the modern dashboard live demo on your site for Perfstack Timeseries and I assume tables but I have no way of knowing if the tables should change.

    Please help me How can I make top 10 alerts widget as in your dashboard?


    Hi @tony.johnson - Is there a way to add Maps to the Modern Dashboard?

    @mark.johnson-TEN - Adding maps is currently NOT supported but SolarWinds have noted it as a feature request for future versions.

    @shuth  - many thanks for the feedback 🙂


    Inspired by and heavily borrowed from the great work of  @adatole here

    The data model I have used for the All alerts table widget is:

    Nodes.Caption AS NodeName,
    Nodes.Status as NodeStatus,
    '/Orion/Netperfmon/AckAlert.aspx?AlertDefID='+tostring(AlertObjects.AlertObjectID) AS AcknowledgeIt,
    'Acknowledge' As AckLabel,
    AlertActive.AlertActiveID, AlertObjects.AlertObjectID, AlertConfigurations.Name, AlertConfigurations.Severity, AlertConfigurations.ObjectType,
     AlertObjects.EntityUri, AlertObjects.EntityType, AlertObjects.EntityCaption,
    ToLocal(AlertActive.TriggeredDateTime) AS TriggeredDateTime, AlertObjects.LastTriggeredDateTime, AlertActive.TriggeredMessage AS Message,
    AlertActive.AcknowledgedDateTime, AlertActive.Acknowledged AS Acknowledged, AlertActive.AcknowledgedBy, AlertActive.AcknowledgedNote,
    	When Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) + 0.0)/86400)>0 Then 
    		ToString(ToString(Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) +0.0)/86400))+'d '+
    		ToString(Floor(((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) - 86400*(Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) + 0.0)/86400))) + 0.0)/3600))+'h '+
    		ToString(Floor(((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) - 3600*(Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) + 0.0)/3600))) + 0.0)/60))+'m ')
    	When Floor(((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) - 86400*(Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) + 0.0)/86400))) + 0.0)/3600)>0 Then 
    		ToString(ToString(Floor(((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) - 86400*(Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) + 0.0)/86400))) + 0.0)/3600))+'h '+
    		ToString(Floor(((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) - 3600*(Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) + 0.0)/3600))) + 0.0)/60))+'m ')
    	When Floor(((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) - 3600*(Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) + 0.0)/3600))) + 0.0)/60)>0 Then 
    		ToString(ToString(Floor(((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) - 3600*(Floor((SecondDiff(AlertActive.TriggeredDateTime,GetUtcDate()) + 0.0)/3600))) + 0.0)/60))+'m ')
    	Else ''
    End AS ActiveTime
    FROM Orion.AlertObjects (nolock=true) AlertObjects
    INNER JOIN Orion.AlertActive (nolock=true) AlertActive ON AlertObjects.AlertObjectID=AlertActive.AlertObjectID
    INNER JOIN Orion.AlertConfigurations (nolock=true) AlertConfigurations ON AlertConfigurations.AlertID=AlertObjects.AlertID
    INNER JOIN Orion.NodesCustomProperties (nolock=true) NodeCP ON AlertObjects.RelatedNodeID = NodeCP.NodeID
    INNER JOIN Orion.Nodes (nolock=true) Nodes ON AlertObjects.RelatedNodeID = Nodes.NodeID
    Order By AlertConfigurations.Name, AlertObjects.EntityCaption


     You will need to apply the appropriate formatters for each column such as the node details

    Node Details Formatter.png


    Also keep in mind the query above includes a reference to a Node Custom Property 'Importance' which you may need to remove from the query




    I adjusted some of the device's thresholds so I did not have any empty widgets. Which is why my 'Interfaces over threshold' and a couple of others show a low % utilization

    I like, and look forward to seeing continued development on the modern dashboards, We will be having a lot of non technical users accessing Orion, and it would be nice to see that we can disable the manage dashboards for these users.


    orion maps, can there be a way to add just the application template, so that it show all of the devices that are linked to that temeplate, and show a true application status vs showing what a group is doing





    Wow denmedic,

    That is an exceptionally good idea regarding the app template idea on maps.  I really like that.

    @denmedic  It is possible to add Application Monitors to Orion Maps today, other entity types can also be added, do these not meet your use case?



    i see that we can add the application monitors to orion maps, but what im thinking about is an all encompassing one instead of individual assignments, so you can see that app over all instead of individual servers

    I have a lot of feedback for the modern dashboards, and none of it is good.  Honestly, I am struggling to think of a single existing Classic View I can replace with this format.  I guess it's nice that we can make Pie Charts now.

    Why do Table widgets scroll vertically into a blank space when all of the data is already displayed?  I'm not sure Table widgets should scroll at all... it prevents the user from scrolling the page if their mouse happens to be over it (the same issue happens with the World Map, which zooms when someone is trying to scroll the page with their mouse over it)


    Table Widget building is 100x slower than either the Custom Query widget or a Custom Report widget with a SWQL datasource.  Comparing the workflow of each:

    • Custom Query -
      • Paste in fully formatted SWQL. 
      • Done.
    • Custom Report -
      • Create Data Source by pasting in SWQL. 
      • Add Columns from picker. 
      • Put the columns in order. 
      • Done.
    • 'Modern' Table Widget -
      • Paste in SWQL. 
      • Click Show Records, which will fail if you renamed your columns, so you move on anyways.
      • Click Add New Column
        • Click Description, type a label..... why on earth does the label not pull from the source data?
        • Click Property and Formatting, select the column from drop down list
      • Repeat Add New Column for every column

    Table Widgets cannot be sorted by clicking the column header.  That's a step backwards.

    No Maps.  No World Map, no Atlas Maps, no Orion Maps.

    No Custom HTML or any way to embed images.

    Creating Widget panel defaults to showing every widget ever made, with "Empty Widgets" mixed in.  Surely the blank ones should be at the top?

    Using the Graphical Query Builder "Show advanced entities & properties" is hilariously awkward. 

    For a Node table, you start with this list of least-used statistics ever (and the search box can't be used for Custom Properties or anything else that you don't already see).


    And so you check "Show advanced" which gives you the entire SWQL table structure, and then Node columns all the way at the bottom.


    And even still, you can't search for a Custom Property by name.  You have to locate the Custom Properties table first.

    No View Limitations.  This is the biggest one for me.  You made the widgets re-usable on multiple dashboards.  That's pretty cool.  What isn't cool is if I need the same widget to show different nodes on different dashboards.  With the Custom Query widget, I can paste the same un-filtered SWQL onto any page and the View Limitation takes over.  To create similarly structured copies of a Modern Dashboard, I would have to recreate every widget by hand and filter each one?  No thank you.


    For us the new dashboards without view limitation are not usable either. I suffer with mikesky.

    I agree with @mikesky that it is nice to have pretty graphs now but what would have been nicer is to be able to add the old widgets in there too such as the maps, world map and custom HTML. I cannot use this to replace the old dashboards as it is not capable to do everything the old dashboards do so i'm left now with a choice of which one to use and what data to not have.

    My boss prefers a different product that uses PowerBI so that he can quickly build-out his own views/reports on the fly with little to no programming knowledge.  Do you think this product will ever have a PowerBI plugin/interface that would allow a manger to be able to do the same thing with the orion tools?

    @tony.johnson is there a way to bring UDP data into the modern dashboard? I am looking to show battery time remaining for our UPS systems and temperature for our ENV systems that I have captured using Universal Device Pollers.  I am looking all through the tables on SWQL Studio and yet to find anything that jumps out at me.  Thanks for the help!

    @robelk It is certainly possible to display UNDP data in modern dashboards as this data is exposed in SWQL. Take a look at the following which should get you started and familiar with the UNDP entities


    This likely provides something close to what you are looking for

    @tony.johnson thank you!! This helped tremendously!!!  


    Thank you for the detailed feedback. It is extremely valuable to us in helping to understand how we can improve features.

    Modern Dashboards are not intended to replace classic views and widgets. This is the 1st iteration of this dashboarding framework which we are continuing to invest in for the Orion platform and its models. New widget shapes such as the KPI and proportional widgets offer an alternative method of data presentation that is not available in classic views. This coupled with the freedom to resize and move widget across the canvas offers users additional options when it comes to how they create dashboards. Also worth noting that the widgets can update independently of an entire page refresh.

    The items you have identified above are well known and understood and are being actively tracked as we focus on our priorities for the next release. It is my hope that we will address as many of these as we can in the time available.




    Can someone tell me how I can easily filter by a custom property? (Department, environment, managed, etc)

    My dashboards are mainly based on custom properties. I have groups, but some of them contain all nodes in the group, rather than the few I want to have the dashboard on (ex. production). If I try to make the widget based on a group, I can't figure out a way to pull node details... or even list members of the group (rather than one line with the group name). 


    To query for nodes which have a custom property called city you could use

    Select IP_Address, Caption, NodeID, City FROM Orion.NodesCustomProperties cp
    INNER JOIN Orion.nodes nd on cp.NodeID = nd.NodeID
    Where City='Cork'

     To query for nodes in a group called MyGroup with the same custom 'City' custom property you could use 

    select n.Caption, n.IP_Address, City, c.detailsurl
    from orion.nodes n
    join orion.nodescustomproperties cp on cp.nodeid=n.nodeid
    join Orion.ContainerMembers c on c.memberprimaryid=n.nodeid
    join Orion.Container g on g.ContainerID= c.ContainerID
    where MemberEntityType like 'orion.nodes'
    and g.Name='MyGroup'
    and city='Cork'
    order by n.caption

    Thank you!

     @TacoTuesday to expand a bit on @tony.johnson 's reply...

    For some tables in SWQL, you can do "dot walking."  It cuts down on the number of JOINs you need.

    So for example you can do:

    SELECT N.IP_Address, N.Caption, N.NodeID, N.CustomProperties.City 
    FROM Orion.Nodes N
    WHERE N.CustomProperties.City = 'Cork'

    This acts as a JOIN between Nodes and CustomProperties without actually needing a JOIN.  (In this case the Nodes table is aliased to 'N' as a shortcut).

    The SWQL Studio in the Orion SDK is great for learning SWQL.  It's basically SQL, minus a few things, but adding in a bunch more.  Once you master SWQL, the only widget you'll use will be the Custom Query.  And eventually you'll be a master of these Modern Dashboards. 

    When you're in SWQL Studio, the Object explorer shows you everything you can dot walk to with a link icon.  This is a small sample of the Orion.Nodes table:

    SW DotWalk.png


    @tony.johnson @dunky2k 

    Hi guys,

    Firstly thank you for sharing this wonderful and helpful dashboards.

    @dunky2k I had noticed your customised dashboard that shows acknowledged and unacknowledged alerts.

    Could you please give me a hand creating similar dashboard your posted




    Are you wanting just the widget with the count, or do you want the tables that show the actual acknowledged / unacknowledged data, or would you like the both of them?

    I have a question in the Dashboard picture you have added a Network Wide Availability today widget .

    I want to know how did you do that ?

    I really wish we could use this new feature, but after upgrading to the newest 2020.2.1 platform version a couple of nights ago, the wobbling is still present when using the modern dashboards.  We can't present this to users when there's a high chance it will do this.  As long as the browser is in full screen, it seems to do it in Chrome, Firefox, IE, and Edge...  The only way to stop the wobbling is to take the browser out of full screen or to turn off the bookmarks bar. 


    Is this going to be fixed soon?  I'm surprised its been present for so long now...

    Version history
    Revision #:
    46 of 46
    Last update:
    ‎06-04-2020 05:07 AM
    Updated by: