Process Monitoring

Microsoft.SystemCenter.ProcessMonitor.Template (Template)

This template allows processes to be monitored and allows collection of related performance data.

Source Code:

<Template ID="Microsoft.SystemCenter.ProcessMonitor.Template">
<Configuration>
<xsd:element name="MonitoredProcessTypeId" type="xsd:string"/>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Description" type="xsd:string"/>
<xsd:element name="LocaleId" type="xsd:string"/>
<xsd:element name="ProcessName" type="xsd:string"/>
<xsd:element name="ProcessNameExtension" type="xsd:string"/>
<xsd:element name="TargetGroupGUID" type="xsd:string"/>
<xsd:element name="IsMonitorAProcessOptionSelected" type="xsd:boolean"/>
<xsd:element name="IsDetectAnUnwantedProcessOptionSelected" type="xsd:boolean"/>
<xsd:element name="IsMonitorNumberOfProcessInstancesOptionSelected" type="xsd:boolean"/>
<xsd:element name="IsMonitorProcessRunningTimeOptionSelected" type="xsd:boolean"/>
<xsd:element name="MinInstanceCount" type="xsd:unsignedInt"/>
<xsd:element name="MaxInstanceCount">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:minInclusive value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="InstanceCountOutOfRangeTimeThresholdInSeconds" type="xsd:unsignedInt"/>
<xsd:element name="Threshold" type="xsd:unsignedInt"/>
<xsd:element name="IsProcessorTimeMonitored" type="xsd:boolean"/>
<xsd:element name="PercentProcessorTimeThreshold" type="xsd:unsignedInt"/>
<xsd:element name="IsPrivateBytesMonitored" type="xsd:boolean"/>
<xsd:element name="PrivateBytesThreshold" type="xsd:double"/>
<xsd:element name="ConsecutiveSampleCount" type="xsd:unsignedInt"/>
<xsd:element name="PollIntervalInSeconds" type="xsd:unsignedInt"/>
</Configuration>
<References>
<Reference ID="System"/>
<Reference ID="SC"/>
<Reference ID="SCDW"/>
<Reference ID="Self"/>
<Reference ID="Windows"/>
<Reference ID="Performance"/>
<Reference ID="Health"/>
</References>
<Implementation>
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess" Base="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess" Abstract="false" Accessibility="Public" Hosted="true"/>
</ClassTypes>
</EntityTypes>
</TypeDefinitions>
<Monitoring>
<Discoveries>
<Discovery ID="$TemplateConfig/MonitoredProcessTypeId$.Discovery.Rule" Enabled="false" Target="$Reference/Windows$Microsoft.Windows.Computer">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess">
<Property PropertyID="ProcessName" TypeID="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"/>
<Property PropertyID="ProcessNameExtension" TypeID="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"/>
<Property PropertyID="DisplayName" TypeID="$Reference/System$System.Entity"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DiscoveryDS" TypeID="$Reference/Self$Microsoft.SystemCenter.Process.DiscoveryDataSource">
<Frequency>86400</Frequency>
<MonitoredProcessClassId>$MPElement[Name="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess"]$</MonitoredProcessClassId>
<PrincipalName>$Target/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/PrincipalName$</PrincipalName>
<MonitoredProcessFriendlyName>$TemplateConfig/Name$</MonitoredProcessFriendlyName>
<MonitoredProcessNameId>$MPElement[Name="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"]/ProcessName$</MonitoredProcessNameId>
<MonitoredProcessName>$TemplateConfig/ProcessName$</MonitoredProcessName>
<MonitoredProcessNameExtensionId>$MPElement[Name="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"]/ProcessNameExtension$</MonitoredProcessNameExtensionId>
<MonitoredProcessNameExtension>$TemplateConfig/ProcessNameExtension$</MonitoredProcessNameExtension>
</DataSource>
</Discovery>
</Discoveries>
<Rules>
<Rule ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessorTimeDataCollectionRule" Enabled="$TemplateConfig/IsProcessorTimeMonitored$" Target="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess" ConfirmDelivery="false" Remotable="false" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="$Reference/Performance$System.Performance.OptimizedDataProvider">
<ComputerName>$Target/Host/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Processor Time</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>$Target/Property[Type="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"]/ProcessName$*</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>$TemplateConfig/PollIntervalInSeconds$</Frequency>
<ScaleBy>$Target/Host/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/LogicalProcessors$</ScaleBy>
<Tolerance>10</Tolerance>
<ToleranceType>Percentage</ToleranceType>
<MaximumSampleSeparation>10</MaximumSampleSeparation>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="$Reference/SC$Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="WriteToDW" TypeID="$Reference/SCDW$Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>
<Rule ID="$TemplateConfig/MonitoredProcessTypeId$.PrivateBytesDataCollectionRule" Enabled="$TemplateConfig/IsPrivateBytesMonitored$" Target="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess" ConfirmDelivery="false" Remotable="false" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="$Reference/Performance$System.Performance.OptimizedDataProvider">
<ComputerName>$Target/Host/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Private Bytes</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>$Target/Property[Type="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"]/ProcessName$*</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>$TemplateConfig/PollIntervalInSeconds$</Frequency>
<Tolerance>10</Tolerance>
<ToleranceType>Percentage</ToleranceType>
<MaximumSampleSeparation>10</MaximumSampleSeparation>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="$Reference/SC$Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="WriteToDW" TypeID="$Reference/SCDW$Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>
</Rules>
<Monitors>
<UnitMonitor ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessRunningTimeMonitor" Accessibility="Public" Enabled="$TemplateConfig/IsMonitorProcessRunningTimeOptionSelected$" Target="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess" ParentMonitorID="$Reference/Health$System.Health.AvailabilityState" Remotable="false" Priority="Normal" TypeID="$Reference/Self$Microsoft.SystemCenter.Process.SimpleThreshold.ErrorOnTooHigh" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.RunningTimeThresholdExceeded.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>false</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OK" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Elapsed Time</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>$Target/Property[Type="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"]/ProcessName$*</InstanceName>
<Frequency>300</Frequency>
<Threshold>$TemplateConfig/Threshold$</Threshold>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessCPUUsageMonitor" Accessibility="Public" Enabled="$TemplateConfig/IsProcessorTimeMonitored$" Target="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess" ParentMonitorID="$Reference/Health$System.Health.PerformanceState" Remotable="false" Priority="Normal" TypeID="$Reference/Self$Microsoft.SystemCenter.Process.ConsecutiveSamplesThreshold.ErrorOnTooHigh" ConfirmDelivery="false">
<Category>PerformanceCollection</Category>
<AlertSettings AlertMessage="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.CPUUsageThresholdExceeded.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/SampleValue$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OK" MonitorTypeStateID="SampleCountNormal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="SampleCountTooHigh" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Processor Time</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>$Target/Property[Type="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"]/ProcessName$*</InstanceName>
<Frequency>$TemplateConfig/PollIntervalInSeconds$</Frequency>
<ScaleBy>$Target/Host/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/LogicalProcessors$</ScaleBy>
<Threshold>$TemplateConfig/PercentProcessorTimeThreshold$</Threshold>
<NumSamples>$TemplateConfig/ConsecutiveSampleCount$</NumSamples>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMemoryUsageMonitor" Accessibility="Public" Enabled="$TemplateConfig/IsPrivateBytesMonitored$" Target="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess" ParentMonitorID="$Reference/Health$System.Health.PerformanceState" Remotable="false" Priority="Normal" TypeID="$Reference/Self$Microsoft.SystemCenter.Process.ConsecutiveSamplesThreshold.ErrorOnTooHigh" ConfirmDelivery="false">
<Category>PerformanceCollection</Category>
<AlertSettings AlertMessage="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.MemoryUsageThresholdExceeded.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/SampleValue$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OK" MonitorTypeStateID="SampleCountNormal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="SampleCountTooHigh" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="$Reference/Windows$Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Private Bytes</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>$Target/Property[Type="$Reference/Self$Microsoft.SystemCenter.Process.BaseMonitoredProcess"]/ProcessName$*</InstanceName>
<Frequency>$TemplateConfig/PollIntervalInSeconds$</Frequency>
<Threshold>$TemplateConfig/PrivateBytesThreshold$</Threshold>
<NumSamples>$TemplateConfig/ConsecutiveSampleCount$</NumSamples>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="$TemplateConfig/MonitoredProcessTypeId$.UnwantedProcessMonitor" Accessibility="Public" Enabled="$TemplateConfig/IsDetectAnUnwantedProcessOptionSelected$" Target="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess" ParentMonitorID="$Reference/Health$System.Health.AvailabilityState" Remotable="false" Priority="Normal" TypeID="$Reference/Self$Microsoft.SystemCenter.Process.UnwantedProcessMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.UnwantedProcessDetected.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>false</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OK" MonitorTypeStateID="UnwantedProcessDoesNotExist" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="UnwantedProcessExists" HealthState="Error"/>
</OperationalStates>
<Configuration>
<UnwantedProcessName>$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$</UnwantedProcessName>
<Frequency>60</Frequency>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessInstanceCountMonitor" Accessibility="Public" Enabled="$TemplateConfig/IsMonitorNumberOfProcessInstancesOptionSelected$" Target="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess" ParentMonitorID="$Reference/Health$System.Health.AvailabilityState" Remotable="false" Priority="Normal" TypeID="$Reference/Self$Microsoft.SystemCenter.Process.ProcessInstanceCountMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.ProcessInstanceCountOutsideRange.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data[Default='0']/Context/DataItem/Item0Context/DataItem/ProcessInformations/ProcessInformation[./ProcessName ='$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$']/ActiveInstanceCount$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OK" MonitorTypeStateID="InsideRangeState" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="OutsideRangeState" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ProcessName>$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$</ProcessName>
<Frequency>60</Frequency>
<MinInstanceCount>$TemplateConfig/MinInstanceCount$</MinInstanceCount>
<MaxInstanceCount>$TemplateConfig/MaxInstanceCount$</MaxInstanceCount>
<InstanceCountOutOfRangeTimeThresholdInSeconds>$TemplateConfig/InstanceCountOutOfRangeTimeThresholdInSeconds$</InstanceCountOutOfRangeTimeThresholdInSeconds>
</Configuration>
</UnitMonitor>
</Monitors>
<Overrides>
<DiscoveryPropertyOverride ID="$TemplateConfig/MonitoredProcessTypeId$.DiscoveryOverride" Context="$Reference/System$System.Entity" ContextInstance="$TemplateConfig/TargetGroupGUID$" Enforced="false" Discovery="$TemplateConfig/MonitoredProcessTypeId$.Discovery.Rule" Property="Enabled">
<Value>true</Value>
</DiscoveryPropertyOverride>
</Overrides>
</Monitoring>
<Presentation>
<StringResources>
<StringResource ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.RunningTimeThresholdExceeded.AlertMessage"/>
<StringResource ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.CPUUsageThresholdExceeded.AlertMessage"/>
<StringResource ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.MemoryUsageThresholdExceeded.AlertMessage"/>
<StringResource ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.UnwantedProcessDetected.AlertMessage"/>
<StringResource ID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.ProcessInstanceCountOutsideRange.AlertMessage"/>
</StringResources>
</Presentation>
<LanguagePacks>
<LanguagePack ID="$TemplateConfig/LocaleId$">
<DisplayStrings>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$MonitoredProcess">
<Name>$TemplateConfig/Name$</Name>
<Description>$TemplateConfig/Description$</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.Discovery.Rule">
<Name>$TemplateConfig/Name$ Discovery</Name>
<Description>Discovery rule for $TemplateConfig/Name$</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessorTimeDataCollectionRule">
<Name>$TemplateConfig/Name$ CPU Usage Data Collection</Name>
<Description>Collects performance counter for the % Processor Time.</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.PrivateBytesDataCollectionRule">
<Name>$TemplateConfig/Name$ Memory Usage Data Collection</Name>
<Description>Collects performance counter for memory usage.</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessRunningTimeMonitor">
<Name>Process Running Time Monitor</Name>
<Description>Process has been running for more than the specified threshold.</Description>
</DisplayString>
<DisplayString ElementID="$Reference/Self$Microsoft.SystemCenter.Process.SimpleThreshold.ErrorOnTooHigh" SubElementID="UnderThreshold">
<Name>Process Running Time Under Specified Duration (Success)</Name>
</DisplayString>
<DisplayString ElementID="$Reference/Self$Microsoft.SystemCenter.Process.SimpleThreshold.ErrorOnTooHigh" SubElementID="OverThreshold">
<Name>Process Running Time Over Specified Duration (Error)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessCPUUsageMonitor">
<Name>Process CPU Usage Monitor</Name>
<Description>CPU usage of the process has exceeded the specified percentage.</Description>
</DisplayString>
<DisplayString ElementID="$Reference/Self$Microsoft.SystemCenter.Process.ConsecutiveSamplesThreshold.ErrorOnTooHigh" SubElementID="SampleCountNormal">
<Name>Under Threshold (Success)</Name>
</DisplayString>
<DisplayString ElementID="$Reference/Self$Microsoft.SystemCenter.Process.ConsecutiveSamplesThreshold.ErrorOnTooHigh" SubElementID="SampleCountTooHigh">
<Name>Over Threshold (Error)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMemoryUsageMonitor">
<Name>Process Memory Usage Monitor</Name>
<Description>Memory usage of the process has exceeded the specified threshold.</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessInstanceCountMonitor">
<Name>Process Instance Count Monitor</Name>
<Description>Number of specified processes is outside of the specified threshold.</Description>
</DisplayString>
<DisplayString ElementID="$Reference/Self$Microsoft.SystemCenter.Process.ProcessInstanceCountMonitorType" SubElementID="InsideRangeState">
<Name>Inside the valid range (Success)</Name>
</DisplayString>
<DisplayString ElementID="$Reference/Self$Microsoft.SystemCenter.Process.ProcessInstanceCountMonitorType" SubElementID="OutsideRangeState">
<Name>Outside the valid range (Error)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.UnwantedProcessMonitor">
<Name>Unwanted Process Detection Monitor</Name>
<Description>Unwanted process has been started.</Description>
</DisplayString>
<DisplayString ElementID="$Reference/Self$Microsoft.SystemCenter.Process.UnwantedProcessMonitorType" SubElementID="UnwantedProcessDoesNotExist">
<Name>Unwanted process not detected.</Name>
</DisplayString>
<DisplayString ElementID="$Reference/Self$Microsoft.SystemCenter.Process.UnwantedProcessMonitorType" SubElementID="UnwantedProcessExists">
<Name>Unwanted process detected.</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.RunningTimeThresholdExceeded.AlertMessage">
<Name>$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ - Running time threshold exceeded</Name>
<Description>$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ has been running for {0} seconds which is more than the specified threshold.</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.CPUUsageThresholdExceeded.AlertMessage">
<Name>$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ - Processor usage threshold exceeded</Name>
<Description>At least one of the instances of the $TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ process has exceeded the % Processor Time threshold with a value of {0} .</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.MemoryUsageThresholdExceeded.AlertMessage">
<Name>$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ - Memory usage threshold exceeded</Name>
<Description>At least one of the instances of the $TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ process has exceeded the memory usage threshold with a value of {0} .</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.UnwantedProcessDetected.AlertMessage">
<Name>$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ - Unwanted process detected</Name>
<Description>An unwanted instance of the $TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ process has been started on the system.</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMonitoring.ProcessInstanceCountOutsideRange.AlertMessage">
<Name>$TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ - Process instance count outside valid range</Name>
<Description>Instance count of the $TemplateConfig/ProcessName$.$TemplateConfig/ProcessNameExtension$ process is outside specified range with a value of {0} .</Description>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessCPUUsageMonitor" SubElementID="OK">
<Name>CPU usage under specified maximum (Success)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessCPUUsageMonitor" SubElementID="Error">
<Name>CPU usage over specified maximum (Error)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessInstanceCountMonitor" SubElementID="OK">
<Name>Process count inside the valid range (Success)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessInstanceCountMonitor" SubElementID="Error">
<Name>Process count outside the valid range (Error)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMemoryUsageMonitor" SubElementID="OK">
<Name>Memory usage under specified maximum (Success)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMemoryUsageMonitor" SubElementID="Error">
<Name>Memory usage over specified maximum (Error)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessRunningTimeMonitor" SubElementID="OK">
<Name>Process run time under specified duration (Success)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessRunningTimeMonitor" SubElementID="Error">
<Name>Process run time over specified duration (Error)</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.UnwantedProcessMonitor" SubElementID="OK">
<Name>Unwanted process has not been detected</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.UnwantedProcessMonitor" SubElementID="Error">
<Name>Unwanted process has been detected</Name>
</DisplayString>
<DisplayString ElementID="$TemplateConfig/MonitoredProcessTypeId$.DiscoveryOverride">
<Name>Discovery Enabled Override</Name>
<Description>Overrides the enabled property of the monitored process discovery.</Description>
</DisplayString>
</DisplayStrings>
<KnowledgeArticles>
<KnowledgeArticle ElementID="$TemplateConfig/MonitoredProcessTypeId$.Discovery.Rule" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This Discovery Rule submits discovery data for the monitored process on the computers that are in the group specified by the user.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessRunningTimeMonitor" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This monitor will generate an alert if a process runs longer than a specified duration.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>This monitor was configured through the process monitoring Management Pack (MP) Template. Please consult the author of this monitoring to ensure the proper action is taken for this alert. The causes and resolutions below are simple suggestions on where to start troubleshooting which may not be the right course of action intended by the author that wanted this process to be monitored</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>There could be various reasons the process(es) being monitored have exceeded the length of time they are expected to be running. First and foremost, please check with the author of this monitoring to ensure the intended troubleshooting and escalation procedures are followed.</maml:para>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>The author of this monitoring may have configured monitoring for a Line of Business (LOB) application or 3rd party application including Microsoft applications. </maml:para>
<maml:para/>
<maml:para>Please consult the author of this monitoring. Some knowledge may have already been documented in the Company Knowledge of the Alert Properties tab.</maml:para>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>The following tools are useful in troubleshooting processes:</maml:para>
<maml:list>
<maml:listItem>
<maml:para>Task Manager (taskmgr.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Performance Monitor (perfmon.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Resource Monitor (feature of perfmon.exe found in Windows Vista and higher)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Process Monitor (a Windows Sysinternals utility found here: <maml:navigationLink><maml:linkText>http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx</maml:linkText><maml:uri href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"/></maml:navigationLink>) </maml:para>
</maml:listItem>
</maml:list>
<maml:para/>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>External</maml:title>
<maml:para>There are various articles that go into detail on troubleshooting Microsoft processes found in products and features like Cluster Server, Domain Controllers, and IIS. You can find the most common articles here: <maml:navigationLink><maml:linkText>http://search.live.com/results.aspx?q=troubleshooting+high+CPU++windows+server+site%3Amicrosoft.com</maml:linkText><maml:uri href="http://search.live.com/results.aspx?q=troubleshooting+high+CPU++windows+server+site%3Amicrosoft.com"/></maml:navigationLink></maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessCPUUsageMonitor" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This monitor will generate an alert if CPU usage rises above the specified percentage.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>This monitor was configured through the process monitoring Management Pack (MP) Template. Please consult the author of this monitoring to ensure the proper action is taken for this alert. The causes and resolutions below are simple suggestions on where to start troubleshooting which may not be the right course of action intended by the author that wanted this process to be monitored</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>There could be various reasons the process(es) being monitored are exceeding CPU or memory usage. First and foremost, please check with the author of this monitoring to ensure the intended troubleshooting and escalation procedures are followed.</maml:para>
<maml:para/>
<maml:para>
<maml:ui>Potential reasons this process has exceeded the memory threshold:</maml:ui>
</maml:para>
<maml:list>
<maml:listItem>
<maml:para>The process(es) are overwhelmed with requests or work (e.g. a web server or database server)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>There may be a performance bug in the application you are monitoring</maml:para>
</maml:listItem>
</maml:list>
<maml:para/>
<maml:para>In many cases, utilization will impact users using that application and needs to be investigated.</maml:para>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>The author of this monitoring may have configured monitoring for a Line of Business (LOB) application or 3rd party application including Microsoft applications. For troubleshooting high CPU or memory utilization of Microsoft applications, please see the External Knowledge Sources.</maml:para>
<maml:para/>
<maml:para>Please consult the author of this monitoring. Some knowledge may have already been documented in the Company Knowledge of the Alert Properties tab.</maml:para>
<maml:para/>
<maml:para>If the monitored process is being monitored within a Virtual Machine, the Guest Operating System may need more CPU or memory resources.</maml:para>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>The following tools are useful in troubleshooting processes:</maml:para>
<maml:list>
<maml:listItem>
<maml:para>Task Manager (taskmgr.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Performance Monitor (perfmon.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Resource Monitor (feature of perfmon.exe found in Windows Vista and higher)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Process Monitor (a Windows Sysinternals utility found here: <maml:navigationLink><maml:linkText>http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx</maml:linkText><maml:uri href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"/></maml:navigationLink>)</maml:para>
</maml:listItem>
</maml:list>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>External</maml:title>
<maml:para>There are various articles that go into detail on troubleshooting high memory usage of specific Microsoft processes found in products and features like IIS, Index Server, and Domain Controllers. </maml:para>
<maml:para>You can find the most common articles for troubleshooting high memory usage here: <maml:navigationLink><maml:linkText>http://search.live.com/results.aspx?q=high+memory+usage+site%3Amicrosoft.com</maml:linkText><maml:uri href="http://search.live.com/results.aspx?q=high+memory+usage+site%3Amicrosoft.com"/></maml:navigationLink></maml:para>
<maml:para/>
<maml:para>You can find the most common articles for troubleshooting high CPU usage here:</maml:para>
<maml:para>
<maml:navigationLink>
<maml:linkText>http://search.live.com/results.aspx?q=troubleshooting+high+CPU++site%3Amicrosoft.com</maml:linkText>
<maml:uri href="http://search.live.com/results.aspx?q=troubleshooting+high+CPU++site%3Amicrosoft.com"/>
</maml:navigationLink>
</maml:para>
<maml:para/>
<maml:para/>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessMemoryUsageMonitor" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This monitor will generate an alert if memory usage rises above the specified threshold.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>This monitor was configured through the process monitoring Management Pack (MP) Template. Please consult the author of this monitoring to ensure the proper action is taken for this alert. The causes and resolutions below are simple suggestions on where to start troubleshooting which may not be the right course of action intended by the author that wanted this process to be monitored</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>There could be various reasons the process(es) being monitored are exceeding CPU or memory usage. First and foremost, please check with the author of this monitoring to ensure the intended troubleshooting and escalation procedures are followed.</maml:para>
<maml:para/>
<maml:para>
<maml:ui>Potential reasons this process has exceeded the memory threshold:</maml:ui>
</maml:para>
<maml:list>
<maml:listItem>
<maml:para>The process(es) are overwhelmed with requests or work (e.g. a web server or database server)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>There may be a performance bug in the application you are monitoring</maml:para>
</maml:listItem>
</maml:list>
<maml:para/>
<maml:para>In many cases, utilization will impact users using that application and needs to be investigated.</maml:para>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>The author of this monitoring may have configured monitoring for a Line of Business (LOB) application or 3rd party application including Microsoft applications. For troubleshooting high CPU or memory utilization of Microsoft applications, please see the External Knowledge Sources.</maml:para>
<maml:para/>
<maml:para>Please consult the author of this monitoring. Some knowledge may have already been documented in the Company Knowledge of the Alert Properties tab.</maml:para>
<maml:para/>
<maml:para>If the monitored process is being monitored within a Virtual Machine, the Guest Operating System may need more CPU or memory resources.</maml:para>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>The following tools are useful in troubleshooting processes:</maml:para>
<maml:list>
<maml:listItem>
<maml:para>Task Manager (taskmgr.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Performance Monitor (perfmon.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Resource Monitor (feature of perfmon.exe found in Windows Vista and higher)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Process Monitor (a Windows Sysinternals utility found here: <maml:navigationLink><maml:linkText>http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx</maml:linkText><maml:uri href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"/></maml:navigationLink>)</maml:para>
</maml:listItem>
</maml:list>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>External</maml:title>
<maml:para>There are various articles that go into detail on troubleshooting high memory usage of specific Microsoft processes found in products and features like IIS, Index Server, and Domain Controllers. </maml:para>
<maml:para>You can find the most common articles for troubleshooting high memory usage here: <maml:navigationLink><maml:linkText>http://search.live.com/results.aspx?q=high+memory+usage+site%3Amicrosoft.com</maml:linkText><maml:uri href="http://search.live.com/results.aspx?q=high+memory+usage+site%3Amicrosoft.com"/></maml:navigationLink></maml:para>
<maml:para/>
<maml:para>You can find the most common articles for troubleshooting high CPU usage here:</maml:para>
<maml:para>
<maml:navigationLink>
<maml:linkText>http://search.live.com/results.aspx?q=troubleshooting+high+CPU++site%3Amicrosoft.com</maml:linkText>
<maml:uri href="http://search.live.com/results.aspx?q=troubleshooting+high+CPU++site%3Amicrosoft.com"/>
</maml:navigationLink>
</maml:para>
<maml:para/>
<maml:para/>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="$TemplateConfig/MonitoredProcessTypeId$.UnwantedProcessMonitor" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This monitor will generate an alert when an unwanted process becomes active.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>This monitor was configured through the process monitoring Management Pack (MP) Template. Please consult the author of this monitoring to ensure the proper action is taken for this alert. The causes and resolutions below are simple suggestions on where to start troubleshooting which may not be the right course of action intended by the author that wanted this process to be monitored</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>Please consult the author of this monitoring to ensure the intended troubleshooting and escalation procedures are followed. There are numerous reasons an unwanted process has started and only the original author of this monitoring can provide the background knowledge as to why this unwanted process is being monitored.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Please consult the author of this monitoring. Some knowledge may have already been documented in the Company Knowledge of the Alert Properties tab.</maml:para>
<maml:para/>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>The following tools are useful for the troubleshooting of process:</maml:para>
<maml:list>
<maml:listItem>
<maml:para>Task Manager (taskmgr.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Performance Monitor (perfmon.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Resource Monitor (feature of perfmon.exe found in Windows Vista and higher)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Process Monitor (a Windows Sysinternals utility found here: <maml:navigationLink><maml:linkText>http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx</maml:linkText><maml:uri href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"/></maml:navigationLink>)</maml:para>
</maml:listItem>
</maml:list>
<maml:para/>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="$TemplateConfig/MonitoredProcessTypeId$.ProcessInstanceCountMonitor" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This monitor will generate an alert when the total number of a specific process is outside of a specified range.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>This monitor was configured through the process monitoring Management Pack (MP) Template. Please consult the author of this monitoring to ensure the proper action is taken for this alert. The causes and resolutions below are simple suggestions on where to start troubleshooting which may not be the right course of action intended by the author that wanted this process to be monitored</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>There could be various reasons the process(es) monitored could be exceeding the number of instances that are expected to run. First and foremost, please check with the author of this monitoring to ensure the intended troubleshooting and escalation procedures are followed.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Please consult the author of this monitoring. Some knowledge may have already been documented in the Company Knowledge of the Alert Properties tab</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>The following tools are useful for the troubleshooting of process:</maml:para>
<maml:list>
<maml:listItem>
<maml:para>Task Manager (taskmgr.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Performance Monitor (perfmon.exe found in Windows)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Resource Monitor (feature of perfmon.exe found in Windows Vista and higher)</maml:para>
</maml:listItem>
<maml:listItem>
<maml:para>Process Monitor (a Windows Sysinternals utility found here: <maml:navigationLink><maml:linkText>http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx</maml:linkText><maml:uri href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"/></maml:navigationLink>)</maml:para>
</maml:listItem>
</maml:list>
<maml:para/>
</maml:section>
</MamlContent>
</KnowledgeArticle>
</KnowledgeArticles>
</LanguagePack>
</LanguagePacks>
</Implementation>
</Template>