Metryki oparte na dziennikach Szczegółowe informacje aplikacji

Metryki oparte na dziennikach Szczegółowe informacje aplikacji umożliwiają analizowanie kondycji monitorowanych aplikacji, tworzenie zaawansowanych pulpitów nawigacyjnych i konfigurowanie alertów. Istnieją dwa rodzaje metryk:

Ponieważ metryki standardowe są wstępnie agregowane podczas zbierania, mają lepszą wydajność w czasie wykonywania zapytań. Dzięki temu są one lepszym wyborem w przypadku pulpitów nawigacyjnych i alertów w czasie rzeczywistym. Metryki oparte na dzienniku mają więcej wymiarów, co czyni je lepszą opcją analizy danych i diagnostyki ad hoc. Użyj selektora przestrzeni nazw , aby przełączać się między metrykami opartymi na dzienniku i standardowymi w Eksploratorze metryk.

Interpretowanie i używanie zapytań z tego artykułu

W tym artykule wymieniono metryki z obsługiwanymi agregacjami i wymiarami. Szczegółowe informacje o metrykach opartych na dzienniku obejmują podstawowe instrukcje zapytań Kusto. Dla wygody każde zapytanie używa wartości domyślnych dla stopnia szczegółowości czasu, typu wykresu, a czasami podziału wymiaru, co upraszcza korzystanie z zapytania w usłudze Log Analytics bez konieczności modyfikacji.

Gdy wykreślisz tę samą metrykę w Eksploratorze metryk, nie ma wartości domyślnych — zapytanie jest dynamicznie dostosowywane na podstawie ustawień wykresu:

  • Wybrany zakres czasu jest tłumaczony na dodatkową klauzulę , w której znacznik czasu... umożliwia wybranie tylko zdarzeń z wybranego zakresu czasu. Na przykład wykres przedstawiający dane z ostatnich 24 godzin zapytanie zawiera | gdzie znacznik > czasu temu (24 h).

  • Wybrany stopień szczegółowości czasu jest umieszczany w końcowej podsumowaniu ... by bin(timestamp, [time grain]) klauzula .

  • Wszystkie wybrane wymiary filtru są tłumaczone na dodatkowe klauzule where .

  • Wybrany wymiar podzielonego wykresu jest tłumaczony na dodatkową właściwość podsumowania. Jeśli na przykład podzielisz wykres według lokalizacji i wykreślisz wykres przy użyciu 5-minutowego stopnia szczegółowości czasu, klauzula podsumowania zostanie podsumowana ... by bin(sygnatura czasowa, 5 m), lokalizacja.

Uwaga

Jeśli dopiero zaczynasz pracę z językiem zapytań Kusto, zacznij od skopiowania i wklejenia instrukcji Kusto do okienka zapytań usługi Log Analytics bez wprowadzania żadnych modyfikacji. Kliknij pozycję Uruchom , aby wyświetlić podstawowy wykres. Gdy zaczniesz rozumieć składnię języka zapytań, możesz zacząć wprowadzać małe modyfikacje i zobaczyć wpływ zmiany. Eksplorowanie własnych danych to doskonały sposób na rozpoczęcie realizacji pełnych możliwości usługi Log Analytics i usługi Azure Monitor.

Metryki dostępności

Metryki w kategorii Dostępność umożliwiają wyświetlanie kondycji aplikacji internetowej obserwowanej z punktów na całym świecie. Skonfiguruj testy dostępności , aby rozpocząć korzystanie z dowolnych metryk z tej kategorii.

Dostępność (availabilityResults/availabilityPercentage)

Metryka Dostępność pokazuje procent przebiegów testu internetowego, które nie wykryły żadnych problemów. Najniższa możliwa wartość to 0, co oznacza, że wszystkie przebiegi testu internetowego zakończyły się niepowodzeniem. Wartość 100 oznacza, że wszystkie przebiegi testu internetowego przeszły kryteria weryfikacji.

Jednostka miary Obsługiwane agregacje Obsługiwane wymiary
Procent Średnia Lokalizacja przebiegu, nazwa testu
availabilityResults 
| summarize sum(todouble(success == 1) * 100) / count() by bin(timestamp, 5m), location
| render timechart

Czas trwania testu dostępności (availabilityResults/duration)

Metryka Czas trwania testu dostępności pokazuje, ile czasu zajęło uruchomienie testu internetowego. W przypadku wieloetapowych testów internetowych metryka odzwierciedla całkowity czas wykonywania wszystkich kroków.

Jednostka miary Obsługiwane agregacje Obsługiwane wymiary
Milisekund Średnia, Minimalna, Maksymalna Lokalizacja przebiegu, Nazwa testu, Wynik testu
availabilityResults
| where notempty(duration)
| extend availabilityResult_duration = iif(itemType == 'availabilityResult', duration, todouble(''))
| summarize sum(availabilityResult_duration)/sum(itemCount) by bin(timestamp, 5m), location
| render timechart

Testy dostępności (availabilityResults/count)

Metryka Testy dostępności odzwierciedla liczbę testów internetowych uruchamianych przez usługę Azure Monitor.

Jednostka miary Obsługiwane agregacje Obsługiwane wymiary
Liczba Liczba Lokalizacja przebiegu, Nazwa testu, Wynik testu
availabilityResults
| summarize sum(itemCount) by bin(timestamp, 5m)
| render timechart

Metryki przeglądarki

Metryki przeglądarki są zbierane przez zestaw SDK usługi Application Szczegółowe informacje JavaScript z rzeczywistych przeglądarek użytkownika końcowego. Zapewniają one doskonały wgląd w środowisko użytkowników w aplikacji internetowej. Metryki przeglądarki zwykle nie są próbkowane, co oznacza, że zapewniają większą dokładność liczb użycia w porównaniu z metrykami po stronie serwera, które mogą być niesymetryczne przez próbkowanie.

Uwaga

Aby zbierać metryki przeglądarki, aplikacja musi być instrumentowana przy użyciu zestawu SDK javaScript usługi Application Szczegółowe informacje.

Czas ładowania strony przeglądarki (browserTimings/totalDuration)

Czas od żądania użytkownika do momentu załadowania modelu DOM, arkuszy stylów, skryptów i obrazów.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary
Milisekund Średnia, Minimalna, Maksymalna Brak
browserTimings
| where notempty(totalDuration)
| extend _sum = totalDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

Czas przetwarzania klienta (browserTiming/processingDuration)

Czas między odebraniem ostatniego bajtu dokumentu do momentu załadowania modelu DOM. Żądania asynchroniczne mogą nadal być przetwarzane.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary
Milisekund Średnia, Minimalna, Maksymalna Brak
browserTimings
| where notempty(processingDuration)
| extend _sum = processingDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum)/sum(_count) by bin(timestamp, 5m)
| render timechart

Czas połączenia sieciowego ładowania strony (browserTimings/networkDuration)

Czas między żądaniem użytkownika a połączeniem sieci. Obejmuje wyszukiwanie DNS i połączenie transportu.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary
Milisekund Średnia, Minimalna, Maksymalna Brak
browserTimings
| where notempty(networkDuration)
| extend _sum = networkDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

Odbieranie czasu odpowiedzi (browserTimings/receiveDuration)

Czas między pierwszym i ostatnimi bajtami lub do momentu rozłączenia.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary
Milisekund Średnia, Minimalna, Maksymalna Brak
browserTimings
| where notempty(receiveDuration)
| extend _sum = receiveDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

Czas wysyłania żądania (browserTimings/sendDuration)

Czas między połączeniem sieciowym a odebraniem pierwszego bajtu.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary
Milisekund Średnia, Minimalna, Maksymalna Brak
browserTimings
| where notempty(sendDuration)
| extend _sum = sendDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

Metryki błędów

Metryki w obszarze Błędy pokazują problemy z przetwarzaniem żądań, wywołań zależności i zgłaszanymi wyjątkami.

Wyjątki przeglądarki (wyjątki/przeglądarka)

Ta metryka odzwierciedla liczbę zgłoszonych wyjątków od kodu aplikacji uruchomionego w przeglądarce. W metryce są uwzględniane tylko wyjątki śledzone za pomocą trackException() wywołania interfejsu API Szczegółowe informacje aplikacji.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary Uwagi
Liczba Liczba Brak Wersja oparta na dzienniku używa agregacji Sum
exceptions
| where notempty(client_Browser)
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Błędy wywołań zależności (zależności/niepowodzenie)

Liczba wywołań zależności zakończonych niepowodzeniem.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary Uwagi
Liczba Liczba Brak Wersja oparta na dzienniku używa agregacji Sum
dependencies
| where success == 'False'
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Wyjątki (wyjątki/liczba)

Za każdym razem, gdy rejestrujesz wyjątek w aplikacji Szczegółowe informacje, istnieje wywołanie metody trackException() zestawu SDK. Metryka Wyjątki pokazuje liczbę zarejestrowanych wyjątków.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary Uwagi
Liczba Liczba Nazwa roli chmury, Wystąpienie roli chmury, Typ urządzenia Wersja oparta na dzienniku używa agregacji Sum
exceptions
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Żądania, które zakończyły się niepowodzeniem (żądania/niepowodzenie)

Liczba śledzonych żądań serwera, które zostały oznaczone jako nieudane. Domyślnie zestaw SDK usługi Application Szczegółowe informacje automatycznie oznacza każde żądanie serwera, które zwróciło kod odpowiedzi HTTP 5xx lub 4xx jako żądanie, które zakończyło się niepowodzeniem. Tę logikę można dostosować, modyfikując właściwość powodzenia elementu telemetrii żądania w inicjatorze niestandardowej telemetrii.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary Uwagi
Liczba Liczba Wystąpienie roli w chmurze, nazwa roli chmury, ruch rzeczywisty lub syntetyczny, wydajność żądania, kod odpowiedzi Wersja oparta na dzienniku używa agregacji Sum
requests
| where success == 'False'
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Wyjątki serwera (wyjątki/serwer)

Ta metryka pokazuje liczbę wyjątków serwera.

Jednostka miary Obsługiwane agregacje Wstępnie zagregowane wymiary Uwagi
Liczba Liczba Nazwa roli chmury, Wystąpienie roli chmury Wersja oparta na dzienniku używa agregacji Sum
exceptions
| where isempty(client_Browser)
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Liczniki wydajności

Użyj metryk w kategorii Liczniki wydajności, aby uzyskać dostęp do liczników wydajności systemu zebranych przez usługę Application Szczegółowe informacje.

Dostępna pamięć (performanceCounters/availableMemory)

performanceCounters
| where ((category == "Memory" and counter == "Available Bytes") or name == "availableMemory")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Współczynnik wyjątków (performanceCounters/exceptionRate)

performanceCounters
| where ((category == ".NET CLR Exceptions" and counter == "# of Exceps Thrown / sec") or name == "exceptionRate")
| extend performanceCounter_value = iif(itemType == 'performanceCounter',value,todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Czas wykonywania żądania HTTP (performanceCounters/requestExecutionTime)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Request Execution Time") or name == "requestExecutionTime")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Szybkość żądań HTTP (performanceCounters/requestsPerSecond)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests/Sec") or name == "requestsPerSecond")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Żądania HTTP w kolejce aplikacji (performanceCounters/requestsInQueue)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests In Application Queue") or name == "requestsInQueue")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Przetwarzanie procesora CPU (performanceCounters/processCpuPercentage)

Metryka pokazuje, ile całkowitej pojemności procesora jest zużywana przez proces hostujący monitorowaną aplikację.

Jednostka miary Obsługiwane agregacje Obsługiwane wymiary
Procent Średnia, Minimalna, Maksymalna Wystąpienie roli chmury
performanceCounters
| where ((category == "Process" and counter == "% Processor Time Normalized") or name == "processCpuPercentage")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Uwaga

Zakres metryki wynosi od 0 do 100 * n, gdzie n jest liczbą dostępnych rdzeni procesora CPU. Na przykład wartość metryki 200% może reprezentować pełne wykorzystanie dwóch rdzeni procesora CPU lub połowy wykorzystania 4 rdzeni procesora CPU itd. Znormalizowane użycie procesora CPU procesu to alternatywna metryka zbierana przez wiele zestawów SDK, która reprezentuje tę samą wartość, ale dzieli ją przez liczbę dostępnych rdzeni procesora CPU. W związku z tym zakres metryki Znormalizowane użycie procesora CPU procesów wynosi od 0 do 100.

Współczynnik operacji we/wy przetwarzania (performanceCounters/processIOBytesPerSecond)

Jednostka miary Obsługiwane agregacje Obsługiwane wymiary
Bajty na sekundę Średnia, Minimalna, Maksymalna Wystąpienie roli chmury
performanceCounters
| where ((category == "Process" and counter == "IO Data Bytes/sec") or name == "processIOBytesPerSecond")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Przetwarzanie bajtów prywatnych (performanceCounters/processPrivateBytes)

Ilość nieudzielonej pamięci przydzielonej do danych przez monitorowany proces.

Jednostka miary Obsługiwane agregacje Obsługiwane wymiary
Bajty Średnia, Minimalna, Maksymalna Wystąpienie roli chmury
performanceCounters
| where ((category == "Process" and counter == "Private Bytes") or name == "processPrivateBytes")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Czas procesora (performanceCounters/processorCpuPercentage)

Użycie procesora PRZEZ wszystkie procesy uruchomione w monitorowanym wystąpieniu serwera.

Jednostka miary Obsługiwane agregacje Obsługiwane wymiary
Procent Średnia, Minimalna, Maksymalna Wystąpienie roli chmury

Uwaga

Metryka czasu procesora nie jest dostępna dla aplikacji hostowanych w usługach aplikacja systemu Azure. Użyj metryki Procesora CPU procesu , aby śledzić wykorzystanie procesora CPU aplikacji internetowych hostowanych w usłudze App Services.

performanceCounters
| where ((category == "Processor" and counter == "% Processor Time") or name == "processorCpuPercentage")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Metryki serwera

Wywołania zależności (zależności/liczba)

Ta metryka jest w odniesieniu do liczby wywołań zależności.

dependencies
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Czas trwania zależności (zależności/czas trwania)

Ta metryka odnosi się do czasu trwania wywołań zależności.

dependencies
| where notempty(duration)
| extend dependency_duration = iif(itemType == 'dependency',duration,todouble(''))
| extend _sum = dependency_duration
| extend _count = itemCount
| extend _sum = _sum*_count
| summarize sum(_sum)/sum(_count) by bin(timestamp, 1m)
| render timechart

Żądania serwera (żądania/liczba)

Ta metryka odzwierciedla liczbę przychodzących żądań serwera, które zostały odebrane przez aplikację internetową.

requests
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Czas odpowiedzi serwera (żądania/czas trwania)

Ta metryka odzwierciedla czas przetwarzania żądań przychodzących przez serwery.

requests
| where notempty(duration)
| extend request_duration = iif(itemType == 'request', duration, todouble(''))
| extend _sum = request_duration
| extend _count = itemCount
| extend _sum = _sum*_count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 1m)
| render timechart

Metryki użycia

Czas ładowania widoku strony (pageViews/duration)

Ta metryka odnosi się do czasu, jaki zajęło załadowanie zdarzeń PageView.

pageViews
| where notempty(duration)
| extend pageView_duration = iif(itemType == 'pageView', duration, todouble(''))
| extend _sum = pageView_duration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render barchart

Widoki strony (pageViews/count)

Liczba zdarzeń PageView zarejestrowanych przy użyciu interfejsu API Szczegółowe informacje aplikacji TrackPageView().

pageViews
| summarize sum(itemCount) by bin(timestamp, 1h)
| render barchart

Sesje (sesje/liczba)

Ta metryka odwołuje się do liczby unikatowych identyfikatorów sesji.

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(session_Id)
| summarize dcount(session_Id) by bin(timestamp, 1h)
| render barchart

Ślady (ślady/liczba)

Liczba instrukcji śledzenia zarejestrowanych za pomocą wywołania interfejsu API Szczegółowe informacje aplikacji TrackTrace().

traces
| summarize sum(itemCount) by bin(timestamp, 1h)
| render barchart

Użytkownicy (użytkownicy/liczba)

Liczba unikatowych użytkowników, którzy uzyskiwali dostęp do aplikacji. Na dokładność tej metryki może mieć znaczący wpływ użycie próbkowania i filtrowania telemetrii.

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_Id)
| summarize dcount(user_Id) by bin(timestamp, 1h)
| render barchart

Użytkownicy, uwierzytelnieni (użytkownicy/uwierzytelnieni)

Liczba unikatowych użytkowników, którzy uwierzytelnili się w aplikacji.

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_AuthenticatedId)
| summarize dcount(user_AuthenticatedId) by bin(timestamp, 1h)
| render barchart