Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Mide una vez — Exporta a donde sea: OpenCensus en acción

By Aviv LauferMar 20, 20182 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

1 d5 bkyyjuqallljychz2ba

Hace unos meses, Google anunció OpenCensus, una librería open source neutral para recolectar telemetría y trazas. Con OpenCensus es fácil capturar métricas de tu aplicación y rastrear el flujo de las solicitudes.

En la mayoría de los casos hay una distinción clara entre recolectar los datos y exportarlos a los sistemas de tracing y monitoreo. Una vez que empieces a usar OpenCensus en tu proyecto e identifiques qué métricas te interesa rastrear y monitorear, puedes alternar entre distintos sistemas de monitoreo —o incluso usar más de uno— sin tocar la lógica de recolección de métricas.

En DoiT International estamos desarrollando una arquitectura de referencia y una implementación real de un pipeline de event analytics (aún en curso, pero puedes echarle un vistazo aquí).

Estamos escribiendo nuestra API en Go y queríamos darles a los usuarios algo de visibilidad sobre el sistema y sobre ciertas métricas personalizadas que nos interesa exponer. Antes tenías que elegir tu sistema de monitoreo y, si querías cambiarlo por otro, te tocaba invertir bastante tiempo (y dinero). ¿Pero qué pasa si estás construyendo un sistema open source y no sabes de antemano dónde ni cómo se va a desplegar, ni cómo se va a monitorear?

Con OpenCensus casi no hay que decidir nada por adelantado. La elección del sistema de monitoreo no queda fuertemente acoplada e incluso puedes usar más de un sistema de monitoreo o de recolección de métricas a la vez.

Así que, para exponer las métricas al sistema de monitoreo que prefieras, basta con crear un nuevo exporter y registrarlo:

https://gist.github.com/avivl/15fd071ca0212838aebec2e45430eb1c

Crear métricas también es muy sencillo: solo defines su tipo y cómo quieres que se visualicen:

https://gist.github.com/avivl/32ed40cbbfb8bbc07e3b3ae07a161251

Listo, ya puedes empezar a capturar métricas: solo llama al método Record y pásale los datos requeridos.

https://gist.github.com/avivl/f49969508a846fbf0abd1a7a37825c52

Como puedes ver en los siguientes gráficos, las métricas se exportan tanto a Prometheus como a Stackdriver y se visualizan en cada sistema:

1 gxsw5wj6gdp6 zcbhiu 7qDashboard de Prometheus-Grafana1 3gi3tdhbv2erve90zorimwDashboard de Stackdriver

¿Quieres más historias? Visita nuestro blog o sigue a Aviv en Twitter.