Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Meça uma vez — exporte para qualquer lugar: OpenCensus na prática

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

By Aviv LauferMar 20, 20182 min read

1 d5 bkyyjuqallljychz2ba

Há alguns meses, o Google anunciou o OpenCensus, uma biblioteca open source independente de fornecedor para coleta de telemetria e tracing. Com ele, fica fácil coletar métricas da sua aplicação e rastrear o andamento das requisições.

Na maioria dos casos, há uma separação clara entre coletar os dados e exportá-los para sistemas de tracing e monitoramento. Depois de começar a usar o OpenCensus no seu projeto e identificar quais métricas valem a pena rastrear e monitorar, dá para trocar de sistema de monitoramento, ou até usar mais de um, sem mexer na sua lógica de coleta de métricas.

PerfectScale™ for Kubernetes

Ready to optimize?

Get your free Kubernetes savings analysis

Aqui na DoiT International, estamos desenvolvendo uma arquitetura de referência e a implementação de um pipeline de event analytics (ainda em andamento, mas você já pode dar uma espiada aqui).

Nossa API está sendo escrita em Go e queríamos dar aos usuários alguma visibilidade do sistema e de algumas métricas customizadas que pretendemos expor. Antigamente, você tinha que escolher um sistema de monitoramento e, se quisesse trocar depois, gastava tempo (e dinheiro) para isso. Mas e quando se trata de um sistema open source, em que você não sabe de antemão onde nem como ele vai rodar, e muito menos como será monitorado?

Com o OpenCensus, quase nada precisa ser decidido de cara. A escolha do sistema de monitoramento não fica acoplada ao código, e você pode até usar mais de um sistema de monitoramento ou de coleta de métricas em paralelo.

Your cloud bill shouldn't be a mystery

Optimization, automation, expertise. In one platform.

Para expor as métricas no sistema de monitoramento que você preferir, basta criar um novo exporter e registrá-lo:

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

Criar métricas também é bem simples: é só definir o tipo e como você quer que elas sejam exibidas:

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

Pronto, agora é só coletar as métricas: chame o método Record e passe os dados necessários.

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

Como você pode ver nos gráficos a seguir, as métricas são exportadas tanto para o Prometheus quanto para o Stackdriver e visualizadas em cada um deles:

1 gxsw5wj6gdp6 zcbhiu 7qPrometheus - Dashboard no Grafana1 3gi3tdhbv2erve90zorimwDashboard no Stackdriver

Quer ler mais? Confira nosso blog ou siga o Aviv no Twitter.