Mata in anpassade mått för en Azure-resurs med hjälp av REST-API:et

Den här artikeln visar hur du skickar anpassade mått för Azure-resurser till Azure Monitor-måttarkivet via REST-API:et. När måtten finns i Azure Monitor kan du göra allt med dem som du gör med standardmått. Du kan till exempel generera diagram och aviseringar och dirigera måtten till andra externa verktyg.

Kommentar

REST-API:et tillåter endast att anpassade mått skickas för Azure-resurser. Om du vill skicka mått för resurser i andra miljöer eller lokalt använder du Application Insights.

Skicka REST-begäranden för att mata in anpassade mått

När du skickar anpassade mått till Azure Monitor måste varje datapunkt eller värde som rapporteras i måtten innehålla följande information.

Autentisering

För att skicka anpassade mått till Azure Monitor behöver en entitet som skickar måttet en giltig Microsoft Entra-token i bearer-huvudet för begäran. Exempel på sätt som stöds för att hämta en giltig ägartoken:

  • Hanterade identiteter för Azure-resurser. Du kan använda en hanterad identitet för att ge resurser behörighet att utföra vissa åtgärder. Ett exempel är att tillåta att en resurs genererar mått om sig själv. En resurs, eller dess hanterade identitet, kan beviljas övervakningsmåttutfärdarbehörigheter för en annan resurs. Med den här behörigheten kan den hanterade identiteten också generera mått för andra resurser.

  • Tjänstens huvudnamn för Microsoft Entra. I det här scenariot kan ett Microsoft Entra-program eller en tjänst tilldelas behörigheter för att generera mått om en Azure-resurs. För att autentisera begäran validerar Azure Monitor programtoken med hjälp av offentliga Microsoft Entra-nycklar. Den befintliga utgivarrollen för övervakningsmått har redan den här behörigheten. Den är tillgänglig i Azure-portalen.

    Tjänstens huvudnamn, beroende på vilka resurser det genererar anpassade mått för, kan ges rollen Monitoring Metrics Publisher i det omfång som krävs. Exempel är en prenumeration, en resursgrupp eller en specifik resurs.

Dricks

När du begär att en Microsoft Entra-token ska generera anpassade mått kontrollerar du att målgruppen eller resursen som token begärs för är https://monitoring.azure.com/. Se till att inkludera det avslutande snedstrecket.

Hämta en auktoriseringstoken

När du har skapat din hanterade identitet eller tjänstens huvudnamn och tilldelats behörigheter för Övervakningsmåttutgivare kan du hämta en auktoriseringstoken med hjälp av följande begäran:

curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource=https://monitoring.azure.com'

Svarstexten visas i följande format:

{
    "token_type": "Bearer",
    "expires_in": "86399",
    "ext_expires_in": "86399",
    "expires_on": "1672826207",
    "not_before": "1672739507",
    "resource": "https://monitoring.azure.com",
    "access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}

Spara åtkomsttoken från svaret för användning i följande HTTP-begäranden.

Ämne

Ämnesegenskapen registrerar vilket Azure-resurs-ID som det anpassade måttet rapporteras för. Den här informationen kodas i URL:en för API-anropet. Varje API kan endast skicka måttvärden för en enda Azure-resurs.

Kommentar

Du kan inte generera anpassade mått mot resurs-ID:t för en resursgrupp eller prenumeration.

Region

Regionegenskapen samlar in den Azure-region där den resurs som du genererar mått för distribueras. Mått måste skickas till samma regionala Azure Monitor-slutpunkt som den region där resursen distribueras. Anpassade mått för en virtuell dator som distribueras i USA, västra måste till exempel skickas till azure monitor-slutpunkten westUS regional. Regioninformationen kodas också i API-anropets URL.

Tidsstämpel

Varje datapunkt som skickas till Azure Monitor måste markeras med en tidsstämpel. Den här tidsstämpeln registrerar datum och tid då måttvärdet mäts eller samlas in. Azure Monitor accepterar måttdata med tidsstämplar så långt som 20 minuter under de senaste och 5 minuterna i framtiden. Tidsstämpeln måste vara i ISO 8601-format.

Namnområde

Namnområden är ett sätt att kategorisera eller gruppera liknande mått tillsammans. Genom att använda namnområden kan du uppnå isolering mellan grupper av mått som kan samla in olika insikter eller prestandaindikatorer. Du kan till exempel ha ett namnområde med namnet contosomemorymetrics som spårar minnesanvändningsmått som profilerar din app. Ett annat namnområde med namnet contosoapptransaction kan spåra alla mått om användartransaktioner i ditt program.

Name

Namnegenskapen är namnet på måttet som rapporteras. Vanligtvis är namnet beskrivande nog för att identifiera vad som mäts. Ett exempel är ett mått som mäter antalet minnesbyte som används på en virtuell dator. Det kan ha ett måttnamn som minnesbyte som används.

Dimensionsnycklar

En dimension är ett nyckel/värde-par som hjälper dig att beskriva andra egenskaper om måttet som samlas in. Med hjälp av de andra egenskaperna kan du samla in mer information om måttet, vilket ger djupare insikter.

Måttet Minnesbyte som används kan till exempel ha en dimensionsnyckel med namnet Process som samlar in hur många byte minne varje process på en virtuell dator förbrukar. Genom att använda den här nyckeln kan du filtrera måttet för att se hur mycket minnesspecifika processer som använder eller för att identifiera de fem främsta processerna efter minnesanvändning.

Dimensioner är valfria och alla mått har inte dimensioner. Ett anpassat mått kan ha upp till 10 dimensioner.

Dimensionsvärden

När du rapporterar en måttdatapunkt finns det ett motsvarande dimensionsvärde för varje dimensionsnyckel i det rapporterade måttet. Du kanske till exempel vill rapportera det minne som ContosoApp använder på den virtuella datorn:

  • Måttnamnet är minnesbyte som används.
  • Dimensionsnyckeln är Process.
  • Dimensionsvärdet skulle vara ContosoApp.exe.

När du publicerar ett måttvärde kan du bara ange ett enda dimensionsvärde per dimensionsnyckel. Om du samlar in samma minnesanvändning för flera processer på den virtuella datorn kan du rapportera flera måttvärden för tidsstämpeln. Varje måttvärde skulle ange ett annat dimensionsvärde för processdimensionsnyckeln.

Även om dimensioner är valfria är motsvarande dimensionsvärden obligatoriska om ett måttinlägg definierar dimensionsnycklar.

Måttvärden

Azure Monitor lagrar alla mått med 1 minuts kornighetsintervall. Under en viss minut kan ett mått behöva samplas flera gånger. Ett exempel är CPU-användning. Eller så kan ett mått behöva mätas för många diskreta händelser, till exempel svarstider för inloggningstransaktioner.

Om du vill begränsa antalet råvärden som du måste generera och betala för i Azure Monitor, föraggregerar du lokalt och genererar de aggregerade värdena:

  • Min: Det minsta observerade värdet från alla prover och mätningar under minuten.
  • Max: Det maximala observerade värdet från alla prover och mått under minuten.
  • Summa: Sammanfattningen av alla observerade värden från alla exempel och mått under minuten.
  • Antal: Antalet prover och mätningar som tagits under minuten.

Kommentar

Azure Monitor har inte stöd för att definiera enheter för ett anpassat mått.

Om det till exempel fanns fyra inloggningstransaktioner till din app under en minut kan de resulterande uppmätta svarstiderna för var och en vara:

Transaktion 1 Transaktion 2 Transaktion 3 Transaktion 4
7 ms 4 ms 13 ms 16 ms

Sedan skulle den resulterande måttpublikationen till Azure Monitor vara:

  • Min: 4
  • Max: 16
  • Summa: 40
  • Antal: 4

Om ditt program inte kan föraggregera lokalt och behöver generera varje diskret exempel eller händelse omedelbart vid insamling, kan du generera raw-måttvärdena. Varje gång en inloggningstransaktion inträffar i din app publicerar du till exempel ett mått till Azure Monitor med endast en enda mätning. För en inloggningstransaktion som tog 12 millisekunder skulle måttpublikationen därför vara:

  • Min: 12
  • Max: 12
  • Summa: 12
  • Antal: 1

Med den här processen kan du generera flera värden för samma mått-/dimensionskombination under en viss minut. Azure Monitor tar sedan alla råvärden som genereras under en viss minut och aggregerar dem.

Exempel på anpassad måttpublikation

I följande exempel skapar du ett anpassat mått med namnet Minnesbyte i Använd under måttnamnområdets minnesprofil för en virtuell dator. Måttet har en enda dimension med namnet Process. För tidsstämpeln genereras måttvärden för två processer.

Lagra följande JSON i en fil med namnet custommetric.json på den lokala datorn. Uppdatera tidsparametern så att den är inom de senaste 20 minuterna. Du kan inte placera ett mått i butiken som är mer än 20 minuter gammalt.

{
    "time": "2024-01-07T11:25:20-7:00",
    "data": {

      "baseData": {

        "metric": "Memory Bytes in Use",
        "namespace": "Memory Profile",
        "dimNames": [
          "Process"
        ],
        "series": [
          {
            "dimValues": [
              "ContosoApp.exe"
            ],
            "min": 10,
            "max": 89,
            "sum": 190,
            "count": 4
          },
          {
            "dimValues": [
              "SalesApp.exe"
            ],
            "min": 10,
            "max": 23,
            "sum": 86,
            "count": 4
          }
        ]
      }
    }
  }

Skicka följande HTTP POST-begäran med hjälp av följande variabler:

  • location: Distributionsregion för den resurs som du genererar mått för.

  • resourceId: Resurs-ID för den Azure-resurs som du spårar måttet mot.

  • accessToken: Auktoriseringstoken som hämtats från steget Hämta en auktoriseringstoken .

    curl -X POST 'https://<location>/.monitoring.azure.com<resourceId>/metrics' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <accessToken>' \
    -d @custommetric.json 
    

Visa dina mått

  1. Logga in på Azure-portalen.

  2. I menyn till vänster väljer du Övervaka.

  3. På sidan Övervaka väljer du Mått.

    Screenshot that shows how to select Metrics in the Azure portal.

  4. Ändra aggregeringsperioden till Senaste timme.

  5. I listrutan Omfång väljer du den resurs som du skickar måttet för.

  6. I listrutan Måttnamnområde väljer du Minnesprofil.

  7. I listrutan Mått väljer du Minnesbyte i Använd.

Felsökning

Om du får ett felmeddelande med någon del av processen bör du överväga följande felsökningsinformation:

  • Om du inte kan utfärda mått mot en prenumeration eller resursgrupp eller resurs kontrollerar du att programmet eller tjänstens huvudnamn har rollen Monitoring Metrics Publisher tilldelad i Åtkomstkontroll (IAM)..
  • Kontrollera att antalet dimensionsnamn matchar antalet värden.
  • Kontrollera att du genererar mått till rätt regional Slutpunkt för Azure Monitor. Om din resurs till exempel distribueras i USA, västra måste du skicka mått till den regionala slutpunkten USA, västra.
  • Kontrollera att tidsstämpeln är inom de senaste 20 minuterna.
  • Kontrollera att tidsstämpeln är i ISO 8601-format.
  • Kontrollera att måttnamnet är giltigt. Den kan till exempel inte innehålla blanksteg.

Nästa steg

Läs mer om anpassade mått.