Soporte de OpenTelemetry para el seguimiento en conectores de integración
Resumen
OpenTelemetry (OTel) es un marco de observabilidad de código abierto que ayuda a crear y gestionar datos de telemetría, incluidos seguimientos, métricas y registros. Para obtener más información sobre el uso de OpenTelemetry en ThingWorx Platform, consulte
Observabilidad de ThingWorx.
Los conectores de integración permiten conectarse a servicios de ThingWorx Platform y productos de otras empresas, y acceder a ellos. Para obtener más información, consulte
Conectores de integración.
A partir de Integration Runtime 8.1.2, está disponible el soporte de
seguimiento de OpenTelemetry (OTel).
El seguimiento es un componente central de OpenTelemetry que captura el ciclo de vida de una solicitud a medida que se mueve a través de servicios y componentes. Cada operación o unidad de trabajo se representa como un tramo. Los tramos se vinculan entre sí para formar un seguimiento, lo que proporciona información sobre el recorrido completo de la solicitud. El seguimiento ayuda a identificar cuellos de botella de rendimiento, problemas de latencia y dependencias del servicio. El rastreo de OpenTelemetry en IR estandariza cómo se recopilan y exportan los datos de seguimiento, lo que permite una integración perfecta con herramientas de observabilidad, como Sumo Logic o Datadog.
A medida que las implementaciones de ThingWorx Platform se amplían, el diagnóstico y la comprensión de cómo fluyen las llamadas de servicio en el ecosistema se vuelven complejos. Las invocaciones de servicio a menudo atraviesan múltiples saltos (por ejemplo, a través de servicios de plataforma, servicios de IR, adaptadores de protocolo y lógica de dispositivo Edge) sin un mecanismo coherente para generar, propagar y correlacionar los ID de seguimiento y los ID de intervalo. Entre los desafíos se incluyen los siguientes:
• Seguimiento de una única solicitud en ThingWorx Platform e IR
• Identificación de latencia o fallos en la cadena de llamadas
La implementación del seguimiento de OpenTelemetry proporciona una visibilidad estandarizada e independiente del proveedor de los flujos de solicitudes en todo el ecosistema de ThingWorx Platform. El seguimiento de OpenTelemetry ofrece las siguientes ventajas:
• Trazabilidad completa de las llamadas de servicio en toda la plataforma
• Depuración y análisis de causas raíz más rápidos
• Análisis y supervisión del rendimiento mejorados
• Observabilidad de extremo a extremo en entornos de producción
• Datos de seguimiento estandarizados en todos los componentes
Funcionamiento del seguimiento en IR
ThingWorx Platform se comunica con Integration Runtime mediante el protocolo AlwaysOn. IR reenvía las solicitudes a sistemas externos como solicitudes HTTP. El seguimiento entre ThingWorx Platform e IR requiere lo siguiente:
• Transferencia de contexto de seguimiento (por ejemplo, TraceID y SpanID) en los mensajes de protocolo AlwaysOn desde ThingWorx Platform a IR
• Reenvío del mismo contexto de seguimiento que las cabeceras HTTP desde IR a sistemas externos
• Garantía de la continuidad del seguimiento desde ThingWorx Platform a IR y, a continuación, desde IR a una API externa
Este enfoque permite crear una ruta completamente rastreable entre todas las capas de mensajería y HTTP.
En el siguiente diagrama se muestra la generación de una solicitud en una configuración de ThingWorx Platform con Integration Runtime (IR), donde Windchill es un ejemplo de sistema externo al que se envía el contexto de seguimiento desde IR. Windchill lee el contexto de seguimiento, genera sus propios intervalos y los combina con el contexto de seguimiento existente. A continuación, Windchill exporta los datos de telemetría, como Application Performance Monitoring (APM) y seguimientos, a la plataforma de observabilidad (por ejemplo, Datadog) a través de su agente.
| Los atributos de tramo pueden diferir según el back-end de observabilidad al que se exportan los seguimientos. Por ejemplo, la asignación de nombres o la codificación de los campos de código de estado pueden variar. |
En los pasos siguientes se explica el flujo de una solicitud en el seguimiento de OTel en Integration Runtime, con ejemplos de Windchill como sistema de terceros y Datadog como plataforma de observabilidad:
1. La solicitud se inicia en IR.
Cuando se recibe una solicitud de ThingWorx Platform, IR procesa la solicitud y genera períodos de seguimiento. IR exporta estos tramos de seguimiento al selector OpenTelemetry mediante el protocolo OTLP gPRC sobre el cifrado mTLS en el puerto 4317.
2. El selector OpenTelemetry agrega la telemetría.
El selector OpenTelemetry recibe seguimientos de ThingWorx Platform e IR. El selector OpenTelemetry reenvía la telemetría a plataformas de observabilidad a través del protocolo HTTP OTLP con cifrado TLS para una comunicación segura.
3. La solicitud fluye entre los componentes.
La solicitud fluye de ThingWorx Platform a IR y luego a Windchill. Todos los saltos se producen a través de canales cifrados con TLS.
4. Se propaga el contexto de seguimiento.
IR inyecta la cabecera traceparent en la solicitud enviada a Windchill. Windchill lee el contexto de seguimiento y continúa con el mismo seguimiento.
5. La telemetría se exporta desde Windchill.
Windchill genera sus propios tramos. Los combina con el contexto de seguimiento existente y exporta la telemetría a una plataforma de observabilidad externa.
6. La solicitud de extremo a extremo está visible en Datadog.
Datadog muestra el seguimiento distribuido completo desde ThingWorx Platform a IR a Windchill. Los tiempos, las dependencias y los puntos de fallo son visibles en todo el ecosistema.
Temas relacionados