Доступ к встроенным метрикам в Azure IoT Edge
Область применения: IoT Edge 1.5 IoT Edge 1.4
Внимание
IoT Edge 1.5 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. |