Average Response Time

Microsoft.JEE.APM.PerformanceHealth.AvgReqTime (UnitMonitor)

A performance monitor for the average time take for a request to the specific application.

Knowledge Base article:

Summary

The average request time monitor tracks the average request time for an application.

Causes

An unhealthy state indicates that the average request time for the application exceeded the monitored threshold configured for the agent.

Resolutions

Element properties:

TargetMicrosoft.JEE.Apm.Application
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.JEE.APM.Application.ThresholdUnitMonitor
RemotableTrue
AccessibilityPublic
Alert Message
Application performance average request time exceeded
The application has exceeded the average request time threshold.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.JEE.APM.PerformanceHealth.AvgReqTime" Accessibility="Public" Enabled="false" Target="Microsoft.JEE.Apm.Application" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.JEE.APM.Application.ThresholdUnitMonitor" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.JEE.APM.PerformanceHealth.AvgReqTime_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<!-- The alert description should include key properties of: -->
<!-- * the deep monitored application server -->
<!-- * the performance counter object name -->
<!-- * counter name -->
<!-- * instance name (not used b/c no corresponding value for rule) -->
<AlertParameter1>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/Id$</AlertParameter1>
<AlertParameter2>Response Time</AlertParameter2>
<AlertParameter3>Application Average Response Time</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Microsoft.JEE.APM.PerformanceHealth.AvgReqTime.UnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="Microsoft.JEE.APM.PerformanceHealth.AvgReqTime.OverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/HostName$</ComputerName>
<Protocol>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/Protocol$</Protocol>
<Port>$Target/Host/Property[Type="JEE!Microsoft.JEE.ApplicationServer.Monitored.Instance"]/Port$</Port>
<Verb>GET</Verb>
<Query>/BeanSpy/MBeans?JMXQuery=com.microsoft.ManagementServices.APMAgent:type=COUNTER&amp;MaxDepth=3</Query>
<Body/>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>120</TimeoutSeconds>
<MetricName>eventData/log/applications/application[@name='$Target/Property[Type="Microsoft.JEE.Apm.Application"]/ContextPath$']/counters/counter[@id='29']</MetricName>
<Threshold>50</Threshold>
<CredentialUserName>$RunAs[Name="JEE!Microsoft.JEE.MonitoringAccount"]/UserName$</CredentialUserName>
<CredentialPassword>$RunAs[Name="JEE!Microsoft.JEE.MonitoringAccount"]/Password$</CredentialPassword>
</Configuration>
</UnitMonitor>