Metryki usługi Azure Resource Manager w usłudze Azure Monitor

Podczas tworzenia zasobów i zarządzania nimi na platformie Azure żądania są orkiestrowane za pośrednictwem płaszczyzny sterowania platformy Azure, azure Resource Manager. W tym artykule opisano sposób monitorowania woluminu i opóźnienia żądań płaszczyzny sterowania wysyłanych na platformę Azure.

Te metryki umożliwiają obserwowanie ruchu i opóźnienia żądań płaszczyzny sterowania w ramach subskrypcji. Na przykład możesz ustalić, kiedy żądania zostały ograniczone lub zakończone niepowodzeniem, filtrując określone kody stanu, sprawdzając żądania ograniczone i sprawdzając błędy serwera.

Metryki są dostępne przez maksymalnie trzy miesiące (93 dni) i śledzą tylko żądania synchroniczne. W przypadku scenariusza takiego jak tworzenie maszyny wirtualnej metryki nie reprezentują wydajności ani niezawodności długotrwałej operacji asynchronicznej.

Uzyskiwanie dostępu do metryk usługi Azure Resource Manager

Metryki płaszczyzny kontroli można uzyskać za pośrednictwem interfejsów API REST usługi Azure Monitor, zestawów SDK i Azure Portal (wybierając metrykę "Azure Resource Manager"). Aby zapoznać się z omówieniem usługi Azure Monitor, zobacz Metryki usługi Azure Monitor.

Nie ma zgody ani procesu rejestracji w celu uzyskania dostępu do metryk płaszczyzny kontroli.

Aby uzyskać wskazówki dotyczące pobierania tokenu elementu nośnego i przesyłania żądań do platformy Azure, zobacz Dokumentacja interfejsu API REST platformy Azure.

Definicja metryki

Definicja metryk usługi Azure Resource Manager w usłudze Azure Monitor jest dostępna tylko za pośrednictwem interfejsu API 2017-12-01-preview. Aby pobrać definicję, możesz uruchomić następujący fragment kodu z identyfikatorem subskrypcji zastępującym ciąg "00000000-0000-0000-0000-0000000000000":

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metricDefinitions?api-version=2017-12-01-preview&metricnamespace=microsoft.resources/subscriptions' \
--header 'Authorization: bearer {{bearerToken}}'

Ten fragment kodu zwraca definicję schematu metryk. W szczególności ten schemat zawiera wymiary, które można filtrować za pomocą interfejsu API monitorowania:

Nazwa wymiaru Opis
Identyfikator ResourceUri Pełny identyfikator zasobu dla określonego zasobu.
RequestRegion Region usługi Azure Resource Manager, w którym płaszczyzna sterowania żąda lądowania, na przykład "EastUS2". Ten region nie jest lokalizacją zasobu.
Statuscode Typ odpowiedzi z usługi Azure Resource Manager dla żądania płaszczyzny sterowania. Możliwe wartości to (ale nie tylko):
- 0
- 200
- 201
- 400
- 404
- 429
- 500
- 502
StatusCodeClass Klasa kodu stanu zwróconego z usługi Azure Resource Manager. Możliwe wartości:
- 2xx
- 4xx
- 5xx
Obszaru nazw Przestrzeń nazw dostawcy zasobów we wszystkich limitach, takich jak "MICROSOFT". COMPUTE"
Resourcetype Dowolny typ zasobu na platformie Azure, do którego utworzono lub wysłano żądanie we wszystkich limitach, takich jak "VIRTUALMACHINES"
Metoda Metoda HTTP używana w żądaniu do usługi Azure Resource Manager. Możliwe wartości:
- GET
-GŁOWY
- PUT
- POST
-PATCH
-USUNĄĆ

Przykłady

Teraz przyjrzyjmy się niektórym scenariuszom, które mogą pomóc w eksplorowaniu metryk usługi Azure Resource Manager.

Wykonywanie zapytań dotyczących metryk płaszczyzny sterowania ruchem i opóźnieniami za pośrednictwem Azure Portal

Najpierw przejdź do bloku Usługi Azure Monitor w portalu:

Zrzut ekranu przedstawiający przejście do strony Monitor Azure Portal z wyróżnioną pozycją Eksploruj metryki.

Po wybraniu pozycji Eksploruj metryki wybierz pojedynczą subskrypcję, a następnie wybierz metrykę Azure Resource Manager:

Zrzut ekranu przedstawiający wybieranie pojedynczej subskrypcji i metryki usługi Azure Resource Manager w Azure Portal.

Następnie po wybraniu pozycji Zastosuj możesz wizualizować metryki płaszczyzny sterowania ruchu lub opóźnienia przy użyciu niestandardowego filtrowania i dzielenia:

Zrzut ekranu przedstawiający wizualizację metryk w Azure Portal z opcjami filtrowania i dzielenia według wymiarów.

Wykonywanie zapytań dotyczących metryk płaszczyzny sterowania ruchem i opóźnieniami za pośrednictwem interfejsu API REST

Po uwierzytelnieniu na platformie Azure możesz wysłać żądanie pobrania metryk płaszczyzny sterowania dla subskrypcji. W skrypcie zastąp ciąg "0000000-0000-0000-0000-0000000000" identyfikatorem subskrypcji. Skrypt pobierze średnie opóźnienie żądania (w sekundach) i łączną liczbę żądań dla przedziału czasu dwóch dni z podziałem na jeden interwał dnia:

curl --location --request GET "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=average,count&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z" \
--header "Authorization: bearer {{bearerToken}}"

W przypadku metryk usługi Azure Resource Manager można pobrać liczbę ruchu przy użyciu metryki Opóźnienie i w tym agregacji "count". Zostanie wyświetlona odpowiedź JSON dla żądania:

{
    "cost": 5758,
    "timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
    "interval": "P1D",
    "value": [
        {
            "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Insights/metrics/Latency",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Latency",
                "localizedValue": "Latency"
            },
            "displayDescription": "Latency data for all requests to Azure Resource Manager",
            "unit": "Seconds",
            "timeseries": [
                {
                    "metadatavalues": [],
                    "data": [
                        {
                            "timeStamp": "2021-11-01T00:00:00Z",
                            "count": 1406.0,
                            "average": 0.19345163584637273
                        },
                        {
                            "timeStamp": "2021-11-02T00:00:00Z",
                            "count": 1517.0,
                            "average": 0.28294792353328935
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.resources/subscriptions",
    "resourceregion": "global"
}

Jeśli chcesz pobrać tylko liczbę ruchu, możesz użyć metryki Ruch z agregacją "count":

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Traffic&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z' \
--header 'Authorization: bearer {{bearerToken}}'

Odpowiedź na żądanie to:

{
    "cost": 2879,
    "timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
    "interval": "P1D",
    "value": [
        {
            "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Insights/metrics/Traffic",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Traffic",
                "localizedValue": "Traffic"
            },
            "displayDescription": "Traffic data for all requests to Azure Resource Manager",
            "unit": "Count",
            "timeseries": [
                {
                    "metadatavalues": [],
                    "data": [
                        {
                            "timeStamp": "2021-11-01T00:00:00Z",
                            "count": 1406.0
                        },
                        {
                            "timeStamp": "2021-11-02T00:00:00Z",
                            "count": 1517.0
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.resources/subscriptions",
    "resourceregion": "global"
}

W przypadku wymiarów pomocniczych metryk należy określić wartość wymiaru, aby wyświetlić odpowiednie wartości metryk. Jeśli na przykład chcesz skupić się na opóźnieniu żądań zakończonych powodzeniem w usłudze ARM, należy przefiltrować wymiar StatusCodeClass z wartością 2XX.

Jeśli chcesz przyjrzeć się liczbie żądań wysyłanych w subskrypcji dla zasobów sieciowych, takich jak sieci wirtualne i moduły równoważenia obciążenia, należy filtrować wymiar przestrzeni nazw dla firmy MICROSOFT. SIEĆ.

Badanie żądań ograniczonych

Aby wyświetlić tylko żądania ograniczone, należy filtrować tylko 429 odpowiedzi kodu stanu. W przypadku wywołań interfejsu API REST filtrowanie odbywa się za pośrednictwem właściwości $filter i wymiaru StatusCode, dołączając: $filter=StatusCode eq "429", jak pokazano na końcu żądania w następującym fragmencie kodu:

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count,average&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z&$filter=StatusCode%20eq%20%27429%27' \
--header 'Authorization: bearer {{bearerToken}}'

Możesz również filtrować bezpośrednio w portalu: Zrzut ekranu przedstawiający filtrowanie kodu stanu HTTP na 429 odpowiedzi tylko w Azure Portal.

Badanie błędów serwera

Podobnie jak w przypadku żądań ograniczonych, można wyświetlić wszystkie żądania, które zwróciły kod odpowiedzi serwera o błędzie, filtrując tylko odpowiedzi 5xx. W przypadku wywołań interfejsu API REST filtrowanie odbywa się za pośrednictwem właściwości $filter i wymiaru StatusCodeClass przez dołączenie: $filter=StatusCodeClass eq "5xx", jak pokazano na końcu żądania w następującym fragmencie kodu:

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count,average&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z&$filter=StatusCodeClass%20eq%20%275xx%27' \
--header 'Authorization: bearer {{bearerToken}}'

Można również osiągnąć ogólne błędy serwera filtrowania w portalu, ustawiając właściwość filter na "StatusCodeClass" i wartość na "5xx", podobnie jak w przykładzie ograniczania przepustowości.

Następne kroki