Zbieranie wartości licznika Aplikacje .NET/średni czas żądania (s)

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

Licznik Aplikacje .NET Apps/średni czas żądania (s) podaje średni czas, jaki zajmuje aplikacji odpowiedź na żądanie

Knowledge Base article:

Podsumowanie

Ta zasada służy do zbierania danych z licznika wydajności Aplikacje .NET/średni czas żądania dla aplikacji.

Ten licznik rejestruje średni czas (w sekundach) przetwarzania żądania przez aplikację. Pomiar czasu przetwarzania każdego żądania jest rozpoczynany, gdy dotrze ono do aplikacji, a zatrzymywany, gdy żądanie zostanie pomyślnie wykonane lub wykonywanie kodu zostanie przerwane z powodu błędu. Na podstawie sumy czasów wszystkich monitorowanych żądań jest obliczany średni czas żądania. Jeśli systematycznie przekracza on 10000 ms, oznacza to istnienie wąskiego gardła, które należy zbadać.

Ten licznik jest dostępny tylko jeśli włączone jest monitorowanie wydajności aplikacji.

Zbyt długie wywołania bazy danych mogą być spowodowane problemami z serwerem lub strukturą i złożonością kwerendy. Długie czasy trwania operacji we/wy mogą wynikać z problemów z serwerem plików. Problemy z wydajnością usług sieci Web mogą wynikać z niedziałania usługi bądź serwera, na którym jest uruchamiana, lub problemów z kodem usługi. Zbyt długie czasy wykonania aplikacji mogą być wynikiem złożonego lub mało wydajnego kodu.

Element properties:

TargetMicrosoft.SystemCenter.Apm.ApplicationInstance
CategoryPerformanceCollection
EnabledTrue
Instance Name.NET Apps
Counter NameAvg. Request Time
Frequency300
Alert GenerateFalse
RemotableFalse

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.ApplicationInstance.CollectAvgDurationTimeSeconds" 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>Avg. Request Time</CounterName>
<ObjectName>.NET Apps</ObjectName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstance"]/CounterInstance$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>300</Frequency>
<ScaleBy>1000</ScaleBy>
</DataSource>
</DataSources>
<ConditionDetection TypeID="Performance!System.Performance.DataGenericMapper" ID="Mapper">
<ObjectName>.NET Apps</ObjectName>
<CounterName>Avg. Request Time (seconds)</CounterName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstance"]/CounterInstance$</InstanceName>
<Value>$Data/Value$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>