Above Threshold Average Request Time Monitor Template

AVIcode.DotNet.SystemCenter.ClientTransactions.AboveThresholdAvgReqTimeMonitor.Template (Template)

Source Code:

<Template ID="AVIcode.DotNet.SystemCenter.ClientTransactions.AboveThresholdAvgReqTimeMonitor.Template" Purpose="RuleCreation">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="LocaleId" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MonitorId" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MonitorName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ErrorMonitorState" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="AlertName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="AlertDescription" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="AlertAutoResolve" type="xsd:boolean"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TargetClass" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="InstanceName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Frequency" type="xsd:int"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Threshold" type="xsd:double"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Hosts" type="xsd:string"/>
</Configuration>
<References>
<Reference ID="Performance"/>
<Reference ID="Health"/>
<Reference ID="Windows"/>
<Reference ID="DotNet"/>
<Reference ID="System"/>
</References>
<Implementation>
<Monitoring>
<Monitors>
<UnitMonitor ID="$TemplateConfig/MonitorId$" Accessibility="Public" Enabled="true" Target="$TemplateConfig/TargetClass$" ParentMonitorID="$Reference/Health$System.Health.PerformanceState" Remotable="false" Priority="Normal" TypeID="$Reference/DotNet$AVIcode.DotNet.SystemCenter.AboveThresholdMonitorType" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="$TemplateConfig/MonitorId$.Alert">
<AlertOnState>$TemplateConfig/ErrorMonitorState$</AlertOnState>
<AutoResolve>$TemplateConfig/AlertAutoResolve$</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$TemplateConfig/Threshold$</AlertParameter1>
<AlertParameter2>$TemplateConfig/InstanceName$</AlertParameter2>
<AlertParameter3>$Data/Context/EventData/Value$</AlertParameter3>
<AlertParameter4>$Data/Context/EventDescription$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="$TemplateConfig/ErrorMonitorState$" MonitorTypeStateID="OverThreshold" HealthState="$TemplateConfig/ErrorMonitorState$"/>
</OperationalStates>
<Configuration>
<ApplicationName>$Target/Host/Property[Type="$Reference/System$System.Entity"]/DisplayName$</ApplicationName>
<Aspect>performance</Aspect>
<ComputerName>$Target/Host/Host/Host/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Average page request execution time</CounterName>
<ObjectName>.NET CSM Statistic</ObjectName>
<InstanceName>$TemplateConfig/InstanceName$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>$TemplateConfig/Frequency$</Frequency>
<Threshold>$TemplateConfig/Threshold$</Threshold>
</Configuration>
</UnitMonitor>
</Monitors>
</Monitoring>
<Presentation>
<StringResources>
<StringResource ID="$TemplateConfig/MonitorId$.Alert"/>
</StringResources>
</Presentation>
<LanguagePacks>
<LanguagePack ID="$TemplateConfig/LocaleId$">
<DisplayStrings>
<DisplayString ElementID="$TemplateConfig/MonitorId$">
<Name>$TemplateConfig/MonitorName$</Name>
<Description>Above threshold monitor that becomes unhealthy if the average request time per predefined escalation time period exceeds an escalation threshold.</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitorId$" SubElementID="Success">
<Name>Success</Name>
<Description>Monitor state.</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitorId$.Alert">
<Name>$TemplateConfig/AlertName$</Name>
<Description>$TemplateConfig/AlertDescription$</Description>
</DisplayString>
</DisplayStrings>
<KnowledgeArticles>
<KnowledgeArticle ElementID="$TemplateConfig/MonitorId$" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>The instance state becomes unhealthy if the average request time per predefined escalation time period exceeds an escalation threshold.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>Application performance alerts are generated when the average time (in milliseconds) that takes to load a web page of the monitored web application exceeds the configured Alerting Threshold.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para/>
<maml:para>Excessively long Network request times may be due to unbalanced Network.</maml:para>
<maml:para>Long Server processing may be due to complex or inefficient server code.</maml:para>
<maml:para>Page Loading Time performance issues may occur because of either large page size or a large number of java scripts.</maml:para>
<maml:para>Long Window.OnLoad performance issues may result from long java script handlers execution.</maml:para>
<maml:para>To access details about this alert click on the "View additional knowledge..." link on the Alert Details view, and select the Alert Context tab. Additional event details will be available from the Click "here" link at the top of the Alert Context tab.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
</KnowledgeArticles>
</LanguagePack>
</LanguagePacks>
</Implementation>
</Template>