Azure IoT Edge で組み込みメトリックにアクセスする

適用対象:IoT Edge 1.5 のチェックマーク IoT Edge 1.5 IoT Edge 1.4 チェックマーク IoT Edge 1.4

重要

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

IoT Edge ランタイム コンポーネントである IoT Edge ハブと IoT Edge エージェントによって、Prometheus 公開形式の組み込みメトリックが生成されます。 これらのメトリックにリモートでアクセスして、IoT Edge デバイスの正常性を監視および把握します。

独自のソリューションを使用して、これらのメトリックにアクセスできます。 または、metrics-collector モジュールを使って、組み込みメトリックの収集を処理し、Azure Monitor または Azure IoT Hub にそれを送信することもできます。 詳細については、「メトリックの収集と転送」を参照してください。

既定では、メトリックは edgeHubedgeAgent モジュール (http://edgeHub:9600/metricshttp://edgeAgent:9600/metrics) の ポート 9600 で自動的に公開されます。 既定では、これらのポートはホストにマップされません。

モジュールの createOptions からメトリック ポートを公開およびマップすることによって、ホストからメトリックにアクセスします。 次の例では、既定のメトリック ポートをホスト上のポート 9601 にマップしています。

{
  "ExposedPorts": {
    "9600/tcp": {}
  },
  "HostConfig": {
    "PortBindings": {
      "9600/tcp": [
        {
          "HostPort": "9601"
        }
      ]
    }
  }
}

edgeHub と edgeAgent の両方のメトリック エンドポイントをマップする場合は、別の一意のホスト ポート番号を選択してください。

Note

組み込みメトリックをコレクションに使用できるようにするには、環境変数 httpSettings__enabledfalse に設定しないでください。

メトリックを無効にするために使用できる環境変数の一覧は、azure/iotedge リポジトリ ドキュメントにあります。

使用可能なメトリック

メトリックには、収集されるメトリックの性質を特定するのに役立つタグが含まれています。 すべてのメトリックには、次のタグが含まれています。

タグ 説明
iothub デバイスが通信しているハブ
edge_device 現在のデバイスの ID
instance_number 現在のランタイムを表す GUID。 再起動時に、すべてのメトリックがリセットされます。 この GUID を使用すると、再起動の調整が容易になります。

Prometheus の出力フォーマットには、カウンター、ゲージ、ヒストグラム、概要という 4 種類のコア メトリックがあります。 さまざまなメトリックの種類の詳細については、Prometheus のメトリックの種類に関するドキュメントを参照してください。

組み込みのヒストグラムと概要のメトリックに対して提供される分位点は、0.1、0.5、0.9、0.99 です。

edgeHub モジュールにより、次のメトリックが生成されます。

名前 ディメンション 説明
edgehub_gettwin_total source (操作元)
id (モジュール ID)
種類: カウンター
GetTwin 呼び出しの合計数
edgehub_messages_received_total route_output (メッセージを送信した出力)
id
種類: カウンター
クライアントから受信したメッセージの合計数
edgehub_messages_sent_total from (メッセージの送信元)
to (メッセージの送信先)
from_route_output
to_route_input (メッセージの送信先の入力)
priority (送信先へのメッセージの優先度)
種類: カウンター
クライアントまたはアップストリームに送信されたメッセージの合計数
to が $upstream 場合、to_route_input は空になります
edgehub_reported_properties_total target (ターゲットの更新)
id
種類: カウンター
報告されたプロパティ更新呼び出しの合計数
edgehub_message_size_bytes id
種類: 概要
クライアントからのメッセージ サイズ
一定期間 (現時点では 10 分)、新しい測定値が報告されない場合、値は NaN として報告されることがあります。summary 型の場合、対応する _count_sum カウンターが生成されます。
edgehub_gettwin_duration_seconds source
id
種類: 概要
ツイン操作の取得にかかった時間
edgehub_message_send_duration_seconds from
to
from_route_output
to_route_input
種類: 概要
メッセージの送信に要した時間
edgehub_message_process_duration_seconds from
to
priority
種類: 概要
キューからのメッセージの処理にかかった時間
edgehub_reported_properties_update_duration_seconds target
id
種類: 概要
報告されたプロパティの更新にかかった時間
edgehub_direct_method_duration_seconds from (呼び出し元)
to (受信者)
種類: 概要
ダイレクト メッセージの解決にかかった時間
edgehub_direct_methods_total from
to
種類: カウンター
送信されたダイレクト メッセージの合計数
edgehub_queue_length endpoint (メッセージの送信元)
priority (キューの優先順位)
種類: ゲージ
指定された優先度に対する edgeHub のキューの現在の長さ
edgehub_messages_dropped_total reason (no_route、ttl_expiry)
from
from_route_output
種類: カウンター
理由により削除されたメッセージの合計数
edgehub_messages_unack_total reason (storage_failure)
from
from_route_output
種類: カウンター
ストレージの障害による未確認のメッセージの合計数
edgehub_offline_count_total id 種類: カウンター
edgeHub がオフラインになった合計回数
edgehub_offline_duration_seconds id 種類: 概要
edgeHub がオフラインだった時間
edgehub_operation_retry_total id
operation (操作名)
種類: カウンター
edgeHub 操作が再試行された合計回数
edgehub_client_connect_failed_total id
reason (未認証)
種類: カウンター
クライアントが edgeHub に接続できなかった合計回数

edgeAgent モジュールにより、次のメトリックが生成されます。

名前 ディメンション 説明
edgeAgent_total_time_running_correctly_seconds module_name 種類: ゲージ
デプロイでモジュールが指定され、実行中の状態だった時間
edgeAgent_total_time_expected_running_seconds module_name 種類: ゲージ
デプロイでモジュールが指定された時間
edgeAgent_module_start_total module_namemodule_version 種類: カウンター
モジュールを開始するように edgeAgent から docker に要求された回数
edgeAgent_module_stop_total module_namemodule_version 種類: カウンター
モジュールを停止するように edgeAgent から docker に要求された回数
edgeAgent_command_latency_seconds command 種類: ゲージ
docker が特定のコマンドを実行するのにかかった時間。 使用可能なコマンド: 作成、更新、削除、開始、停止、再起動
edgeAgent_iothub_syncs_total 種類: カウンター
edgeAgent がそのツインと iotHub との同期を試行した回数 (成功と失敗の両方)。 この数には、ツインを要求するエージェントとツインの更新を通知するハブの両方が含まれます
edgeAgent_unsuccessful_iothub_syncs_total 種類: カウンター
edgeAgent がそのツインと iotHub との同期に失敗した回数。
edgeAgent_deployment_time_seconds 種類: カウンター
変更を受け取った後に新しいデプロイを完了するために要した時間。
edgeagent_direct_method_invocations_count method_name 種類: カウンター
Ping や Restart など、組み込みの edgeAgent ダイレクト メソッドが呼び出された回数。
edgeAgent_host_uptime_seconds 種類: ゲージ
ホストがオンになっている期間
edgeAgent_iotedged_uptime_seconds 種類: ゲージ
iotedged が実行されている期間
edgeAgent_available_disk_space_bytes disk_namedisk_filesystemdisk_filetype 種類: ゲージ
ディスクの空き領域のサイズ
edgeAgent_total_disk_space_bytes disk_namedisk_filesystemdisk_filetype 種類: ゲージ
ディスクのサイズ
edgeAgent_used_memory_bytes module_name 種類: ゲージ
すべてのプロセスで使用されている RAM の容量
edgeAgent_total_memory_bytes module_name 種類: ゲージ
使用可能な RAM
edgeAgent_used_cpu_percent module_name 種類: ヒストグラム
すべてのプロセスで使用されている CPU の割合
edgeAgent_created_pids_total module_name 種類: ゲージ
コンテナーによって作成されたプロセスまたはスレッドの数
edgeAgent_total_network_in_bytes module_name 種類: ゲージ
ネットワークから受信したバイト数
edgeAgent_total_network_out_bytes module_name 種類: ゲージ
ネットワークに送信されたバイト数
edgeAgent_total_disk_read_bytes module_name 種類: ゲージ
ディスクから読み取られたバイト数
edgeAgent_total_disk_write_bytes module_name 種類: ゲージ
ディスクに書き込まれたバイト数
edgeAgent_metadata edge_agent_versionexperimental_featureshost_information 種類: ゲージ
デバイスに関する一般的なメタデータ。 値は常に 0 です。情報はタグでエンコードされます。 experimental_featureshost_information が json オブジェクトであることに注意してください。 host_information{"OperatingSystemType": "linux", "Architecture": "x86_64", "Version": "1.2.7", "Provisioning": {"Type": "dps.tpm", "DynamicReprovisioning": false, "AlwaysReprovisionOnStartup": false}, "ServerVersion": "20.10.11+azure-3", "KernelVersion": "5.11.0-1027-azure", "OperatingSystem": "Ubuntu 20.04.4 LTS", "NumCpus": 2, "Virtualized": "yes"} のように表示されます。 ServerVersion は Docker バージョンで、Version は IoT Edge セキュリティ デーモンのバージョンであることに注意してください。

次のステップ