Acceso a métricas integradas en Azure IoT Edge
Se aplica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS son versiones compatibles. IoT Edge 1.4 LTS finaliza el ciclo de vida el 12 de noviembre de 2024. Si está usando una versión anterior, consulte Actualización de IoT Edge.
Los componentes de entorno de ejecución de Azure IoT Edge, centro de IoT Edge y agente de IoT Edge generan métricas integradas en el formato de exposición de Prometheus. Obtenga acceso a estas métricas de forma remota para supervisar y comprender el estado de un dispositivo IoT Edge.
Puede usar su propia solución para acceder a estas métricas. O bien, puede usar el módulo del recopilador de métricas, que controla la recopilación de las métricas integradas y su envío a Azure Monitor o Azure IoT Hub. Para más información, consulte Recopilación y transporte de métricas.
Las métricas están automáticamente expuestas de manera predeterminada en el puerto 9600 de los módulos edgeHub y edgeAgent (http://edgeHub:9600/metrics
y http://edgeAgent:9600/metrics
). No se asignan por puertos al host de manera predeterminada.
Para acceder a las métricas desde el host, exponga y asigne el puerto de las métricas desde createOptions
del módulo. En el ejemplo siguiente se asigna el puerto de métricas predeterminado al puerto 9601 en el host:
{
"ExposedPorts": {
"9600/tcp": {}
},
"HostConfig": {
"PortBindings": {
"9600/tcp": [
{
"HostPort": "9601"
}
]
}
}
}
Elija números de puerto de host diferentes y únicos si va a asignar los puntos de conexión de métricas de edgeHub y edgeAgent.
Nota:
La variable de entorno httpSettings__enabled
no se debe establecer en false
para que las métricas integradas estén disponibles para la recopilación.
Las variables de entorno que se pueden usar para deshabilitar las métricas se muestran en Documentación del repositorio azure/iotedge.
Métricas disponibles
Las métricas contienen etiquetas para ayudar a identificar la naturaleza de la métrica que se está recopilando. Todas las métricas contienen las etiquetas siguientes:
Etiqueta | Descripción |
---|---|
iothub | El centro con el que se comunica el dispositivo |
edge_device | Identificador del dispositivo actual |
instance_number | GUID que representa el entorno de ejecución actual. Al reiniciar, se restablecen todas las métricas. Este GUID facilita la conciliación de los reinicios. |
En el formato de exposición de Prometheus, hay cuatro tipos de métricas principales: contador, medidor, histograma y resumen. Para obtener más información sobre los diferentes tipos de métricas, consulte la documentación sobre los tipos de métricas de Prometheus.
Los cuantiles proporcionados para las métricas integradas de histograma y resumen son 0,1; 0,5; 0,9 y 0,99.
El módulo edgeHub genera las métricas siguientes:
Nombre | Dimensions | Descripción |
---|---|---|
edgehub_gettwin_total |
source (origen de la operación)id (id. de módulo) |
Tipo: contador Número total de llamadas de GetTwin |
edgehub_messages_received_total |
route_output (salida que envió el mensaje)id |
Tipo: contador Número total de mensajes recibidos de los clientes |
edgehub_messages_sent_total |
from (origen del mensaje)to (destino del mensaje)from_route_output to_route_input (entrada de destino del mensaje)priority (prioridad del mensaje al destino) |
Tipo: contador Número total de mensajes enviados a clientes o ascendentes to_route_input está vacío cuando to es $upstream |
edgehub_reported_properties_total |
target (actualizar destino)id |
Tipo: contador Total de llamadas de actualización de propiedades notificadas |
edgehub_message_size_bytes |
id |
Tipo: resumen Tamaño del mensaje de los clientes Los valores se pueden notificar como NaN si no se notifican nuevas medidas durante un período de tiempo determinado (actualmente 10 minutos); para el tipo summary , se emiten los contadores de _count y _sum correspondientes. |
edgehub_gettwin_duration_seconds |
source id |
Tipo: resumen Tiempo necesario para las operaciones GetTwin |
edgehub_message_send_duration_seconds |
from to from_route_output to_route_input |
Tipo: resumen Tiempo necesario para enviar un mensaje |
edgehub_message_process_duration_seconds |
from to priority |
Tipo: resumen Tiempo necesario para procesar un mensaje de la cola |
edgehub_reported_properties_update_duration_seconds |
target id |
Tipo: resumen Tiempo necesario para actualizar las propiedades notificadas |
edgehub_direct_method_duration_seconds |
from (autor de llamada)to (receptor) |
Tipo: resumen Tiempo necesario para resolver un mensaje directo |
edgehub_direct_methods_total |
from to |
Tipo: contador Número total de mensajes directos enviados |
edgehub_queue_length |
endpoint (origen del mensaje)priority (prioridad de cola) |
Tipo: medidor Longitud actual de la cola de edgeHub para una prioridad determinada |
edgehub_messages_dropped_total |
reason (no_route, ttl_expiry)from from_route_output |
Tipo: contador Número total de mensajes eliminados debido al motivo |
edgehub_messages_unack_total |
reason (storage_failure)from from_route_output |
Tipo: contador Número total de mensajes no confirmados debido a un error de almacenamiento |
edgehub_offline_count_total |
id |
Tipo: contador Número total de veces que edgeHub se desconectó |
edgehub_offline_duration_seconds |
id |
Tipo: resumen Tiempo que edgeHub estuvo sin conexión |
edgehub_operation_retry_total |
id operation (nombre de la operación) |
Tipo: contador Número total de veces que se reintentaron las operaciones de edgeHub |
edgehub_client_connect_failed_total |
id reason (sin autenticar) |
Tipo: contador Número total de veces que los clientes no pudieron conectarse a edgeHub |
El módulo edgeAgent genera las métricas siguientes:
Nombre | Dimensions | Descripción |
---|---|---|
edgeAgent_total_time_running_correctly_seconds |
module_name |
Tipo: medidor Cantidad de tiempo que se especificó el módulo en la implementación y que se encontraba en estado de ejecución. |
edgeAgent_total_time_expected_running_seconds |
module_name |
Tipo: medidor Cantidad de tiempo que se especificó el módulo en la implementación |
edgeAgent_module_start_total |
module_name , module_version |
Tipo: contador Número de veces que edgeAgent pidió a Docker iniciar el módulo |
edgeAgent_module_stop_total |
module_name , module_version |
Tipo: contador Número de veces que edgeAgent pidió a Docker detener el módulo |
edgeAgent_command_latency_seconds |
command |
Tipo: medidor Cuánto tiempo tardó Docker en ejecutar el comando especificado. Los comandos posibles son: crear, actualizar, quitar, iniciar, detener y reiniciar |
edgeAgent_iothub_syncs_total |
Tipo: contador Número de veces que edgeAgent intentó sincronizar su gemelo con iotHub, correctamente e incorrectamente. Este número incluye tanto el agente que solicita un gemelo como una hub que notifica de la actualización de un gemelo. |
|
edgeAgent_unsuccessful_iothub_syncs_total |
Tipo: contador Número de veces que edgeAgent no pudo sincronizar su gemelo con iotHub. |
|
edgeAgent_deployment_time_seconds |
Tipo: contador Cantidad de tiempo que se tardó en completar una nueva implementación después de recibir un cambio |
|
edgeagent_direct_method_invocations_count |
method_name |
Tipo: contador Número de veces que se llama a un método directo edgeAgent integrado, como Ping o Restart |
edgeAgent_host_uptime_seconds |
Tipo: medidor Cuánto tiempo ha estado activado el host |
|
edgeAgent_iotedged_uptime_seconds |
Tipo: medidor Cuánto tiempo ha estado iotedged en ejecución |
|
edgeAgent_available_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Tipo: medidor Cantidad de espacio restante en el disco |
edgeAgent_total_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Tipo: medidor Tamaño del disco |
edgeAgent_used_memory_bytes |
module_name |
Tipo: medidor Cantidad de RAM usada por todos los procesos |
edgeAgent_total_memory_bytes |
module_name |
Tipo: medidor RAM disponible |
edgeAgent_used_cpu_percent |
module_name |
Tipo: histograma Cantidad de CPU usada por todos los procesos |
edgeAgent_created_pids_total |
module_name |
Tipo: medidor Número de procesos o subprocesos que ha creado el contenedor |
edgeAgent_total_network_in_bytes |
module_name |
Tipo: medidor Número de bytes recibidos de la red |
edgeAgent_total_network_out_bytes |
module_name |
Tipo: medidor Número de bytes enviados a la red |
edgeAgent_total_disk_read_bytes |
module_name |
Tipo: medidor Número de bytes leídos del disco |
edgeAgent_total_disk_write_bytes |
module_name |
Tipo: medidor Número de bytes escritos en el disco |
edgeAgent_metadata |
edge_agent_version , experimental_features , host_information |
Tipo: medidor Metadatos generales sobre el dispositivo. El valor siempre es 0, la información está codificada en las etiquetas. Tenga en cuenta que experimental_features y host_information son objetos JSON. host_information tiene un aspecto similar a {"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"} . Tenga en cuenta ServerVersion es la versión de Docker, y Version es la versión del demonio de seguridad de IoT Edge. |