存取 Azure IoT Edge 中的內建計量
適用於: IoT Edge 1.5 IoT Edge 1.4
重要
IoT Edge 1.5 LTS 是 支援的版本。 自 2024 年 11 月 12 日起,IoT Edge 1.4 LTS 已結束生命週期。 如果您是舊版,請參閱更新 IoT Edge。
IoT Edge 執行階段元件、IoT Edge 中樞和 IoT Edge 代理程式會以 Prometheus 展示格式產生內建計量。 從遠端存取這些計量,即可監視及了解 IoT Edge 裝置的健康情況。
您可以使用自己的解決方案來存取這些計量。 或者,您可以使用計量收集器模組來處理收集內建計量,並將其傳送至 Azure 監視器或 Azure IoT 中樞。 如需詳細資訊,請參閱收集及傳輸計量。
edgeHub 和 edgeAgent 模組連接埠 9600 上 (http://edgeHub:9600/metrics
和 http://edgeAgent:9600/metrics
),預設會自動公開計量。 預設為不會對應至主機的連接埠。
藉由從模組 createOptions
的公開和對應計量埠,從主機存取計量。 下列範例會將預設計量埠對應至主機上的連接埠 9601:
{
"ExposedPorts": {
"9600/tcp": {}
},
"HostConfig": {
"PortBindings": {
"9600/tcp": [
{
"HostPort": "9601"
}
]
}
}
}
如果您要對應 edgeHub 和 edgeAgent 的計量端點,請選擇不同的和唯一的主機埠號碼。
可用的計量
計量包含標記,可協助識別所收集計量的本質。 所有計量都包含下列標記:
標記 | 描述 |
---|---|
iothub | 裝置正在交談的中樞 |
edge_device | 目前裝置的識別碼 |
instance_number | 表示目前執行階段的 GUID。 重新啟動時,所有計量都會重設。 此 GUID 可讓您更輕鬆地協調重新開機。 |
在 Prometheus 展示格式中,有四種核心計量類型:計數器、量測計、長條圖和摘要。 如需不同計量類型的詳細資訊,請參閱 Prometheus 計量類型文件。
針對內建長條圖和摘要計量提供的分位數為 0.1、0.5、0.9 和 0.99。
edgeHub 模組會產生下列計量:
名稱 | 維度 | 描述 |
---|---|---|
edgehub_gettwin_total |
source (作業來源)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_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 |
類型:計數器 呼叫內建 edgeAgent 直接方法的次數,例如 Ping 或 Restart。 |
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 安全性精靈版本。 |