Nube e infraestructura

OpenChoreo utiliza OpenTelemetry para persistir eventos y trazas de Kubernetes

El proyecto CNCF Sandbox OpenChoreo integra el OpenTelemetry Collector para ofrecer trazabilidad distribuida y almacenamiento a largo plazo de los eventos de Kubernetes dentro de su Internal Developer Platform.

Un cubo de vidrio con circuitos brillantes que representan el flujo de datos y la observabilidad.
Ilustración generada para este artículo

Traducido automáticamente del original en inglés.

OpenChoreo, un proyecto del CNCF Sandbox, ha integrado el OpenTelemetry Collector en su Internal Developer Platform para resolver desafíos comunes de observabilidad. Lanzada a finales de octubre de 2026, esta actualización permite a los equipos de plataforma capturar trazas distribuidas y persistir eventos de Kubernetes que, de otro modo, desaparecerían del API server.

Qué ha ocurrido

Las Internal Developer Platforms buscan ofrecer una ruta simplificada desde el código hasta la producción, pero la observabilidad suele seguir siendo una carga fragmentada. Los desarrolladores se enfrentan a una proliferación de herramientas, requisitos complejos de integración y paneles de control desconectados. OpenChoreo aborda esto integrando la observabilidad directamente en su arquitectura, utilizando el OpenTelemetry Collector como motor central para dos funciones críticas: trazabilidad distribuida y eventos persistentes de Kubernetes.

La plataforma está estructurada en planos distintos que se ejecutan sobre Kubernetes. Un plano de control gestiona el estado, mientras que los planos de datos manejan las cargas de trabajo. Un plano de flujo de trabajo opcional gestiona compilaciones y pruebas, y un plano dedicado de observabilidad recopila datos de telemetría. Esta separación permite que la capa de observabilidad opere de forma independiente, recopilando logs, métricas, trazas y eventos sin interferir con el rendimiento de la aplicación. El sistema utiliza una arquitectura hexagonal, exponiendo APIs estándar para la ingesta e interfaces de adaptador para los backends de almacenamiento, lo que permite a los equipos cambiar proveedores como OpenSearch o AWS X-Ray mediante Helm charts en lugar de cambios en el código.

Cómo funciona

Para la trazabilidad distribuida, OpenChoreo aprovecha los SDKs estándar de OpenTelemetry. Las aplicaciones exportan spans a través de OTLP hacia un Collector local en cada plano de datos. La tubería primero recibe estos spans, luego los enriquece utilizando el procesador k8sattributes. Este paso asocia los spans con sus pods de origen y adjunta metadatos de Kubernetes, mapeando detalles técnicos a conceptos de OpenChoreo como proyecto y entorno. Un procesador tail_sampling evalúa entonces trazas completas antes de decidir cuáles conservar, asegurando decisiones de muestreo conscientes del contexto. Finalmente, las trazas enriquecidas se exportan a un collector central o directamente a backends en la nube.

Los eventos de Kubernetes presentan un desafío diferente porque son efímeros y no están vinculados a pods específicos de la misma manera que las trazas. El API server normalmente los retiene solo durante una hora. OpenChoreo despliega una distribución de Collector diseñada específicamente para resolver esto. Un collector de réplica única utiliza el receptor k8s_events para monitorear eventos de todo el clúster. Un procesador personalizado, k8seventenrich, busca etiquetas y anotaciones de objetos desde cachés de informers en memoria, añadiéndolas como atributos de recurso sin consultar repetidamente al API server. Estos eventos enriquecidos se agrupan en lotes y se envían a backends de logs duraderos, haciéndolos disponibles para análisis post-incidente mucho después de que expire el período de retención predeterminado.

Detalles clave

  • OpenChoreo es una Internal Developer Platform modular y de código abierto, actualmente en el CNCF Sandbox.
  • El plano de observabilidad utiliza una arquitectura hexagonal con APIs de adaptador para intercambiar backends de almacenamiento.
  • La trazabilidad distribuida usa tail_sampling para tomar decisiones de retención basadas en el contexto completo de la traza.
  • Un procesador personalizado k8seventenrich añade etiquetas de Kubernetes y referencias de propietario a los eventos utilizando cachés en memoria.
  • Los backends de trazabilidad soportados incluyen OpenSearch, OpenObserve, AWS X-Ray, Azure Application Insights y Google Cloud Trace.
  • La distribución del collector de eventos soporta exportadores para OpenSearch, OTLP, AWS CloudWatch Logs y salidas de depuración.

Por qué importa

Para los ingenieros de plataforma, el beneficio principal es la reducción de la fricción operativa. Al estandarizarse en OpenTelemetry, OpenChoreo evita el lock-in de proveedores y reduce la necesidad de código de instrumentación personalizado. La capacidad de intercambiar backends vía configuración significa que los equipos pueden adaptarse a cambios en requisitos de costos o cumplimiento normativo sin refactorizar la plataforma. Además, la integración de agentes de IA mediante servidores MCP permite que las herramientas de depuración automatizadas accedan a los mismos datos ricos de trazas que ven los desarrolladores humanos, acelerando potencialmente la resolución de incidentes.

La persistencia de los eventos de Kubernetes es particularmente valiosa para diagnosticar problemas a nivel de infraestructura. Problemas como el throttling por límites de recursos o fallos de programación a menudo no dejan rastro en los logs de la aplicación. Al capturar y enriquecer estos eventos, los equipos de plataforma ganan visibilidad sobre el ciclo de vida de los despliegues y jobs. Esto transforma el ruido efímero del clúster en una pista de auditoría confiable, ayudando a los equipos a entender por qué falló un despliegue o por qué un servicio escaló inesperadamente durante picos de tráfico.

Qué puedes hacer

  • Despliega la demo de microservicios GCP en OpenChoreo para probar la trazabilidad distribuida entre múltiples servicios.
  • Instala el módulo observability-events-otel-collector usando el Helm chart proporcionado para comenzar a capturar eventos persistentes.
  • Configura el procesador tail_sampling para retener solo trazas con errores o alta latencia, optimizando los costos de almacenamiento.
  • Usa el procesador k8sattributes para mapear metadatos crudos de Kubernetes a tus etiquetas internas de proyecto y entorno.
  • Explora las pestañas Traces y Events del portal de OpenChoreo para correlacionar el rendimiento de la aplicación con actividades a nivel de clúster.
  • Revisa el código del procesador personalizado k8seventenrich si necesitas extender la lógica de enriquecimiento de eventos para objetos específicos de tu clúster.
  • #opentelemetry
  • #kubernetes
  • #observability
  • #platform engineering
  • #cncf

Herramientas de la Tienda de Bytechap

Seguir leyendo

Todos los artículos