Exception Events per Second

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

A performance monitor for the number of exception events that are generated per second for the specific application.

Knowledge Base article:

Summary

The exception events per second monitor tracks the number of events generated by the monitoring agent on the Java Virtual Machine.

Causes

An unhealthy state indicates that the number of exception events generated per second has 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 exception events/sec exceeded
The application has exceeded the number of exception events per second threshold.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.JEE.APM.PerformanceHealth.ExceptionEventsSec" 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.ExceptionEventsSec_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>EventsSec</AlertParameter2>
<AlertParameter3>Application Exception Events per Second</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Microsoft.JEE.APM.PerformanceHealth.ExceptionEventsSec.UnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="Microsoft.JEE.APM.PerformanceHealth.ExceptionEventsSec.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='28']</MetricName>
<Threshold>0</Threshold>
<CredentialUserName>$RunAs[Name="JEE!Microsoft.JEE.MonitoringAccount"]/UserName$</CredentialUserName>
<CredentialPassword>$RunAs[Name="JEE!Microsoft.JEE.MonitoringAccount"]/Password$</CredentialPassword>
</Configuration>
</UnitMonitor>