Senden benutzerdefinierter Metriken für eine Azure-Ressource an den Azure Monitor-Metrikspeicher mithilfe einer REST-APISend custom metrics for an Azure resource to the Azure Monitor metric store by using a REST API

In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Metriken für Azure-Ressourcen über eine REST-API an den Metrikenspeicher von Azure Monitor senden können.This article shows you how to send custom metrics for Azure resources to the Azure Monitor metrics store via a REST API. Sobald sich die Metriken in Azure Monitor befinden, können Sie die gleichen Aktionen für sie ausführen wie für die Standardmetriken.After the metrics are in Azure Monitor, you can do all the things with them that you do with standard metrics. Beispiele wären etwa das Erstellen von Diagrammen und Warnungen sowie das Weiterleiten an andere externe Tools.Examples are charting, alerting, and routing them to other external tools.

Hinweis

Die REST-API gestattet nur das Senden von benutzerdefinierten Metriken für Azure-Ressourcen.The REST API only permits sending custom metrics for Azure resources. Sie können mit Application Insights Metriken für Ressourcen in verschiedenen Umgebungen oder lokal senden.To send metrics for resources in different environments or on-premises, you can use Application Insights.

Erstellen und Autorisieren eines Dienstprinzipals zur Ausgabe von MetrikenCreate and authorize a service principal to emit metrics

Erstellen Sie anhand der Anleitung unter Erstellen eines Dienstprinzipals einen Dienstprinzipal in Ihrem Azure Active Directory-Mandanten.Create a service principal in your Azure Active Directory tenant by using the instructions found at Create a service principal.

Beachten Sie dabei Folgendes:Note the following while you go through this process:

  • Sie können für die Anmelde-URL eine beliebige URL eingeben.You can enter any URL for the sign-in URL.
  • Erstellen Sie einen neuen geheimen Clientschlüssel für diese App.Create a new client secret for this app.
  • Speichern Sie den Schlüssel und die Client-ID für die Verwendung in späteren Schritten.Save the key and the client ID for use in later steps.

Erteilen Sie der App, die im Rahmen des ersten Schritts erstellt wurde, Berechtigungen vom Typ „Überwachungsmetriken veröffentlichen“ für die Ressource, für die Sie Metriken ausgeben möchten.Give the app created as part of step 1, Monitoring Metrics Publisher, permissions to the resource you wish to emit metrics against. Wenn Sie planen, die App zu verwenden, um benutzerdefinierte Metriken für viele Ressourcen auszugeben, können Sie diese Berechtigungen auf der Ebene der Ressourcengruppe oder des Abonnements vergeben.If you plan to use the app to emit custom metrics against many resources, you can grant these permissions at the resource group or subscription level.

Abrufen eines AutorisierungstokensGet an authorization token

Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus:Open a command prompt and run the following command:

curl -X POST https://login.microsoftonline.com/<yourtenantid>/oauth2/token -F "grant_type=client_credentials" -F "client_id=<insert clientId from earlier step>" -F "client_secret=<insert client secret from earlier step>" -F "resource=https://monitoring.azure.com/"

Speichern Sie das Zugriffstoken aus der Antwort.Save the access token from the response.

Zugriffstoken

Ausgeben der Metrik über die REST-APIEmit the metric via the REST API

  1. Fügen Sie den folgenden JSON-Code in eine Datei ein, und speichern Sie sie als  custommetric.json auf Ihrem lokalen Computer.Paste the following JSON into a file, and save it as custommetric.json on your local computer. Aktualisieren Sie den Zeitparameter in der JSON-Datei:Update the time parameter in the JSON file:

    { 
        "time": "2018-09-13T16:34:20", 
        "data": { 
            "baseData": { 
                "metric": "QueueDepth", 
                "namespace": "QueueProcessing", 
                "dimNames": [ 
                  "QueueName", 
                  "MessageType" 
                ], 
                "series": [ 
                  { 
                    "dimValues": [ 
                      "ImagesToProcess", 
                      "JPEG" 
                    ], 
                    "min": 3, 
                    "max": 20, 
                    "sum": 28, 
                    "count": 3 
                  } 
                ] 
            } 
        } 
    } 
    
  2. Geben Sie im Eingabeaufforderungsfenster die Metrikdaten an:In your command prompt window, post the metric data:

    • azureRegion:azureRegion. Muss der Bereitstellungsregion der Ressource entsprechen, für die Sie Metriken ausgeben möchten.Must match the deployment region of the resource you're emitting metrics for.

    • resourceID:resourceID. Die Ressourcen-ID der Azure-Ressource, mit der Sie die Metrik nachverfolgen.Resource ID of the Azure resource you're tracking the metric against.

    • AccessToken:AccessToken. Fügen Sie das Token ein, das Sie zuvor abgerufen haben.Paste the token that you acquired previously.

      curl -X POST https://<azureRegion>.monitoring.azure.com/<resourceId>/metrics -H "Content-Type: application/json" -H "Authorization: Bearer <AccessToken>" -d @custommetric.json 
      
  3. Ändern Sie den Zeitstempel und die Werte in der JSON-Datei.Change the timestamp and values in the JSON file.

  4. Wiederholen Sie die beiden vorherigen Schritte einige Male, um Daten für mehrere Minuten zu erhalten.Repeat the previous two steps a few times, so you have data for several minutes.

ProblembehandlungTroubleshooting

Sollte im Rahmen des Prozesses eine Fehlermeldung angezeigt werden, berücksichtigen Sie die folgenden Informationen zur Problembehandlung:If you receive an error message with some part of the process, consider the following troubleshooting information:

  1. Sie können Metriken nicht für ein Abonnement oder eine Ressourcengruppe als Ihre Azure-Ressource ausgeben.You can't issue metrics against a subscription or resource group as your Azure resource.
  2. Dem Speicher können keine Metriken hinzugefügt werden, die älter als 20 Minuten sind.You can't put a metric into the store that's over 20 minutes old. Der Metrikspeicher ist für die Benachrichtigung und Diagrammerstellung in Echtzeit optimiert.The metric store is optimized for alerting and real-time charting.
  3. Die Anzahl von Dimensionsnamen muss mit den Werten übereinstimmen (und umgekehrt).The number of dimension names should match the values and vice versa. Überprüfen Sie die Werte.Check the values.
  4. Möglicherweise geben Sie Metriken für Regionen aus, die keine benutzerdefinierten Metriken unterstützen.You might be emitting metrics against a region that doesn’t support custom metrics. Weitere Informationen finden Sie unter Unterstützte Regionen.See supported regions.

Anzeigen Ihrer MetrikenView your metrics

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Wählen Sie im Menü auf der linken Seite Monitor aus.In the left-hand menu, select Monitor.

  3. Wählen Sie auf der Seite Monitor die Option Metriken aus.On the Monitor page, select Metrics.

    Auswählen von „Metriken“

  4. Ändern Sie den Aggregationszeitraum in Letzte 30 Minuten.Change the aggregation period to Last 30 minutes.

  5. Wählen Sie im Dropdownmenü Ressource die Ressource aus, für die Sie die Metrik ausgegeben haben.In the resource drop-down menu, select the resource you emitted the metric against.

  6. Wählen Sie im Dropdownmenü Namespaces die Option QueueProcessing aus.In the namespaces drop-down menu, select QueueProcessing.

  7. Wählen Sie im Dropdownmenü Metriken die Option QueueDepth aus.In the metrics drop-down menu, select QueueDepth.

Nächste SchritteNext steps