REST API を使用して Azure リソースのカスタム メトリックを Azure Monitor メトリック ストアに送信するSend custom metrics for an Azure resource to the Azure Monitor metric store by using a REST API

この記事では、Azure リソースのカスタム メトリックを REST API 経由で Azure Monitor メトリック ストアに送信する方法について説明します。This article shows you how to send custom metrics for Azure resources to the Azure Monitor metrics store via a REST API. メトリックが Azure Monitor に送信されたら、それらを使用して、標準メトリックを使用して実行できるすべての処理を実行できます。After the metrics are in Azure Monitor, you can do all the things with them that you do with standard metrics. 例として、グラフ作成、アラート設定、他の外部ツールへの転送などです。Examples are charting, alerting, and routing them to other external tools.

注意

REST API では、Azure リソースのカスタム メトリックの送信のみを許可します。The REST API only permits sending custom metrics for Azure resources. 異なる環境またはオンプレミスにあるリソースのメトリックを送信するには、Application Insights を使用できます。To send metrics for resources in different environments or on-premises, you can use Application Insights.

メトリックを出力するためのサービス プリンシパルを作成および承認するCreate and authorize a service principal to emit metrics

サービス プリンシパルの作成に関するページの手順を使用して、お使いの Azure Active Directory テナントでサービス プリンシパルを作成します。Create a service principal in your Azure Active Directory tenant by using the instructions found at Create a service principal.

このプロセスを進める際には、次の点に注意してください。Note the following while you go through this process:

  • サインイン URL にはどの URL でも入力できます。You can enter any URL for the sign-in URL.
  • このアプリ用に新しいクライアント シークレットを作成します。Create a new client secret for this app.
  • 後の手順で使用するために、キーとクライアント ID を保存します。Save the key and the client ID for use in later steps.

手順 1「メトリック パブリッシャーの監視」で作成したアプリに、メトリックを発行するリソースへのアクセス許可を付与します。Give the app created as part of step 1, Monitoring Metrics Publisher, permissions to the resource you wish to emit metrics against. アプリを使用して多くのリソースに対してカスタム メトリックを発行する予定である場合は、リソース グループまたはサブスクリプション レベルでこれらのアクセス許可を付与できます。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.

承認トークンを取得するGet an authorization token

コマンド プロンプトを開き、次のコマンドを実行します。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/"

応答からアクセス トークンを保存します。Save the access token from the response.

アクセス トークン

REST API 経由でメトリックを出力するEmit the metric via the REST API

  1. 次の JSON をファイルに貼り付けて、 custommetric.json という名前でローカル コンピューターに保存します。Paste the following JSON into a file, and save it as custommetric.json on your local computer. JSON ファイルの time パラメーターを更新します。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. コマンド プロンプト ウィンドウで、メトリック データを送信します。In your command prompt window, post the metric data:

    • azureRegionazureRegion. メトリック出力対象のリソースのデプロイ リージョンと一致する必要があります。Must match the deployment region of the resource you're emitting metrics for.

    • resourceIDresourceID. メトリック追跡対象の Azure リソースのリソース ID。Resource ID of the Azure resource you're tracking the metric against.

    • AccessTokenAccessToken. 以前に取得したトークンを貼り付けます。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. JSON ファイルのタイムスタンプと値を変更します。Change the timestamp and values in the JSON file.

  4. 前の 2 つの手順を何回か繰り返して、数分間のデータを用意します。Repeat the previous two steps a few times, so you have data for several minutes.

トラブルシューティングTroubleshooting

プロセスのどこかでエラー メッセージを受信した場合は、次のトラブルシューティング情報を考慮してください。If you receive an error message with some part of the process, consider the following troubleshooting information:

  1. サブスクリプションまたはリソース グループに対して、Azure リソースとしてメトリックを発行することはできません。You can't issue metrics against a subscription or resource group as your Azure resource.
  2. 出力からの時間が 20 分を超えたメトリックはストアに保存できません。You can't put a metric into the store that's over 20 minutes old. メトリック ストアは、アラート設定やリアルタイムでのグラフ作成に最適化されています。The metric store is optimized for alerting and real-time charting.
  3. ディメンション名の数は値と一致する必要があり、逆も同様です。The number of dimension names should match the values and vice versa. 値を確認してください。Check the values.
  4. カスタム メトリックをサポートしていないリージョンに対してメトリックを出力している可能性があります。You might be emitting metrics against a region that doesn’t support custom metrics. サポートされているリージョン」を参照してください。See supported regions.

メトリックの表示View your metrics

  1. Azure portal にサインインします。Sign in to the Azure portal.

  2. 左側のメニューで [モニター] を選択します。In the left-hand menu, select Monitor.

  3. [モニター] ページで、 [メトリック] を選択します。On the Monitor page, select Metrics.

    メトリックを選択する

  4. 集計の期間を [過去 30 分間] に変更します。Change the aggregation period to Last 30 minutes.

  5. [リソース] ドロップダウン メニューで、メトリックを出力した対象のリソースを選択します。In the resource drop-down menu, select the resource you emitted the metric against.

  6. [名前空間] ドロップダウン メニューで、QueueProcessing を選択します。In the namespaces drop-down menu, select QueueProcessing.

  7. [メトリック] ドロップダウン メニューで、QueueDepth を選択します。In the metrics drop-down menu, select QueueDepth.

次のステップNext steps