Доступ к встроенным метрикам в 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 заканчивается жизнью 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.
Компоненты среды выполнения IoT Edge, центр IoT Edge и агент IoT Edge создают встроенные метрики в формате экспозиции Prometheus. Получайте удаленный доступ к этим метрикам для отслеживания и понимания работоспособности устройства IoT Edge.
Для доступа к этим метрикам вы можете использовать собственное решение. Кроме того, можно использовать модуль сборщика метрик, который обрабатывает сбор встроенных метрик и отправляет их в Azure Monitor или Центр Интернета вещей Azure. Дополнительные сведения см. в статье Сбор и транспортировка метрик.
Метрики автоматически предоставляются по умолчанию через порт 9600 модулей edgeHub и edgeAgent (http://edgeHub:9600/metrics
иhttp://edgeAgent:9600/metrics
). По умолчанию это не порт, сопоставленный с узлом.
Получайте доступ к метрикам с узла, предоставив и сопоставив порт метрик из createOptions
модуля. Приведенный ниже пример сопоставляет порт метрик по умолчанию с портом 9601 на узле:
{
"ExposedPorts": {
"9600/tcp": {}
},
"HostConfig": {
"PortBindings": {
"9600/tcp": [
{
"HostPort": "9601"
}
]
}
}
}
При сопоставлении конечных точек метрик edgeHub и edgeAgent выбирайте разные и уникальные номера портов узлов.
Примечание.
Переменная среды httpSettings__enabled
не должна иметь значение false
, чтобы встроенные метрики были доступны для коллекции.
Переменные среды, которые можно использовать для отключения метрик, перечислены в документации по репозиторию azure/iotedge.
Доступные метрики
Метрики содержат теги, помогающие определить природу собираемой метрики. Все метрики содержат следующие теги:
Тег | Description |
---|---|
iothub | Центр, с которым взаимодействует устройство |
edge_device | Идентификатор текущего устройства |
instance_number | Идентификатор GUID, представляющий текущую среду выполнения. При перезапуске все метрики сбрасываются. Этот идентификатор GUID упрощает выверку перезапусков. |
В формате Prometheus существует четыре основных типа метрик: счетчик, датчик, гистограмма и сводка. Дополнительные сведения о различных типах метрик см. в документации по типам метрик Prometheus.
Квантили, предоставляемые для встроенной гистограммы и сводных метрик, — 0,1, 0,5, 0,9 и 0,99.
Модуль edgeHub создает следующие метрики:
Имя. | Измерения | Description |
---|---|---|
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_route_input имеет пустое значение, если to — $upstream |
edgehub_reported_properties_total |
target (целевой объект обновления)id |
Тип: счетчик Общее число вызовов для обновления передаваемого свойства |
edgehub_message_size_bytes |
id |
Тип: сводка Размер сообщения от клиентов Значения могут сообщаться так, как NaN если бы новые измерения не сообщались в течение определенного периода времени (в настоящее время 10 минут); для 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 создает следующие метрики:
Имя. | Измерения | Description |
---|---|---|
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 |
Тип: датчик Объем ОЗУ, используемый всеми процессами |
edgeAgent_total_memory_bytes |
module_name |
Тип: датчик Доступное ОЗУ |
edgeAgent_used_cpu_percent |
module_name |
Тип: гистограмма Процент ЦП, используемый всеми процессами |
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. |