SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Instrumentando aplicações
Go com Prometheus
André Carvalho
3o Gophers RJ Meetup
André Carvalho
● Desenvolvedor na Globo.com
● Apaixonado por Open Source
○ Core developer do Tsuru
● Interessado em métricas,
performance e resiliência
“Instrumentation refers to an ability
to monitor or measure the level of a
product's performance, to diagnose
errors and to write trace
information.”
Instrumentar é escrever código
para entender como seu código
interage com o “ambiente”
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
Prometheus 101
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
Prometheus
planb_reverseproxy_connections_current_open{instance="192.168.50.10:9080",job="planb"} 165
Métrica
Labels
Valor
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
Demo
https://github.com/andrestc/demo-go-instrument
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
Dúvidas?
github.com/andrestc
@andresantostc

Mais conteúdo relacionado

Semelhante a Instrumentando aplicações Go com Prometheus (40

DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwareJúlio de Lima
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes ExploratóriosAlan Carlos
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIAlefe Variani
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreCloves da Rocha
 
Ciclo de vida do desenvolvimento de software de ponta a ponta
Ciclo de vida do desenvolvimento de software de ponta a pontaCiclo de vida do desenvolvimento de software de ponta a ponta
Ciclo de vida do desenvolvimento de software de ponta a pontaRodrigo Kono
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeisCristiano Caetano
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Luís Cobucci
 
TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APIEdlaine Zamora
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de softwareJoyce Bastos
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 

Semelhante a Instrumentando aplicações Go com Prometheus (40 (20)

DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do Mestre
 
Ciclo de vida do desenvolvimento de software de ponta a ponta
Ciclo de vida do desenvolvimento de software de ponta a pontaCiclo de vida do desenvolvimento de software de ponta a ponta
Ciclo de vida do desenvolvimento de software de ponta a ponta
 
Automação de testes em projetos ágeis
Automação de testes em projetos ágeisAutomação de testes em projetos ágeis
Automação de testes em projetos ágeis
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011
 
Metralhando sua API
Metralhando sua APIMetralhando sua API
Metralhando sua API
 
TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua API
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 

Mais de André Carvalho

Containers na Globo.com - Passado, Presente e Futuro
Containers na Globo.com - Passado, Presente e FuturoContainers na Globo.com - Passado, Presente e Futuro
Containers na Globo.com - Passado, Presente e FuturoAndré Carvalho
 
Instrumenting Go applications with Prometheus
Instrumenting Go applications with PrometheusInstrumenting Go applications with Prometheus
Instrumenting Go applications with PrometheusAndré Carvalho
 
Tsuru - Deploys Fáceis e Seguros
Tsuru - Deploys Fáceis e SegurosTsuru - Deploys Fáceis e Seguros
Tsuru - Deploys Fáceis e SegurosAndré Carvalho
 
Classificação de séries temporais via divergente entre densidades de probabil...
Classificação de séries temporais via divergente entre densidades de probabil...Classificação de séries temporais via divergente entre densidades de probabil...
Classificação de séries temporais via divergente entre densidades de probabil...André Carvalho
 
Um estudo sobre a aplicação de algoritmos genéticos no investimento em ações ...
Um estudo sobre a aplicação de algoritmos genéticos no investimento em ações ...Um estudo sobre a aplicação de algoritmos genéticos no investimento em ações ...
Um estudo sobre a aplicação de algoritmos genéticos no investimento em ações ...André Carvalho
 
Uma comparação do desempenho de SGBDS de grafos com armazenamento nativo e SG...
Uma comparação do desempenho de SGBDS de grafos com armazenamento nativo e SG...Uma comparação do desempenho de SGBDS de grafos com armazenamento nativo e SG...
Uma comparação do desempenho de SGBDS de grafos com armazenamento nativo e SG...André Carvalho
 
Clusterização de padrões de candlesticks utilizando Mapas de Kohonen
Clusterização de padrões de candlesticks utilizando Mapas de KohonenClusterização de padrões de candlesticks utilizando Mapas de Kohonen
Clusterização de padrões de candlesticks utilizando Mapas de KohonenAndré Carvalho
 

Mais de André Carvalho (8)

Containers na Globo.com - Passado, Presente e Futuro
Containers na Globo.com - Passado, Presente e FuturoContainers na Globo.com - Passado, Presente e Futuro
Containers na Globo.com - Passado, Presente e Futuro
 
Go Execution Tracer
Go Execution TracerGo Execution Tracer
Go Execution Tracer
 
Instrumenting Go applications with Prometheus
Instrumenting Go applications with PrometheusInstrumenting Go applications with Prometheus
Instrumenting Go applications with Prometheus
 
Tsuru - Deploys Fáceis e Seguros
Tsuru - Deploys Fáceis e SegurosTsuru - Deploys Fáceis e Seguros
Tsuru - Deploys Fáceis e Seguros
 
Classificação de séries temporais via divergente entre densidades de probabil...
Classificação de séries temporais via divergente entre densidades de probabil...Classificação de séries temporais via divergente entre densidades de probabil...
Classificação de séries temporais via divergente entre densidades de probabil...
 
Um estudo sobre a aplicação de algoritmos genéticos no investimento em ações ...
Um estudo sobre a aplicação de algoritmos genéticos no investimento em ações ...Um estudo sobre a aplicação de algoritmos genéticos no investimento em ações ...
Um estudo sobre a aplicação de algoritmos genéticos no investimento em ações ...
 
Uma comparação do desempenho de SGBDS de grafos com armazenamento nativo e SG...
Uma comparação do desempenho de SGBDS de grafos com armazenamento nativo e SG...Uma comparação do desempenho de SGBDS de grafos com armazenamento nativo e SG...
Uma comparação do desempenho de SGBDS de grafos com armazenamento nativo e SG...
 
Clusterização de padrões de candlesticks utilizando Mapas de Kohonen
Clusterização de padrões de candlesticks utilizando Mapas de KohonenClusterização de padrões de candlesticks utilizando Mapas de Kohonen
Clusterização de padrões de candlesticks utilizando Mapas de Kohonen
 

Instrumentando aplicações Go com Prometheus (40