次の方法で共有


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

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

重要

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

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

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

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

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

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

edgeHub と edgeAgent の両方のメトリック エンドポイントをマッピングするときに、異なる一意のホスト ポート番号を選択します。

組み込みのメトリックを収集するには、環境変数をhttpSettings__enabledに設定しないでください。

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

使用可能なメトリック

メトリックには、収集されるメトリックの性質を識別するタグが含まれます。 すべてのメトリックには、次のタグが含まれます。

タグ 説明
iothub デバイスが通信するハブ
edge_device 現在のデバイスの ID
インスタンス番号 現在のランタイムを表す 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_route_input が $upstream 場合、to は空になります
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 (ストレージ故障)
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 セキュリティ デーモンのバージョンであることに注意してください。

次のステップ