Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Instrumentando aplicações Go com Prometheus

Palestra dada no 3o Meetup de Go do Rio de Janeiro

  • Be the first to comment

  • Be the first to like this

Instrumentando aplicações Go com Prometheus

  1. 1. Instrumentando aplicações Go com Prometheus André Carvalho 3o Gophers RJ Meetup
  2. 2. André Carvalho ● Desenvolvedor na Globo.com ● Apaixonado por Open Source ○ Core developer do Tsuru ● Interessado em métricas, performance e resiliência
  3. 3. “Instrumentation refers to an ability to monitor or measure the level of a product's performance, to diagnose errors and to write trace information.”
  4. 4. Instrumentar é escrever código para entender como seu código interage com o “ambiente”
  5. 5. O que instrumentar? https://honeycomb.io/blog/2017/01/instrumentation-the-first-four-things-you-measure/ 1. Total de requisições 2. Total de respostas (sucesso/erro) 3. Tempo de resposta 4. Número de requisições em curso
  6. 6. Prometheus 101
  7. 7. Prometheus ● Sistema de monitoração e alertas open source, escrito em Go ● Criado pela SoundCloud ● Integrante da Cloud Native Computing Foundation desde 2016 Características ● “Pull based” via HTTP ● Linguagem de queries flexivel ● Targets são descobertos via service discovery
  8. 8. Prometheus planb_reverseproxy_connections_current_open{instance="192.168.50.10:9080",job="planb"} 165 Métrica Labels Valor
  9. 9. Prometheus S2 Go ● Client oficial para instrumentação de código Go (https://github.com/prometheus/client_golang) ● Métricas do runtime do Go out of the box ○ Goroutines, GC, OS threads ... ● Tipos de métricas: ○ Counter, Gauge, Histogram e Summary ○ Interface prometheus.Collector
  10. 10. Demo https://github.com/andrestc/demo-go-instrument
  11. 11. Conclusões ● Instrumentar é importante ● Adicionar novas métricas deve ser facil ● Instrument all the things? ● Código de instrumentação é igual a qualquer outro código ○ Deve ser testado, pode ter bugs, aumenta a complexidade do sistema
  12. 12. Dúvidas? github.com/andrestc @andresantostc

×