次の方法で共有


カスタム メトリックを追加する

対象:IoT Edge 1.5 チェックマーク IoT Edge 1.5

重要

IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。

システム モジュールが提供する組み込みのメトリックに加えて、IoT Edge モジュールからカスタム メトリックを収集します。 組み込みのメトリックにより、デプロイの正常性に関する優れたベースライン可視性が提供されます。 ただし、画像を完成させるには、カスタム モジュールの追加情報が必要になる場合があります。 カスタム モジュールは、適切な Prometheus クライアント ライブラリ を使用してメトリックを出力することで、監視ソリューションに統合できます。 この追加情報を使用すると、要件に特化した新しいビューやアラートを有効にすることができます。

サンプル モジュール リポジトリ

メトリックを出力するようにインストルメント化されたカスタム モジュールの例については、azure サンプル リポジトリ を参照してください。 選択した言語のサンプルがまだ使用できない場合でも、一般的なアプローチが役に立ちます。

名前付け規則

一般的なガイダンスについては、Prometheus ドキュメントの ベスト プラクティス を参照してください。 次の追加の推奨事項は、IoT Edgeシナリオに役立ちます。

  • メトリック名の先頭にモジュール名を含めて、どのモジュールがメトリックを生成したかを明確にします。

  • すべてのメトリックに、IoT Hub 名または IoT Central アプリケーション名、IoT Edgeデバイス ID、およびモジュール ID (tag/dimensions) をラベルとして含めます。 この情報は、IoT Edge エージェントによって開始されるすべてのモジュールの環境変数として使用できます。 このアプローチは、サンプル リポジトリの例によって示されます。 このコンテキストがないと、特定のメトリック値を特定のデバイスに関連付けることはできません。

  • ラベルにインスタンス ID を含めます。 インスタンス ID には、モジュールの起動時に生成される GUID などの任意の一意の ID を指定できます。 インスタンス ID 情報は、バックエンドでモジュールのメトリックを処理するときに、モジュールの再起動を調整するのに役立ちます。

カスタム メトリックを収集するようにメトリック コレクターを構成する

カスタム モジュールがメトリックを出力したら、次の手順は、カスタム メトリックを収集して転送するように metrics-collector モジュール を構成することです。

環境変数 MetricsEndpointsCSV を更新して、カスタム モジュールのメトリック エンドポイントの URL を含める必要があります。 環境変数を更新するときは、 メトリック コレクターの構成 例に示すように、システム モジュール エンドポイントを必ず含めるようにしてください。

既定では、カスタム モジュールのメトリック エンドポイントは、メトリック コレクターがアクセスできるようにホスト ポートにマップする必要はありません。 明示的にオーバーライドされない限り、Linux では、azure-iot-edge という名前のユーザー定義 Docker ブリッジ ネットワークで両方のモジュールが開始されます。

ユーザー定義の Docker ネットワークには、モジュール (コンテナー) 名を使用したモジュール間通信を可能にする既定の DNS リゾルバーが含まれています。 たとえば、module1 という名前のカスタム モジュールが、パス /metrics で http ポート 9600 でメトリックを出力している場合は、エンドポイント http://module1:9600/metricsから収集するようにコレクターを構成する必要があります。

IoT Edge デバイスで次のコマンドを実行して、http ポート 9600 のカスタム モジュールによって出力されたメトリック/metrics にアクセスできるかどうかをテストします。

sudo docker exec replace-with-metrics-collector-module-name curl http://replace-with-custom-module-name:9600/metrics

カスタムの視覚化を追加する

Log Analyticsでカスタム メトリックを受け取ったら、カスタムの視覚化とアラートを作成できます。 監視ブックを拡張して、クエリを使用した視覚化を追加することができます。

すべてのメトリックは、IoT Hub または IoT Central アプリケーションのリソース ID に関連付けられています。 そのため、関連付けられている IoT ハブまたは IoT Central アプリケーションの Logs ページから、バッキング Log Analytics ワークスペースではなく、カスタム メトリックが正しく取り込まれたかどうかを確認できます。 次の基本的な KQL クエリを使用して確認します。

InsightsMetrics
| where Name == 'replace-with-custom-metric-name'

データの取り込みを確認したら、新しいワークブックを作成するか、既存のワークブックを拡張することができます。 ガイドとして、workbooks ドキュメントおよびキュレーションされた IoT Edge ブックからのクエリを使用します。

結果に満足したら、 ブックを チームと共有したり、組織のリソース デプロイ の一部としてプログラムで展開したりできます。

次のステップ

キュレーションされたブックを使用して、追加のメトリック視覚化オプションを確認します。