
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:
Prometheus - Dashboard no Grafana
Dashboard no Stackdriver
Quer ler mais? Confira nosso blog ou siga o Aviv no Twitter.