Azure IoT Edge

Supported OS Linux Windows Mac OS

Versión de la integración6.1.0

Información general

Azure IoT Edge es un servicio totalmente gestionado para desplegar cargas de trabajo en la nube que se ejecuten en dispositivos Edge de Internet de las Cosas (IoT) utilizando contenedores estándar.

Utiliza la integración de Datadog y Azure IoT Edge para recopilar métricas y el estado de los dispositivos IoT Edge.

Nota: Este integración requiere un tiempo de ejecución de IoT Edge versión 1.0.10 o superior.

Configuración

Sigue las instrucciones siguientes para instalar y configurar este check para un dispositivo IoT Edge que se ejecuta en un host de dispositivo.

Instalación

El check de Azure IoT Edge se incluye en el paquete del Datadog Agent.

No es necesaria ninguna instalación adicional en tu dispositivo.

Configuración

Configura el dispositivo Edge de IoT para que el Agent se ejecute como un módulo personalizado. Sigue la documentación de Microsoft sobre implementación de módulos de Azure IoT Edge para obtener información sobre cómo instalar y trabajar con módulos personalizados para Azure IoT Edge.

Sigue los pasos que se indican a continuación para configurar el dispositivo de IoT Edge, los módulos del tiempo de ejecución y el Datadog Agent para empezar a recopilar métricas de IoT Edge.

  1. Configura el módulo del tiempo de ejecución de Edge Agent de la siguiente manera:

    • La versión de la imagen debe ser 1.0.10 o superior.

    • En “Create Options” (Crear opciones), añade las siguientes Labels. Edita la etiqueta com.datadoghq.ad.instances según proceda. Consulta el azure_iot_edge.d/conf.yaml de ejemplo para conocer todas las opciones de configuración disponibles. Consulta la documentación sobre Autodiscovery de integraciones de Docker para obtener más información sobre la configuración de la integración basada en etiquetas.

      "Labels": {
          "com.datadoghq.ad.check_names": "[\"azure_iot_edge\"]",
          "com.datadoghq.ad.init_configs": "[{}]",
          "com.datadoghq.ad.instances": "[{\"edge_hub_prometheus_url\": \"http://edgeHub:9600/metrics\", \"edge_agent_prometheus_url\": \"http://edgeAgent:9600/metrics\"}]"
      }
      
  2. Configura el módulo del tiempo de ejecución de Edge Hub de la siguiente manera:

    • La versión de la imagen debe ser 1.0.10 o superior.
  3. Instala y configura el Datadog Agent como módulo personalizado:

    • Configura el nombre del módulo. Por ejemplo: datadog-agent.

    • Configura la URL de la imagen del Agent. Por ejemplo: datadog/agent:7.

    • En “Variables de entorno”, configura tu DD_API_KEY. También puedes establecer aquí una configuración adicional del Agent (consulta Variables de entorno del Agent).

    • En “Opciones para crear el contenedor”, introduce la siguiente configuración en función del sistema operativo de tu dispositivo. Nota: NetworkId debe corresponder al nombre de la red configurado en el archivo config.yaml del dispositivo.

      • Linux:
        {
            "HostConfig": {
                "NetworkMode": "default",
                "Env": ["NetworkId=azure-iot-edge"],
                "Binds": ["/var/run/docker.sock:/var/run/docker.sock"]
            }
        }
        
      • Windows:
        {
            "HostConfig": {
                "NetworkMode": "default",
                "Env": ["NetworkId=nat"],
                "Binds": ["//./pipe/iotedge_moby_engine:/./pipe/docker_engine"]
            }
        }
        
    • Guarda el módulo personalizado del Datadog Agent.

  4. Guarda e implementa los cambios en la configuración de tu dispositivo.

Recopilación de logs

  1. La recopilación de logs está desactivada de forma predeterminada en el Datadog Agent, actívala configurando tu módulo personalizado del Datadog Agent:

    • En “Variables de entorno”, configura la variable de entorno DD_LOGS_ENABLED:

      DD_LOGS_ENABLED: true
      
  2. Configura los módulos de Edge Agent y Edge Hub: en “Crear opciones”, añade la siguiente etiqueta:

    "Labels": {
        "com.datadoghq.ad.logs": "[{\"source\": \"azure.iot_edge\", \"service\": \"<SERVICE>\"}]",
        "...": "..."
    }
    

    Cambia el service en función de tu entorno.

    Repite esta operación para cualquier módulo personalizado para el que desees recopilar logs.

  3. Guarda e implementa los cambios en la configuración de tu dispositivo.

Validación

Una vez que el Agent se haya desplegado en el dispositivo, ejecuta el subcomando de estado del Agent y busca azure_iot_edge en la sección Checks.

Datos recopilados

Métricas

azure.iot_edge.edge_agent.available_disk_space_bytes
(gauge)
Cantidad de espacio que queda en el disco `disk_name.
Se muestra como byte
azure.iot_edge.edge_agent.total_disk_write_bytes
(count)
Cantidad total de bytes escritos en el disco por el módulo module_name.
Se muestra como byte
azure.iot_edge.edge_agent.total_memory_bytes
(gauge)
Cantidad total de RAM disponible para el módulo module_name.
Se muestra como byte
azure.iot_edge.edge_agent.total_network_in_bytes
(count)
Cantidad total de bytes recibidos de la red por el módulo module_name.
Se muestra como byte
azure.iot_edge.edge_agent.total_network_out_bytes
(count)
Cantidad total de bytes enviados a la red por el módulo module_name.
Se muestra como byte
azure.iot_edge.edge_agent.total_time_expected_running_seconds
(gauge)
La cantidad de tiempo que el módulo module_name se especificó en el despliegue.
azure.iot_edge.edge_agent.total_time_running_correctly_seconds
(gauge)
La cantidad de tiempo que el módulo module_name se especificó en el despliegue y estuvo en estado de ejecución.
azure.iot_edge.edge_agent.unsuccessful_iothub_syncs_total
(count)
Número total de veces que el Agent de Edge no ha podido sincronizar su gemelo con IoT Hub.
azure.iot_edge.edge_agent.used_cpu_percent.count
(gauge)
Recuento del porcentaje de CPU utilizado por todos los procesos en el módulo module_name.
azure.iot_edge.edge_agent.used_cpu_percent.quantile
(gauge)
Cuantil del porcentaje de CPU utilizado por todos los procesos en el módulo module_name.
Se muestra como porcentaje
azure.iot_edge.edge_agent.used_cpu_percent.sum
(gauge)
Suma del porcentaje de CPU utilizado por todos los procesos en el módulo module_name.
Se muestra como porcentaje
azure.iot_edge.edge_agent.used_memory_bytes
(gauge)
Cantidad de RAM utilizada por todos los procesos en el módulo module_name.
Se muestra como byte
azure.iot_edge.edge_hub.client_connect_failed_total
(count)
Número total de veces que los clientes no han podido conectarse a Edge Hub.
azure.iot_edge.edge_hub.direct_method_duration_seconds.count
(gauge)
Recuento del tiempo que se tarda en resolver un mensaje directo.
azure.iot_edge.edge_hub.direct_method_duration_seconds.quantile
(gauge)
Cuantil del tiempo que se tarda en resolver un mensaje directo.
Se muestra como segundo
azure.iot_edge.edge_hub.direct_method_duration_seconds.sum
(gauge)
Suma del tiempo necesario para resolver un mensaje directo.
Se muestra como segundo
azure.iot_edge.edge_hub.direct_methods_total
(count)
Número total de mensajes directos enviados.
azure.iot_edge.edge_hub.gettwin_duration_seconds.count
(gauge)
Recuento del tiempo empleado en las operaciones get twin.
azure.iot_edge.edge_hub.gettwin_duration_seconds.quantile
(gauge)
Cuantil del tiempo empleado en las operaciones get twin.
Se muestra como segundo
azure.iot_edge.edge_hub.gettwin_duration_seconds.sum
(gauge)
Suma del tiempo empleado en las operaciones get twin.
Se muestra como segundo
azure.iot_edge.edge_hub.gettwin_total
(count)
Número total de llamadas a GetTwin.
azure.iot_edge.edge_hub.message_process_duration_seconds.count
(gauge)
Recuento del tiempo que se tarda en procesar un mensaje de la cola.
azure.iot_edge.edge_hub.message_process_duration_seconds.quantile
(gauge)
Cuantil del tiempo que se tarda en procesar un mensaje de la cola.
Se muestra como segundo
azure.iot_edge.edge_hub.message_process_duration_seconds.sum
(gauge)
Suma del tiempo que se tarda en procesar un mensaje de la cola.
Se muestra como segundo
azure.iot_edge.edge_hub.message_send_duration_seconds.count
(gauge)
Recuento del tiempo necesario para enviar un mensaje.
azure.iot_edge.edge_hub.message_send_duration_seconds.quantile
(gauge)
Cuantil del tiempo que se tarda en enviar un mensaje.
Se muestra como segundo
azure.iot_edge.edge_hub.message_send_duration_seconds.sum
(gauge)
Suma del tiempo empleado en enviar un mensaje.
Se muestra como segundo
azure.iot_edge.edge_hub.message_size_bytes.count
(gauge)
Recuento del tamaño de los mensajes de los clientes.
azure.iot_edge.edge_hub.message_size_bytes.quantile
(gauge)
Cuantil del tamaño de los mensajes de los clientes.
Se muestra como byte
azure.iot_edge.edge_hub.message_size_bytes.sum
(gauge)
Suma del tamaño de los mensajes de los clientes.
Se muestra como byte
azure.iot_edge.edge_hub.messages_dropped_total
(count)
Número total de mensajes eliminados por reason.
azure.iot_edge.edge_hub.messages_received_total
(count)
Número total de mensajes recibidos de los clientes.
azure.iot_edge.edge_hub.messages_sent_total
(count)
Número total de mensajes enviados a los clientes del flujo ascendente.
azure.iot_edge.edge_hub.messages_unack_total
(count)
Número total de mensajes deshechos por fallo de almacenamiento.
azure.iot_edge.edge_hub.offline_count_total
(count)
Número total de veces que Edge Hub se desconectó.
azure.iot_edge.edge_hub.offline_duration_seconds.count
(gauge)
Recuento del tiempo que Edge Hub estuvo desconectado.
azure.iot_edge.edge_hub.offline_duration_seconds.quantile
(gauge)
Cuantil de tiempo que Edge Hub estuvo desconectado.
Se muestra como segundo
azure.iot_edge.edge_hub.offline_duration_seconds.sum
(gauge)
Suma del tiempo que Edge Hub estuvo desconectado.
Se muestra como segundo
azure.iot_edge.edge_hub.operation_retry_total
(count)
Número total de veces que se han reintentado las operaciones Edge.
azure.iot_edge.edge_hub.queue_length
(gauge)
Longitud actual de la cola del Edge Hub para una determinada priority.
azure.iot_edge.edge_hub.reported_properties_total
(count)
Total de llamadas de actualización de propiedades notificadas.
azure.iot_edge.edge_hub.reported_properties_update_duration_seconds.count
(gauge)
Recuento del tiempo necesario para actualizar las propiedades notificadas.
azure.iot_edge.edge_hub.reported_properties_update_duration_seconds.quantile
(gauge)
Cuantil del tiempo que se tarda en actualizar las propiedades notificadas.
Se muestra como segundo
azure.iot_edge.edge_hub.reported_properties_update_duration_seconds.sum
(gauge)
Suma del tiempo necesario para actualizar las propiedades notificadas.
Se muestra como segundo

Eventos

Azure IoT Edge no incluye ningún evento.

Checks de servicio

azure.iot_edge.edge_agent.prometheus.health

Devuelve CRITICAL si el Agent no puede llegar al endpoint de Prometheus de métricas de Edge Agent. En caso contrario, devuelve OK.

Estados: ok, critical

azure.iot_edge.edge_hub.prometheus.health

Devuelve CRITICAL si el Agent no puede llegar al endpoint de Prometheus de métricas de Edge Hub. En caso contrario, devuelve OK.

Estados: ok, critical

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el soporte de Datadog.

Referencias adicionales