Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Measure Once — Export Anywhere: OpenCensus in azione

By Aviv LauferMar 20, 20182 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

1 d5 bkyyjuqallljychz2ba

Qualche mese fa Google ha annunciato OpenCensus, una libreria open source vendor-neutral per la raccolta di telemetria e tracing. OpenCensus semplifica la raccolta delle metriche dalle applicazioni e il tracciamento dell'avanzamento delle richieste.

Nella maggior parte dei casi c'è una netta distinzione tra la raccolta dei dati e la loro esportazione verso i sistemi di tracing e monitoraggio. Una volta adottato OpenCensus nel proprio progetto e individuate le metriche più rilevanti da tracciare e monitorare, si può passare da un sistema di monitoraggio a un altro, o anche usarne più di uno in parallelo, senza modificare in alcun modo la logica di raccolta delle metriche.

Noi di DoiT International stiamo sviluppando un'architettura di riferimento e una vera implementazione di una pipeline di event analytics (è ancora un work in progress, ma può dare un'occhiata in anteprima qui).

Stiamo scrivendo la nostra API in Go e volevamo offrire agli utenti una certa visibilità sul sistema e su alcune metriche personalizzate che intendiamo esporre. Ai "vecchi tempi" si doveva scegliere il sistema di monitoraggio fin dall'inizio e, per sostituirlo con un altro, occorreva investire tempo (e denaro). Ma cosa succede se si sta costruendo un sistema open source e non si sa in anticipo dove e come verrà distribuito, né come verrà monitorato?

Con OpenCensus non serve decidere quasi nulla in anticipo. La scelta del sistema di monitoraggio non è strettamente vincolata ed è anche possibile utilizzare più sistemi di monitoraggio o di raccolta delle metriche in parallelo.

Quindi, per esporre le metriche al sistema di monitoraggio prescelto, basta creare un nuovo exporter e registrarlo:

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

Anche creare le metriche è molto semplice: basta sceglierne il tipo e la modalità di visualizzazione:

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

A questo punto si è pronti a raccogliere le metriche: è sufficiente richiamare il metodo Record e fornire i dati richiesti.

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

Come si può vedere dai grafici qui sotto, le metriche vengono esportate sia su Prometheus sia su Stackdriver e visualizzate in entrambi i sistemi:

1 gxsw5wj6gdp6 zcbhiu 7qPrometheus- Grafana Dashboard1 3gi3tdhbv2erve90zorimwStackdriver Dashboard

Vuole leggere altri articoli? Visiti il nostro blog o segua Aviv su Twitter.