Azure IoT Edge で組み込みメトリックにアクセスする
適用対象: IoT Edge 1.5
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 にそれを送信することもできます。 詳細については、「メトリックの収集と転送」を参照してください。
既定では、メトリックは edgeHub と edgeAgent モジュール (http://edgeHub:9600/metrics
と http://edgeAgent:9600/metrics
) の ポート 9600 で自動的に公開されます。 既定では、これらのポートはホストにマップされません。
モジュールの createOptions
からメトリック ポートを公開およびマップすることによって、ホストからメトリックにアクセスします。 次の例では、既定のメトリック ポートをホスト上のポート 9601 にマップしています。
{
"ExposedPorts": {
"9600/tcp": {}
},
"HostConfig": {
"PortBindings": {
"9600/tcp": [
{
"HostPort": "9601"
}
]
}
}
}
edgeHub と edgeAgent の両方のメトリック エンドポイントをマップする場合は、別の一意のホスト ポート番号を選択してください。
Note
組み込みメトリックをコレクションに使用できるようにするには、環境変数 httpSettings__enabled
を false
に設定しないでください。
メトリックを無効にするために使用できる環境変数の一覧は、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_name 、module_version |
種類: カウンター モジュールを開始するように edgeAgent から docker に要求された回数 |
edgeAgent_module_stop_total |
module_name 、module_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_name 、disk_filesystem 、disk_filetype |
種類: ゲージ ディスクの空き領域のサイズ |
edgeAgent_total_disk_space_bytes |
disk_name 、disk_filesystem 、disk_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_version 、experimental_features 、host_information |
種類: ゲージ デバイスに関する一般的なメタデータ。 値は常に 0 です。情報はタグでエンコードされます。 experimental_features と host_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 セキュリティ デーモンのバージョンであることに注意してください。 |