Logotipo de Zephyrnet

Los beneficios de OpenTelemetry para MQTT y la observabilidad de IoT

Fecha:

Los beneficios de OpenTelemetry para MQTT y la observabilidad de IoT
Ilustración: © IoT para todos

OpenTelemetry (también conocido como OTel) es una colección de herramientas, API y SDK que se utilizan para instrumentar, generar, recopilar y exportar datos de telemetría (métricas, registros y seguimientos) para su análisis. La Cloud Native Computing Foundation (CNCF) gestiona esta plataforma de observabilidad de código abierto, cuyo objetivo es proporcionar todos los componentes necesarios para observar sus servicios de manera neutral con respecto al proveedor.

OpenTelemetry permite a los desarrolladores crear canales de recopilación de datos de telemetría estandarizados e interoperables en una amplia gama de industrias. Facilita a los desarrolladores instrumentar su software con datos de telemetría, ya sea que estén trabajando en un proyecto interno pequeño o en un sistema distribuido a gran escala.

La observabilidad se está convirtiendo en un foco importante del desarrollo de software en muchos campos, pero especialmente en la industria de Internet de las cosas (IoT). Las implementaciones de IoT están hiperdistribuidas, con hasta millones de dispositivos conectados.

Debido a que los dispositivos de IoT tienen capacidades informáticas limitadas, es posible que no sea posible monitorearlos utilizando herramientas tradicionales. Aquí es donde entra en juego OpenTelemetry, que proporciona formas flexibles de recopilar telemetría de dispositivos de IoT y lograr observabilidad incluso en los entornos de IoT más complejos.

Presentaremos los conceptos básicos de OpenTelemetry y luego explicaremos cómo puede ayudar a monitorear y administrar las comunicaciones de IoT, en particular utilizando el Protocolo MQTT.

3 conceptos básicos de OpenTelemetry

#1: Métricas

Las métricas en OpenTelemetry son representaciones numéricas de datos medidos en intervalos de tiempo. Estas podrían ser mediciones de propiedades del sistema, como el uso de CPU y el consumo de memoria, o métricas comerciales personalizadas, como la cantidad de artículos en un carrito de compras.

Las métricas ayudan a los desarrolladores a monitorear el estado de sus aplicaciones y tomar decisiones informadas sobre la asignación de recursos, el ajuste del rendimiento y muchos otros aspectos del desarrollo y mantenimiento de aplicaciones.

# 2: registros

En OpenTelemetry, los registros son registros con marca de tiempo de eventos discretos. Estos eventos pueden ser cualquier cosa, desde un error o una excepción en su código, un evento del sistema o una operación del usuario.

Los registros son cruciales para comprender el comportamiento de una aplicación y para fines de depuración. Proporcionan una vista granular de los eventos que ocurren dentro de una aplicación, lo que facilita la identificación y solución de problemas.

#3: rastreo

Uno de los conceptos centrales de OpenTelemetry es el rastreo. Una traza en OpenTelemetry se define como la representación de una serie de eventos relacionados causalmente en un sistema.

Estos eventos pueden ser cualquier cosa, desde el inicio y el final de una solicitud, una consulta de base de datos o una llamada a un servicio externo. El seguimiento ayuda a los desarrolladores a comprender la secuencia de eventos que llevaron a un resultado particular, lo que facilita la depuración y optimización de sus aplicaciones.

Componentes de OpenTelemetry

Analicemos los componentes de OpenTelemetry. El siguiente diagrama ilustra cómo funcionan juntos.

Colector OpenTelemetry

OpenTelemetry Collector actúa como un puente independiente del proveedor entre sus aplicaciones y los servidores que procesan los datos. El recopilador puede ingerir, procesar y exportar datos de telemetría.

Actúa como intermediario, lo que le permite reducir la cantidad de puntos de contacto que sus aplicaciones deben establecer con su backend de telemetría. También estandariza sus datos para que puedan ser leídos por diferentes servidores de telemetría.

SDK de idiomas

OpenTelemetry proporciona SDK de lenguajes en varios lenguajes como Java, Python y Go, entre otros. Los SDK son necesarios para que los desarrolladores instrumenten su código para capturar datos de telemetría.

Proporcionan API para instrumentación manual y también incluyen bibliotecas de instrumentación automática. Los SDK también manejan la lógica de reintento y procesamiento por lotes, lo que facilita a los desarrolladores garantizar una entrega de datos confiable.

Agentes e Instrumentación

Los agentes son los componentes que instala en sus servicios para generar datos de telemetría. Instrumentan automáticamente su código, agregando seguimiento y recopilación de datos métricos con cambios mínimos en el código.

La instrumentación es el código que se inserta en sus aplicaciones para recopilar los datos. Puede ser manual, donde los desarrolladores lo añaden a su código, o automático, proporcionado por los agentes.

Exportadores

Los exportadores son los componentes que transmiten los datos de telemetría desde sus servicios a los backends. Transforman los datos a un formato que su backend pueda entender. OpenTelemetry proporciona varios exportadores para backends comunes como Jaeger y Prometheus, pero también puede escribir sus exportadores personalizados.

Beneficios de OpenTelemetry para implementaciones de IoT

OpenTelemetry se utiliza cada vez más para respaldar la observabilidad en entornos de IoT. A continuación se muestran varias formas en las que esta plataforma versátil puede beneficiar a las organizaciones que gestionan implementaciones de IoT a gran escala:

  • Observabilidad mejorada: Al integrar los sistemas de Internet de las cosas (IoT) con OpenTelemetry, puede recopilar datos de varias fuentes, incluidos los dispositivos conectados, para obtener una visión holística de la funcionalidad del sistema. Esta visión integral es invaluable para identificar cuellos de botella, fallas potenciales y áreas de optimización.
  • Solución de problemas mejorada: OpenTelemetry también ayuda en la resolución de problemas al proporcionar información detallada sobre las operaciones del sistema. Cuando surgen problemas, puede resultar difícil identificar la causa raíz, especialmente en sistemas distribuidos. Sin embargo, los datos de seguimiento y registro de OpenTelemetry pueden ayudar a identificar el punto de falla y mantener el tiempo de actividad del sistema.
  • Supervisión del rendimiento: La supervisión del rendimiento es otro beneficio importante del uso de OpenTelemetry. Permite a los desarrolladores realizar un seguimiento del rendimiento de sus aplicaciones en tiempo real, garantizando que cumplan con los estándares de rendimiento deseados. Si el rendimiento cae, los desarrolladores pueden utilizar las métricas detalladas proporcionadas por OpenTelemetry para identificar la causa e implementar las optimizaciones necesarias.
  • Información de seguridad: OpenTelemetry proporciona valiosos conocimientos de seguridad cuando se utiliza para rastrear eventos relacionados con la seguridad, como intentos de inicio de sesión. Ganar visibilidad sobre métricas de seguridad y analizarlos puede ayudar a identificar violaciones o vulnerabilidades de seguridad, responder a ellas y proteger los sistemas de IoT.
  • Facilitar el rastreo distribuido: OpenTelemetry facilita el seguimiento distribuido, una característica crucial en la arquitectura de microservicios. El seguimiento distribuido ayuda a los desarrolladores a comprender el recorrido de una solicitud a medida que viaja a través de varios microservicios. Esto es fundamental para diagnosticar problemas y optimizar la interacción del servicio en entornos de IoT.

Usando OpenTelemetry con MQTT

MQTT (transporte de telemetría de Message Queue Server) es un protocolo de mensajería ligero y popular que se utiliza ampliamente en implementaciones de IoT. La fortaleza de MQTT radica en su simplicidad y eficiencia, lo que lo hace muy adecuado para escenarios donde el ancho de banda de la red es escaso.

Cuando se combina con OpenTelemetry, MQTT obtiene el poder de un marco de observabilidad integral. Así es como OpenTelemetry complementa MQTT:

  • Enriquecimiento de datos: OpenTelemetry puede enriquecer los paquetes de datos transmitidos a través de MQTT con metadatos adicionales. Esto podría incluir información como identificadores de dispositivos, etiquetas de ubicación y más. Estos datos enriquecidos proporcionan una visión más contextualizada de las operaciones, lo que facilita la obtención de información significativa.
  • Recopilación de datos centralizada: OpenTelemetry puede recopilar datos de múltiples corredores MQTT y agregarlos en un almacén de datos centralizado. Esto es particularmente útil para implementaciones de IoT a gran escala que involucran a múltiples intermediarios que difunden mensajes a numerosos dispositivos.
  • Monitoreo en tiempo real: Al utilizar OpenTelemetry, las organizaciones pueden habilitar el monitoreo en tiempo real de los mensajes MQTT. Esta característica ayuda a identificar retrasos o cuellos de botella en la entrega de mensajes, lo cual es vital para aplicaciones de IoT de misión crítica donde la latencia puede tener repercusiones significativas.
  • Flexibilidad de exportación de datos: Con los diversos exportadores de OpenTelemetry, puede enviar sus datos de telemetría a una variedad de servidores de datos para su posterior análisis. Por ejemplo, puede exportar datos desde MQTT a soluciones basadas en la nube como Azure Monitor o una configuración local como Grafana.
  • Análisis e información: Al combinar las capacidades livianas de transmisión de datos de MQTT con los sólidos análisis de OpenTelemetry, las organizaciones pueden realizar análisis profundos de sus datos. Este binomio permite optimizar el rendimiento de los dispositivos, realizar mantenimiento predictivo e incluso identificar tendencias del mercado en función del comportamiento de los usuarios.

MQTT con OpenTelemetry: métricas clave para monitorear

OpenTelemetry puede proporcionar información valiosa sobre el rendimiento de un entorno MQTT. Veamos las métricas clave a monitorear.

Métricas del cliente

Las métricas de los clientes son cruciales ya que brindan información sobre el desempeño de cada cliente MQTT. Estos incluyen métricas como la cantidad de mensajes publicados, la cantidad de mensajes recibidos y la cantidad de conexiones activas. Monitorear estas métricas puede ayudarlo a identificar cualquier cliente que tenga un rendimiento deficiente o esté causando problemas en su sistema.

Métricas de mensajes

Las métricas de mensajes le brindan una descripción general del flujo general de mensajes en su sistema. Estos incluyen métricas como la cantidad total de mensajes enviados y recibidos y el tamaño de los mensajes.

Al monitorear estas métricas, puede obtener información sobre la carga de su sistema e identificar posibles cuellos de botella o problemas.

Métricas del corredor

Las métricas de los corredores brindan información sobre el desempeño de su corredor MQTT. Estos incluyen métricas como la cantidad de clientes conectados, la cantidad de suscripciones y el uso de memoria del corredor.

Monitorear estas métricas puede ayudarlo a garantizar que su corredor tenga un desempeño óptimo e identificar cualquier problema potencial con anticipación.

Métricas de latencia

Las métricas de latencia son cruciales para comprender el rendimiento de su sistema. Estos incluyen métricas como la latencia de un extremo a otro y la latencia de operaciones individuales. La alta latencia puede afectar el rendimiento y la confiabilidad de su sistema, por lo que monitorear estas métricas puede ayudarlo a identificar y abordar cualquier problema de manera temprana.

Métricas de errores y fallas

Las métricas de errores y fallas son esenciales para comprender la confiabilidad de su sistema. Estos incluyen métricas como la cantidad de mensajes descartados, la cantidad de desconexiones y la cantidad de errores arrojados por sus clientes o intermediarios.

Monitorear estas métricas puede ayudarlo a detectar y solucionar problemas tempranamente, reduciendo el impacto en el rendimiento y la confiabilidad de su sistema.

punto_img

Información más reciente

punto_img

vidacienciav

café vc

café vc

vidacienciav