Acceso a métricas integradas en Azure IoT Edge

Se aplica a:marca de verificación de IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.4 es la versión admitida. 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.

Pasos siguientes