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.

Total Application Availability by SAM Application Template Name

You can use the following SWQL snippet to retrieve total application availability grouped by application name... so to answer the question: "in aggregate across all nodes where a template may be applied, what is the total application availability?"

Use the following in a custom table widget  and place it on a view, or in a custom report.

select
  ApplicationName,
  avg(PercentAvailability) as AvgAvailability 
  from
    (select
	   max(ApplicationStatus.TimeStamp) as Month,
	   Nodes.Caption as NodeName,
       Nodes.DetailsUrl as NodesDetailsUrl,
	   Application.Name as ApplicationName,
       Application.DetailsUrl as ApplicationDetailsUrl,
	   sum(ApplicationStatus.PercentAvailability * ApplicationStatus.RecordCount) / sum(ApplicationStatus.RecordCount) as PercentAvailability
         from Orion.APM.ApplicationStatus ApplicationStatus
            , Orion.APM.Application Application
            , Orion.Nodes Nodes
             where ApplicationStatus.TimeStamp >= addminute(minutediff(getdate(), getutcdate()), addmonth(monthdiff(0, getdate()), 0))
               and ApplicationStatus.ApplicationID = Application.ApplicationID
               and Application.NodeID = Nodes.NodeID
             group by  Application.ApplicationID, Application.Name, Nodes.Caption, NodesDetailsUrl, ApplicationDetailsUrl
             order by Nodes.Caption, Application.Name
    ) group by ApplicationName
  • Great Job!  I adjusted the code slightly to show total application availability for my dashboard

    -- Total Application Availability

    SELECT
    ROUND(avg(PercentAvailability),2) as AvgAvailability

    FROM
    (SELECT
    max(ApplicationStatus.TimeStamp) as Month,
    Nodes.Caption as NodeName,
    Nodes.DetailsUrl as NodesDetailsUrl,
    Application.Name as ApplicationName,
    Application.DetailsUrl as ApplicationDetailsUrl,
    sum(ApplicationStatus.PercentAvailability * ApplicationStatus.RecordCount) / sum(ApplicationStatus.RecordCount) as PercentAvailability

    FROM Orion.APM.ApplicationStatus ApplicationStatus
    , Orion.APM.Application Application
    , Orion.Nodes Nodes

    WHERE ApplicationStatus.TimeStamp >= addminute(minutediff(getdate(), getutcdate()), addmonth(monthdiff(0, getdate()), 0))
    AND ApplicationStatus.ApplicationID = Application.ApplicationID
    AND Application.NodeID = Nodes.NodeID

    )