New Relic ejecuta una de las principales implementaciones de Kafka del mundo y opera cientos de servicios que producen y/o consumen datos desde Kafka. Desde el principio, el equipo SRE de Streaming invirtió en sentar las bases de un entorno Kafka fiable para New Relic y sus clientes. Por ejemplo, los retrasos en Kafka pueden correlacionarse directamente con demoras o fallos en la ingesta de telemetría, lo que puede provocar que se pierdan o se retrasen alertas dirigidas a los clientes, y demuestra que la fiabilidad de Kafka sigue siendo esencial.
Este equipo tiene como misión encargarse de las operaciones de Kafka, y se centró en la creación de un Nerdpack personalizado para la observabilidad de Kafka. Este Nerdpack altamente personalizado de New Relic, repleto de métricas personalizadas, se convirtió en una herramienta indispensable que fue compartida internamente con más de 50 equipos que dependen de los servicios de Kafka. El valor derivado de estos conocimientos operativos fue tan relevante que impulsó directamente el desarrollo de funcionalidades de Kafka y observabilidad orientadas al cliente.
La principal motivación detrás de la creación de esta extensa observabilidad de Kafka fue eliminar los puntos ciegos detectados durante los incidentes. Sin datos detallados, diagnosticar las causas raíz e identificar rápidamente problemas recurrentes era un gran desafío. El objetivo era “aumentar significativamente el nivel de observabilidad” para comprender el comportamiento de Kafka de forma exhaustiva, antes, durante y después de los incidentes.
El Nerdpack personalizado de Kafka ofrece información detallada sobre una amplia variedad de métricas. El equipo SRE de Streaming utiliza esta información para:
- Alertar sobre retrasos de Kafka para mantener la integridad de la ingesta: la función más importante que desempeña New Relic para el equipo es garantizar la integridad de la ingesta de telemetría mediante alertas basadas en métricas de Kafka, como los retrasos en Kafka. Estos retrasos se correlacionan directamente con demoras o fallos en la ingesta de telemetría, lo que puede provocar que se pierdan o se retrasen alertas cruciales para los clientes. Esto supone un riesgo significativo para el negocio, ya que los clientes dependen de alertas en el momento preciso para conocer el estado de sus operaciones. Las alertas integrales sobre el retraso de Kafka permiten escalar la ingesta y optimizar el rendimiento.
- Maximizar la capacidad de respuesta: New Relic permite que el equipo responda con agilidad ante problemas de procesamiento en Kafka, lo que facilita una remediación rápida y minimiza el impacto en los clientes.
- Comprender el comportamiento de los clientes de Kafka: identificación de configuraciones incorrectas, desbordamiento de búferes y clientes bloqueados.
- Monitorear la salud del servidor: monitoreo del rendimiento de los brokers y del uso de recursos.
- Observar los patrones de solicitudes: análisis de los cambios en los patrones de solicitudes de los clientes para anticipar y mitigar posibles problemas.
La implementación de la observabilidad de Kafka ha tenido un gran impacto en la eficiencia operativa y la fiabilidad de New Relic, a saber:
- Reducción considerable del tiempo dedicado a la resolución de problemas: con datos de observabilidad detallados al alcance de la mano, el equipo de SRE de Streaming puede diagnosticar incidentes del cliente Kafka en cuestión de minutos, resolviendo los problemas en un tiempo total de minutos o segundos de impacto en el sistema. Una diferencia clara frente a la hora que podría llevar sin este nivel de detalle.
- Nerdpacks como runbooks dinámicos: una innovación clave impulsada por el equipo SRE es el uso de los Nerdpacks de New Relic como runbooks dinámicos. Estas aplicaciones personalizadas integran instrucciones escritas con resultados de consultas en vivo y visualizaciones. Por ejemplo, los problemas de bloqueo en los pipelines de Kafka pueden diagnosticarse mediante vistas en el Nerdlet, que además genera automáticamente el comando necesario para extender la retención de datos, transformando un proceso manual de varios pasos en una única acción de copiar y pegar. Esto reduce considerablemente los cambios de contexto y acelera la resolución.
- Información valiosa para ejecutivos: directores y ejecutivos de New Relic utilizan el Nerdlet de observabilidad de Kafka para evaluar rápidamente el estado general del retraso en todos los clústeres o entornos de Kafka, lo que les proporciona una visión global del rendimiento de la ingesta y de la escalabilidad.
- Escalado automático inteligente para optimizar el rendimiento y los costos:el equipo SRE de Streaming ha desarrollado herramientas avanzadas de escalado automático que aprovechan tanto la telemetría de New Relic como métricas personalizadas. Por ejemplo, utilizan métricas de CPU de New Relic para escalar dinámicamente los recursos de Kubernetes —aumentándolos o reduciéndolos— en función de la demanda de tráfico. Esto les permite gestionar eficazmente los picos de tráfico en la ingesta, incrementando los recursos para evitar retrasos y reduciéndolos durante los períodos de baja actividad. Gracias a este enfoque dinámico, se evita la sobreasignación de recursos, se optimizan los costos y se mantiene la flexibilidad para adaptarse a cargas de trabajo variables.