Con aportaciones de Dan Gomez Blanco (New Relic). Si estás desarrollando software autoalojado o un producto SaaS, los usuarios acabarán pidiendo enviar sus logs, trazas y métricas a su propio stack de observabilidad. Encerrarlos en paneles integrados o limitar las exportaciones a ciertos proveedores genera fricciones innecesarias. En cambio, dar soporte a la exportación a cualquier backend compatible con Open Telemetry (OTel) es una práctica neutral respecto al proveedor y preparada para el futuro, que da a los usuarios la libertad de elegir su stack de observabilidad.
Esta publicación explica cómo diseñar tu producto para que los usuarios puedan exportar logs, trazas y métricas a un backend OTel cuando lo deseen. Open Telemetry define cuatro tipos de señales transmitidas mediante el protocolo estándar Open Telemetry Protocol (OTLP): logs (registros de eventos, logs de peticiones o accesos y logs de aplicación con marcas de tiempo y metadatos), trazas (trazas distribuidas y spans que permiten a los usuarios ver el flujo de las peticiones entre servicios y correlacionarlas con los logs), métricas (contadores, medidores e histogramas, como tasas de peticiones, latencia o tasas de error) y perfiles (muestras que muestran dónde consumen recursos las aplicaciones durante su ejecución). La historia de exportación es la misma para las tres señales: permite que los usuarios configuren un endpoint OTLP y envíen la telemetría a él. Puedes admitir una, dos o las tres señales según lo que genere tu producto. Muchas plataformas que soportan la exportación OTel admiten al menos trazas y logs, y cada vez más incluyen soporte para métricas. Diseñar para las tres desde el principio evita tener que rehacer el trabajo más adelante.
Una buena estrategia de exportación tiene algunas propiedades claras para cada señal que soportes: neutralidad respecto al proveedor, sin necesidad de desarrollo personalizado profundo, conservación del contexto enriquecido y soporte para las convenciones semánticas. Hay dos contextos que considerar: ¿dónde se ejecuta tu producto? En el caso de software autoalojado, instrumenta tu producto con Open Telemetry y permite que los clientes configuren un endpoint mediante variables de entorno o un archivo de configuración. Para plataformas en la nube, añade una función de plataforma que gestione las exportaciones. Ejemplos de ello son Keycloak y Kuma.
Fuente: Hacker News · Resumido por HeadlinesBriefing