Objaśnienie agregacji i wyświetlania metryk usługi Azure Monitor

W tym artykule wyjaśniono agregację metryk w bazie danych szeregów czasowych usługi Azure Monitor, która wspiera metryki platformy Azure Monitor i metryki niestandardowe. Ten artykuł dotyczy również standardowych metryk usługi Application Szczegółowe informacje.

Jest to złożony temat i nie jest konieczne zrozumienie wszystkich informacji w tym artykule w celu efektywnego korzystania z metryk usługi Azure Monitor.

Omówienie i terminy

Po dodaniu metryki do wykresu eksplorator metryk automatycznie wybiera jego domyślną agregację. Wartość domyślna ma sens w podstawowych scenariuszach, ale możesz użyć różnych agregacji, aby uzyskać więcej szczegółowych informacji na temat metryki. Wyświetlanie różnych agregacji na wykresie wymaga zrozumienia sposobu obsługi ich przez eksploratora metryk.

Najpierw zdefiniujmy kilka terminów:

  • Wartość metryki — pojedyncza wartość miary zebrana dla określonego zasobu.
  • Baza danych szeregów czasowych — baza danych zoptymalizowana pod kątem magazynu i pobierania punktów danych zawierająca wartość i odpowiedni sygnatura czasowa.
  • Okres — ogólny okres czasu.
  • Przedział czasu — okres między gromadzeniem dwóch wartości metryki.
  • Zakres czasu — okres wyświetlany na wykresie. Typowa wartość domyślna to 24 godziny. Dostępne są tylko określone zakresy.
  • Stopień szczegółowości czasu lub ziarna czasu — okres używany do agregowania wartości w celu umożliwienia wyświetlania na wykresie. Dostępne są tylko określone zakresy. Bieżąca minimalna wartość to 1 minuta. Wartość stopnia szczegółowości czasu powinna być mniejsza niż wybrany zakres czasu, aby była przydatna. W przeciwnym razie tylko jedna wartość jest wyświetlana dla całego wykresu.
  • Typ agregacji — typ statystyki obliczony na podstawie wielu wartości metryk.
  • Agregacja — proces przyjmowania wielu wartości wejściowych, a następnie używania ich do tworzenia pojedynczej wartości wyjściowej za pośrednictwem reguł zdefiniowanych przez typ agregacji. Na przykład biorąc średnią z wielu wartości.

Podsumowanie procesu

Metryki to seria wartości przechowywanych przy użyciu sygnatury czasowej. Na platformie Azure większość metryk jest przechowywana w bazie danych szeregów czasowych metryk platformy Azure. Podczas wykreślenia wykresu wartości wybranych metryk są pobierane z bazy danych, a następnie agregowane oddzielnie na podstawie wybranego stopnia szczegółowości czasu (nazywanego również ziarnem czasu). Możesz wybrać rozmiar stopnia szczegółowości czasu przy użyciu selektora czasu eksploratora metryk. Jeśli nie wybierzesz jawnego wyboru, stopień szczegółowości czasu zostanie automatycznie wybrany na podstawie aktualnie wybranego zakresu czasu. Po wybraniu wartości metryk przechwytywanych w każdym interwale szczegółowości są agregowane i umieszczane na wykresie — jeden punkt danych na interwał.

Typy agregacji

W Eksploratorze metryk jest dostępnych pięć podstawowych typów agregacji. Eksplorator metryk ukrywa agregacje, które są nieistotne i nie może być używane dla danej metryki.

  • Sum — suma wszystkich wartości przechwyconych w interwale agregacji. Czasami nazywane agregacją Total (Łączna agregacja).
  • Count — liczba pomiarów przechwyconych w interwale agregacji. Funkcja Count nie uwzględnia wartości miary, tylko liczby rekordów.
  • Average — średnia wartości metryk przechwyconych w interwale agregacji. W przypadku większości metryk ta wartość to Suma/Liczba.
  • Min — najmniejsza wartość przechwycona w interwale agregacji.
  • Max — największa wartość przechwycona w interwale agregacji.

Załóżmy na przykład, że wykres przedstawia metrykę Łączna suma sieci dla maszyny wirtualnej przy użyciu agregacji SUM w ciągu ostatnich 24-godzinnego przedziału czasu. Zakres czasu i stopień szczegółowości można zmienić z prawej górnej części wykresu, jak pokazano na poniższym zrzucie ekranu.

Screenshot showing time range and time granularity picker

W przypadku stopnia szczegółowości czasu = 30 minut i zakresu czasu = 24 godziny:

  • Wykres jest rysowany z 48 punktów danych. To jest 24 godziny x 2 punkty danych na godzinę (60min/30min) zagregowane 1-minutowe punkty danych.
  • Wykres liniowy łączy 48 kropek w obszarze wykresu.
  • Każdy punkt danych reprezentuje sumę wszystkich bajtów sieci wychodzących wysyłanych w każdym z odpowiednich 30-minutowych okresów.

Screenshot showing data on a line graph set to 24-hour time range and 30-minute time granularity

Kliknij obrazy w tej sekcji, aby wyświetlić większe wersje.

Jeśli zmienisz stopień szczegółowości czasu na 15 minut, wykres zostanie narysowany z 96 zagregowanych punktów danych. Oznacza to, 60min/15min = 4 punkty danych na godzinę x 24 godziny.

Screenshot showing data on a line graph set to 24-hour time range and 15-minute time granularity

W przypadku stopnia szczegółowości czasu 5 minut uzyskasz 24 x (60/5) = 288 punktów.

Screenshot showing data on a line graph set to 24-hour time range and 5-minute time granularity

W przypadku stopnia szczegółowości czasu 1 minuty (najmniejszego możliwego na wykresie) uzyskasz 24 x 60/1 = 1440 punktów.

Screenshot showing data on a line graph set to 24-hour time range and 1-minute time granularity

Wykresy wyglądają inaczej dla tych sumacji, jak pokazano na poprzednich zrzutach ekranu. Zwróć uwagę, że ta maszyna wirtualna ma dużo danych wyjściowych w krótkim czasie względem pozostałej części przedziału czasu.

Stopień szczegółowości czasu umożliwia dostosowanie współczynnika "sygnał-szum" na wykresie. Wyższe agregacje usuwają szum i wygłaszają skoki. Zwróć uwagę na odmiany na dolnym wykresie 1-minutowym i o tym, jak wygładzą się podczas przechodzenia do wyższych wartości szczegółowości.

To zachowanie wygładzania jest ważne podczas wysyłania tych danych do innych systemów — na przykład alertów. Zwykle nie chcesz otrzymywać alertów przez bardzo krótkie skoki czasu procesora CPU w ciągu 90%. Jeśli jednak procesor pozostaje na poziomie 90% przez 5 minut, prawdopodobnie jest to ważne. Jeśli skonfigurujesz regułę alertu dla procesora CPU (lub dowolnej metryki), większe stopień szczegółowości czasu może zmniejszyć liczbę otrzymywanych fałszywych alertów.

Ważne jest ustalenie, co jest "normalne" dla obciążenia, aby wiedzieć, jaki przedział czasu jest najlepszy. Jest to jedna z zalet alertów dynamicznych, które nie zostały tutaj omówione w innym temacie.

Jak system zbiera metryki

Zbieranie danych zależy od metryki.

Częstotliwość zbierania miar

Istnieją dwa typy okresów kolekcji.

  • Regularne — metryka jest zbierana w spójnym przedziale czasu, który nie różni się.

  • Oparte na działaniach — metryka jest zbierana na podstawie tego, kiedy wystąpi transakcja określonego typu. Każda transakcja ma wpis metryki i sygnaturę czasową. Nie są one zbierane w regularnych odstępach czasu, więc w danym okresie istnieje różna liczba rekordów.

Poziom szczegółowości

Minimalny stopień szczegółowości czasu wynosi 1 minutę, ale podstawowy system może przechwytywać dane szybciej w zależności od metryki. Na przykład procent procesora CPU dla maszyny wirtualnej platformy Azure jest przechwytywany w przedziale czasu wynoszącym 15 sekund. Ponieważ błędy HTTP są śledzone jako transakcje, mogą łatwo przekroczyć więcej niż jedną minutę. Inne metryki, takie jak usługa SQL Storage, są przechwytywane w odstępach czasu co 20 minut. Ten wybór jest do pojedynczego dostawcy zasobów i typu. Większość stara się zapewnić najmniejszy możliwy interwał czasu.

Wymiary, dzielenie i filtrowanie

Metryki są przechwytywane dla każdego zasobu. Jednak poziom zbierania, przechowywania i tworzenia wykresów metryk może się różnić. Ten poziom jest reprezentowany przez dodatkowe metryki dostępne w wymiarach metryk. Każdy indywidualny dostawca zasobów definiuje, jak szczegółowe są zbierane dane. Usługa Azure Monitor definiuje tylko sposób prezentowania i przechowywania takich szczegółów.

Podczas tworzenia wykresu metryki w Eksploratorze metryk możesz "podzielić" wykres według wymiaru. Podzielenie wykresu oznacza, że analizujesz bazowe dane, aby uzyskać więcej szczegółów i zobaczyć, że dane są wykresowane lub filtrowane w Eksploratorze metryk.

Na przykład microsoft.ApiManagement/service ma wartość Location jako wymiar dla wielu metryk.

  • Pojemność jest jedną z takich metryk. Wymiar Lokalizacja oznacza, że podstawowy system przechowuje rekord metryki dla pojemności każdej lokalizacji, a nie tylko jeden dla zagregowanej kwoty. Następnie możesz pobrać lub podzielić te informacje na wykresie metryki.

  • Patrząc na ogólny czas trwania żądań bramy , istnieje 2 wymiary Lokalizacja i nazwa hosta, ponownie informując o lokalizacji czasu trwania i nazwy hosta, z której pochodzi.

  • Jedną z bardziej elastycznych metryk, Requests, ma 7 różnych wymiarów.

Zapoznaj się z artykułem obsługiwanym przez metryki usługi Azure Monitor, aby uzyskać szczegółowe informacje na temat każdej metryki i dostępnych wymiarów. Ponadto dokumentacja każdego dostawcy zasobów i typu mogą zawierać dodatkowe informacje o wymiarach i miarach.

Możesz użyć dzielenia i filtrowania razem, aby zagłębić się w problem. Poniżej znajduje się przykład grafiki przedstawiającej średni bajt zapisu dysku dla grupy maszyn wirtualnych w grupie zasobów. Mamy zestawienie wszystkich maszyn wirtualnych z tą metryką, ale możemy chcieć zapoznać się z tym, które są rzeczywiście odpowiedzialne za szczyty około 6:00. Czy są to same maszyny? Ile maszyn jest zaangażowanych?

Screenshot showing total Disk Write Bytes for all virtual machines in Contoso Hotels resource group

Kliknij obrazy w tej sekcji, aby wyświetlić większe wersje.

Po zastosowaniu podziału możemy zobaczyć bazowe dane, ale jest to trochę bałagan. Okazuje się, że na powyższym wykresie jest agregowanych 20 maszyn wirtualnych. W tym przypadku użyliśmy myszy, aby zatrzymać wskaźnik myszy na dużym szczycie o 6:00, który informuje nas, że CH-DCVM11 jest przyczyną. Ale trudno jest zobaczyć resztę danych skojarzonych z tą maszyną wirtualną z powodu innych maszyn wirtualnych zaśmiecających wykres.

Screenshot showing Disk Write Bytes for all virtual machines in Contoso Hotels resource group split by virtual machine name

Użycie filtrowania umożliwia oczyszczenie wykresu, aby zobaczyć, co naprawdę się dzieje. Możesz sprawdzić lub usunąć zaznaczenie maszyn wirtualnych, które chcesz zobaczyć. Zwróć uwagę na kropkowane wiersze. Te opisano w późniejszej sekcji.

Screenshot showing Disk Write Bytes for all virtual machines in Contoso Hotels resource group split and filtered by virtual machine name

Aby uzyskać więcej informacji na temat pokazywania podzielonych danych wymiarów na wykresie eksploratora metryk, zobacz Zaawansowane funkcje eksploratora metryk — filtry i dzielenie.

Wartości NULL i zero

Gdy system oczekuje danych metryk z zasobu, ale nie otrzyma go, rejestruje wartość NULL. Wartość NULL różni się od wartości zerowej, która staje się ważna podczas obliczania agregacji i tworzenia wykresów. Wartości NULL nie są liczone jako prawidłowe pomiary.

Listy NUL są wyświetlane inaczej na różnych wykresach. Wykresy punktowe pomijają wyświetlanie kropki na wykresie. Wykresy słupkowe pomijają wyświetlanie paska. Na wykresach liniowych wartość NULL może być wyświetlana jako linie kropkowane lub kreskowane, takie jak pokazane na zrzucie ekranu w poprzedniej sekcji. Podczas obliczania średnich, które obejmują NULLs, istnieje mniej punktów danych, z których należy wziąć średnią. Takie zachowanie może czasami spowodować nieoczekiwany spadek wartości na wykresie, choć zwykle jest mniejszy niż wtedy, gdy wartość została przekonwertowana na zero i użyta jako prawidłowy punkt danych.

Metryki niestandardowe zawsze używają list NUL, gdy żadne dane nie są odbierane. W przypadku metryk platformy każdy dostawca zasobów decyduje, czy używać zer, czy NULLs w oparciu o to, co ma największe znaczenie dla danej metryki.

Alerty usługi Azure Monitor używają wartości zapisywanych przez dostawcę zasobów w bazie danych metryk, dlatego ważne jest, aby wiedzieć, jak dostawca zasobów obsługuje listy NUL, wyświetlając najpierw dane.

Jak działa agregacja

Wykresy metryk w poprzednim systemie pokazują różne typy zagregowanych danych. System wstępnie agreguje dane, aby żądane wykresy mogły być wyświetlane szybciej bez konieczności wykonywania wielu powtórzeń obliczeń.

W tym przykładzie:

  • Zbieramy fikcyjną metrykę transakcyjną o nazwie Błędy HTTP
  • Serwer jest wymiarem metryki błędów HTTP.
  • Mamy 3 serwery — serwer A, B i C.

Aby uprościć wyjaśnienie, zaczniemy od typu agregacji SUM.

Agregacja od 1 minuty do 1 minuty

Pierwsze nieprzetworzone dane metryk są zbierane i przechowywane w bazie danych metryk usługi Azure Monitor. W takim przypadku każdy serwer ma rekordy transakcji przechowywane ze znacznikiem czasu, ponieważ serwer jest wymiarem. Biorąc pod uwagę, że najmniejszy okres czasu, który można wyświetlić jako klient, wynosi 1 minutę, te znaczniki czasu są najpierw agregowane w wartości metryki 1-minutowe dla każdego serwera. Proces agregacji serwera B jest pokazany na poniższej ilustracji. Serwery A i C są wykonywane w taki sam sposób i mają różne dane.

Screenshot showing sub minute transactional entries into 1-minute aggregations.

Wynikowe 1-minutowe zagregowane wartości są przechowywane jako nowe wpisy w bazie danych metryk, dzięki czemu można je zebrać na potrzeby późniejszych obliczeń.

Screenshot showing multiple 1-minute aggregated entries across dimension of server. Server A, B, and C shown individually

Agregacja wymiarów

Obliczenia 1-minutowe są następnie zwinięte według wymiaru i ponownie przechowywane jako poszczególne rekordy. W takim przypadku wszystkie dane ze wszystkich poszczególnych serwerów są agregowane do metryki interwału 1-minutowego i przechowywane w bazie danych metryk do użycia w późniejszych agregacjach.

Screenshot showing multiple 1-minute aggregated entries of Server A, B, and C aggregated into 1-minute All Servers entires

W celu zapewnienia przejrzystości poniższa tabela przedstawia metodę agregacji.

Period Serwer A Serwer B Serwer C Suma (A+B+C)
Minuta 1 1 1 1 3
Minuta 2 0 5 przypada na składniki z tytułu ubezpieczeń majątkowych i osobowych 1 6
Minuta 3 0 5 przypada na składniki z tytułu ubezpieczeń majątkowych i osobowych 1 6
Minuta 4 2 3 100 9
Minuta 5 1 0 3 100
Minuta 6 1 0 100 5
Minuta 7 1 2 4 7
Minuta 8 0 1 0 1
Minuta 9 1 1 4 6
Minuta 10 2 1 0 3

Pokazano tylko jeden wymiar powyżej, ale ten sam proces agregacji i magazynowania występuje dla wszystkich wymiarów obsługiwanych przez metrykę.

  • Zbierz wartości w 1-minutowym zagregowanym zestawie według tego wymiaru. Przechowuj te wartości.
  • Zwiń wymiar do zagregowanej sumy 1 minut. Przechowuj te wartości.

Przedstawimy kolejny wymiar błędów HTTP o nazwie NetworkAdapter. Załóżmy, że mieliśmy różną liczbę kart na serwer.

  • Serwer A ma 1 kartę
  • Serwer B ma 2 karty
  • Serwer C ma 3 karty

Zbieramy dane dla następujących transakcji oddzielnie. Będą one oznaczone następującymi znakami:

  • Czas
  • Wartość
  • Serwer, z których pochodzi transakcja
  • Karta, z którego pochodzi transakcja

Każdy z tych strumieni podrzędnych zostanie następnie zagregowany w 1-minutowych wartościach szeregów czasowych i przechowywanych w bazie danych metryk usługi Azure Monitor:

  • Serwer A, Adapter 1
  • Serwer B, adapter 1
  • Serwer B, Adapter 2
  • Serwer C, Adapter 1
  • Serwer C, Adapter 2
  • Serwer C, Adapter 3

Ponadto następujące zwinięte agregacje również będą przechowywane:

  • Serwer A, Adapter 1 (ponieważ nie ma nic do zwinięcia, będzie on przechowywany ponownie)
  • Serwer B, Adapter 1+2
  • Serwer C, Adapter 1+2+3
  • Wszystkie serwery, adaptery WSZYSTKIE

Pokazuje to, że metryki o dużej liczbie wymiarów mają większą liczbę agregacji. Nie ważne jest, aby znać wszystkie permutacje, po prostu zrozumieć rozumowanie. System chce mieć zarówno poszczególne dane, jak i zagregowane dane przechowywane na potrzeby szybkiego pobierania w celu uzyskania dostępu na dowolnym wykresie. System wybiera najbardziej odpowiednią agregację przechowywaną lub bazowe dane pierwotne w zależności od wybranej opcji wyświetlania.

Agregacja bez wymiarów

Ponieważ ta metryka ma wymiar Serwer, możesz uzyskać dostęp do danych bazowych dla serwera A, B i C powyżej poprzez dzielenie i filtrowanie, jak wyjaśniono wcześniej w tym artykule. Jeśli metryka nie ma serwera jako wymiaru, jako klient może uzyskać dostęp tylko do zagregowanych sum 1-minutowych wyświetlanych na czarnym diagramie. Oznacza to, że wartości 3, 6, 6, 9 itp. System nie wykonuje również podstawowej pracy w celu agregowania wartości podzielonych, nigdy nie będzie ich używać w Eksploratorze metryk ani wysyłać ich za pośrednictwem interfejsu API REST metryk.

Wyświetlanie stopnia szczegółowości czasu powyżej 1 minuty

Jeśli poprosisz o metryki z większym stopniem szczegółowości, system używa 1-minutowych sum zagregowanych do obliczania sum dla większych stopni szczegółowości czasu. Poniżej kropkowane wiersze pokazują metodę sumowania dla 2-minutowych i 5-minutowych szczegółowości czasu. Ponownie pokazujemy tylko typ agregacji SUM dla uproszczenia.

Screenshot showing multiple 1-minute aggregated entries across dimension of server aggregated into 2-min and 5-min time periods.

Dla 2-minutowego stopnia szczegółowości czasu.

Period Sumy
Minuta 1 i 2 (3 + 6) = 9
Minuta 3 i 4 (6 + 9) = 15
Minuta 4 i 5 (4 + 5) = 9
Minuta 6 i 7 (7 + 1) = 8
Minuta 8 i 9 (6 + 3) = 9

Przez 5-minutowy stopień szczegółowości czasu.

Period Sumy
Minuta od 1 do 5 3 + 6 + 6 + 9 + 4 = 28
Minuta od 6 do 10 5 + 7 + 1 + 6 + 3 = 22

System używa przechowywanych zagregowanych danych, które zapewniają najlepszą wydajność.

Poniżej znajduje się większy diagram dla powyżej 1-minutowego procesu agregacji, a niektóre strzałki pozostawione w celu zwiększenia czytelności.

Screenshot showing consolidation of previous 3 screenshots. Multiple 1-minute aggregated entries across dimension of server aggregated in 1-minute, 2-minute, and 5-minute intervals. Server A, B, and C shown individually

Bardziej złożony przykład

Poniżej przedstawiono większy przykład użycia wartości fikcyjnej metryki o nazwie Czas odpowiedzi HTTP w milisekundach. W tym miejscu wprowadzamy dodatkowe poziomy złożoności.

  1. Pokażemy agregację dla wartości Sum, Count, Min i Max oraz obliczenia dla wartości Average.
  2. Pokazujemy wartości NULL i ich wpływ na obliczenia.

Rozważmy następujący przykład. Pola i strzałki pokazują przykłady sposobu agregowania i obliczania wartości.

Ten sam 1-minutowy proces wstępnego agregacji, jak opisano w poprzedniej sekcji, występuje w przypadku sum, liczby, minimum i maksimum. Jednak średnia nie jest wstępnie zagregowana. Jest on ponownie obliczany przy użyciu zagregowanych danych, aby uniknąć błędów obliczeń.

Screenshot showing complex example of aggregation and calculation of sum, count, min, max and average from 1 minute to 10 minutes.

Rozważmy minutę 6 dla agregacji 1-minutowej, jak wyróżniono powyżej. Ta minuta to punkt, w którym serwer B poszedł w tryb offline i zatrzymał dane raportowania, być może z powodu ponownego uruchomienia.

Od minuty 6 powyżej obliczane typy agregacji 1-minutowe to:

Typ agregacji Wartość Uwagi
Sum 53+20=73
Count 2 Pokazuje efekt NULLs. Wartość byłaby 3, gdyby serwer był w trybie online.
Minimum 20
Maksymalnie 53
Średnia 73 / 2 Zawsze suma podzielona przez liczbę. Nigdy nie jest przechowywany i zawsze ponownie obliczany dla każdego stopnia szczegółowości przy użyciu zagregowanych liczb dla tego stopnia szczegółowości. Zwróć uwagę na ponowne obliczenie 5-minutowych i 10-minutowych szczegółowości czasu, jak wyróżniono powyżej.

Kolor czerwonego tekstu wskazuje wartości, które mogą być brane pod uwagę poza normalnym zakresem i pokazują, jak propagują (lub nie), gdy stopień szczegółowości czasu wzrasta. Zwróć uwagę, że wartości Min i Max wskazują, że występują anomalie bazowe, podczas gdy wartości Średnia i Suma tracą te informacje w miarę upływu stopnia szczegółowości czasu.

Można również zobaczyć, że listy NUL zapewniają lepsze obliczenie średniej niż jeśli zamiast tego użyto zer.

Uwaga

Chociaż w tym przykładzie nie jest tak, liczba jest równa Sumuj w przypadkach, gdy metryka jest zawsze przechwytywana z wartością 1. Jest to typowe, gdy metryka śledzi wystąpienie zdarzenia transakcyjnego — na przykład liczbę błędów HTTP wymienionych w poprzednim przykładzie w tym artykule.

Następne kroki