Collect .NET Apps/\% Performance Events/sec

Microsoft.SystemCenter.Apm.ApplicationInstance.CollectPerformanceEventsRate (Rule)

The .NET Apps/\% Performance Events/sec provides the percentage of performance events raised per second. This number can be higher than 100\% when there are a large number of long running requests that cross the event polling window

Knowledge Base article:

Summary

This rule collects .NET Apps Performance events performance counter for applications.

This counter records the number of performance events per second generated by an application. The number of events recorded by this counter is based on information, such as the agent configuration, threshold levels, and enabled namespaces. This counter may be larger than the number of performance events reported to Application Diagnostic console, because it also includes events that are suppressed by Event Throttling.

This counter is only available when application performance monitoring is enabled.

Excessively long database calls might be due to either a problem with the server or with the structure and complexity of the query. Long file I/O times may be due to problems with the file server. Web Services performance issues might occur because the Web Service or the server it resides on is down or there is a problem in the Web Service code. Long internal execution times for applications might result from complex or inefficient code.

Element properties:

TargetMicrosoft.SystemCenter.Apm.ApplicationInstance
CategoryPerformanceCollection
EnabledTrue
Instance Name.NET Apps
Counter Name\% Performance Events/sec
Frequency300
Alert GenerateFalse
RemotableFalse

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource System.Performance.DataProvider Default
WriteToDB WriteAction Microsoft.SystemCenter.CollectPerformanceData Default
WriteToDW WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Default

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.ApplicationInstance.CollectPerformanceEventsRate" Enabled="true" Target="Microsoft.SystemCenter.Apm.ApplicationInstance" ConfirmDelivery="false" Remotable="false" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Performance!System.Performance.DataProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Performance Events/sec</CounterName>
<ObjectName>.NET Apps</ObjectName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstance"]/CounterInstance$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>300</Frequency>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>