Create a report for router availability

Need help in creating a report to show router availability, need to include average availability, system up time, time device went offline (if applicable) and time device came back online - i have managed to get as far as - Average availability, Status description & system up time (days - which is displaying incorrect information when a node is down it stating for example systems up time (days) 1440 ????

thanks in advance 

  • What about this report and then just filtering it for your specific device type?

  • Thank you for this - how do i get it just to pick up the correct device type ?

  • That depends on your environment.  However you define what a "router" is, you just add that as a filter to the report.  For me it used to be by model name: Cisco 2821, Cisco 3945, etc., but each environment is different.

  • this is what i need to add but not sure where / how Meraki MX67C, Meraki MX450, Cisco 887VaWEK9 , Cisco 881-K9 - thanks

  • Just add them as an additional filter all the way at the end of the data source...

    Click Edit on the data source

    And at the bottom add:

      AND [Nodes].Description IN ('List', 'Your', 'Device', 'Models', 'Here')

  • Right ok getting somewhere - still seeing other devices on the report other than routers - how do i get rid of these :- 


    NetBotz 455 Wall

    windows 2019 server 

    winddows 2016 server 


  • this is what i have so far - SELECT [Nodes].Caption
    , [Nodes].DetailsUrl
    , [Nodes].VendorInfo.Icon
    , [ResponseTime].Day
    , [ResponseTime].Availability
    , [Downtime].MinutesDown
    , [Downtime].CalcAvailability
    , [Events].RebootCount
    -- To add Node Custom Properties use:
    -- , [Node].CustomProperties.<Custom Property Name>
    FROM Orion.Nodes AS [Nodes]
    SELECT [RT].NodeID
    , DateTrunc('day', [RT].DateTime) AS [Day]
    , AVG([RT].Availability * 1.0) AS Availability
    FROM Orion.ResponseTime AS [RT]
    GROUP BY DateTrunc('day', [RT].DateTime)
    , [RT].NodeID
    ) AS [ResponseTime]
    ON [Nodes].NodeID = [ResponseTime].NodeID
    SELECT [DT].NodeId
    , DateTrunc('day', [DT].DateTimeUntil) AS [Day]
    , SUM([DT].TotalDurationMin) AS [MinutesDown]
    , ( ( 1.0 - ( SUM([DT].TotalDurationMin) / 1440.0 ) ) * 100.0 ) AS [CalcAvailability]
    FROM Orion.NetObjectDowntime AS [DT]
    INNER JOIN Orion.StatusInfo AS [SI]
    ON [DT].State = [SI].StatusId
    AND [SI].StatusName = 'Down' -- Where the status is 'Down' (not 'Critical', 'Warning', etc.)
    WHERE [DT].EntityType = 'Orion.Nodes' -- Only show me nodes
    AND [DT].DateTimeUntil IS NOT NULL --Indicates that it's no longer down
    GROUP BY DateTrunc('day', [DT].DateTimeUntil)
    , [DT].NodeId
    ) AS [Downtime]
    ON [ResponseTime].NodeId = [Downtime].NodeID
    AND [ResponseTime].Day = [Downtime].Day
    SELECT [E].Nodes.NodeID
    , COUNT([E].EventID) AS [RebootCount]
    , DATETRUNC('day', [E].EventTime) AS [Day]
    FROM Orion.Events AS [E]
    WHERE [E].EventTypeProperties.Name = 'Node rebooted'
    -- AND [E].Nodes.CustomProperties.<Custom Property Name> = <Custom Property Value>
    GROUP BY DATETRUNC('day', [E].EventTime)
    , [E].Nodes.NodeID
    ) AS [Events]
    ON [ResponseTime].NodeID = [Events].NodeID
    AND [ResponseTime].Day = [Events].Day
    WHERE [Nodes].ObjectSubType <> 'ICMP'
    -- Required for Orion Reports
    AND [ResponseTime].Day BETWEEN ${FromTime} AND ${ToTime}
    -- To filter on Node Custom Properties add
    -- AND [Node].Description IN ('Meraki MX67C', 'Meraki MX67C',' Cisco 887VaWEK9', 'Cisco 887VaWEK9')

  • Remove the double-dash from the beginning.  That means that line is a comment.

  • Right need report to pick up all polling methods how do i amend thanks - this is what i get if i try to run report with icmp double dash (to ingore basically)