SlideShare uma empresa Scribd logo
1 de 20
Monitorando aplicações distribuídas em Cloud com
SoundCloud Prometheus
Edilson Azevedo
edilson.azevedo@ilegra.com
Métodos Tradicionais de Monitoramento

 Clients (SNMP?)
 Alertas (expressões)
 Mais alertas (alertas ou dados estatísticos?)
 E mais alertas… (NOC)
 Vários alvos...
 - Um host/cluster pode rodar múltiplos containers

 Que mudam constantemente
 - Deploys, auto scaling, substituir containers, etc...

 Analisar grande quantidade de informações
 - Múltiplos sources

 Fácil de identificar problemas e fazer troubleshooting
 - Qual instance/container/versão/endpoint causou esses erros?!

 Produzir alertas que façam sentido
 - Se 300 containers de 1.000 caíram, e o usuário não sentiu, não existe alerta. {User experience}
Necessidades Modernas de Monitoramento - Desafios
Monitoramento - Abrangência
Monitorar tudo, em todas as camadas, com o mesmo sistema
Nível O que monitorar (exemplos)
Rede Routers, Switches
Host (OS, hardware) Falha de hardware, recursos
Containers Utilização de recursos, performance, estatísticas
Aplicação Latência, erros, estados internos
Orquestração Clusters, nós, scheduling, auto scaling
Arquiteturas Modernas - Aplicações Monolíticas x Microservices
Arquiteturas Modernas - Escalation - Como monitorar?!?
Monitoramento - O que realmente importa?
Prometheus!

 Sistema que não fosse preso á arquiteturas
 Opensource
 Sem dependências de pacotes externos
 Operação / Configuração simples
 Métricas com dimensões baseadas em “Labels”
 Independente (banco de dados, alertas, interface)
Prometheus Data Model - Time Series
Prometheus Features - Modelo de dados Multidimensional
Prometheus Features - Conceito time
series
http_requests_total{instance=”web-1”, path=”/index”, status=”401”, method=”GET”}
Métrica Label path status method
http_requests_total{instance=”web-2”, path=”/index”, status=”404”, method=”POST”}
http_requests_total{instance=”web-3”, path=”/index”, status=”200”, method=”GET”}
http_requests_total{instance=”web-4”, path=”/index”, status=”401”, method=”GET”}
Prometheus Features - Query Language
Prometheus: avg by(city) (temperature_celsius{country=”Brazil”})
SQL: SELECT city, AVG(value) FROM temperature_celsius WHERE country=”Brazil” GROUP BY city
Prometheus: rate(api_http_requests_total[5m])
SQL: SELECT job, instance, method, status, path, rate(value, 5m) FROM api_http_requests_total
Prometheus: errors{job=”deploy”} / total{job=”deploy”}
SQL: SELECT errors.job, erros.instances, [mais labels…], erros.value / total.value FROM errors.total WHERE
errors.job=”deploy” AND total.job=”deploy” JOIN [muito mais coisas….]
Prometheus Features - Alerting
Disk Full Alert - Nagios
Prometheus Features - Alerting
Disk Full Alert baseado em Time Series - Prometheus
Prometheus Features - Instrumentação
from prometheus_client import start_http_server, Histogram
# Create a metric to track time spent and requests made.
REQUEST_TIME = Histogram('request_processing_seconds', 'Time spent processing request')
# Decorate function with metric.
@REQUEST_TIME.time()
def process_request(t):
# do work …
return
start_http_server(8000)
Prometheus Features - Instrumentação
Prometheus - Cloud Monitoring - Dev/Test
 ECS
 Consul
 Prometheus
Prometheus - Demonstração
Prometheus - Não serve / não faz
 Armazenamento de logs
 Autoscaling automático
 Autenticação de usuários
 Ações pró ativas
Prometheus
Dúvidas?

Mais conteúdo relacionado

Semelhante a Monitor Cloud Apps com Prometheus

Introdução a Big Data e Apache Solr
Introdução a Big Data e Apache SolrIntrodução a Big Data e Apache Solr
Introdução a Big Data e Apache SolrJuliano Martins
 
Monitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.comMonitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.comDenis Vieira
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 
Replicação multi-master, sincronização filtrada e transformação com SymmetricDS
Replicação multi-master, sincronização filtrada e transformação com SymmetricDSReplicação multi-master, sincronização filtrada e transformação com SymmetricDS
Replicação multi-master, sincronização filtrada e transformação com SymmetricDSCesar Romero
 
Conformidade dos sítios web da AP Central com as Web Content Accessibility Gu...
Conformidade dos sítios web da AP Central com as Web Content Accessibility Gu...Conformidade dos sítios web da AP Central com as Web Content Accessibility Gu...
Conformidade dos sítios web da AP Central com as Web Content Accessibility Gu...Jorge Fernandes
 
2 Ads
2 Ads2 Ads
2 Adslcbj
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSRodrigo Branas
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMCAlisson Agiani
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoÉberli Cabistani Riella
 
De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupWagner Roberto dos Santos
 
Apresentacao -aula_01_rede_industrial
Apresentacao  -aula_01_rede_industrialApresentacao  -aula_01_rede_industrial
Apresentacao -aula_01_rede_industrialMarcioRodrigues173060
 
Administração de portais
Administração de portaisAdministração de portais
Administração de portaisFelipe Perin
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 

Semelhante a Monitor Cloud Apps com Prometheus (20)

Introdução a Big Data e Apache Solr
Introdução a Big Data e Apache SolrIntrodução a Big Data e Apache Solr
Introdução a Big Data e Apache Solr
 
Teste de segurança do lado servidor - Nível 1
Teste de segurança do lado servidor - Nível 1Teste de segurança do lado servidor - Nível 1
Teste de segurança do lado servidor - Nível 1
 
introdução a ajax
introdução a ajaxintrodução a ajax
introdução a ajax
 
Monitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.comMonitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.com
 
o que é ajax
o que é ajaxo que é ajax
o que é ajax
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
Owasp web app_flaws
Owasp web app_flawsOwasp web app_flaws
Owasp web app_flaws
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Replicação multi-master, sincronização filtrada e transformação com SymmetricDS
Replicação multi-master, sincronização filtrada e transformação com SymmetricDSReplicação multi-master, sincronização filtrada e transformação com SymmetricDS
Replicação multi-master, sincronização filtrada e transformação com SymmetricDS
 
Conformidade dos sítios web da AP Central com as Web Content Accessibility Gu...
Conformidade dos sítios web da AP Central com as Web Content Accessibility Gu...Conformidade dos sítios web da AP Central com as Web Content Accessibility Gu...
Conformidade dos sítios web da AP Central com as Web Content Accessibility Gu...
 
2 Ads
2 Ads2 Ads
2 Ads
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMC
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 
De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações Mashup
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
Apresentacao -aula_01_rede_industrial
Apresentacao  -aula_01_rede_industrialApresentacao  -aula_01_rede_industrial
Apresentacao -aula_01_rede_industrial
 
apache+ssl+Jserv
apache+ssl+Jservapache+ssl+Jserv
apache+ssl+Jserv
 
Administração de portais
Administração de portaisAdministração de portais
Administração de portais
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 

Monitor Cloud Apps com Prometheus

  • 1. Monitorando aplicações distribuídas em Cloud com SoundCloud Prometheus Edilson Azevedo edilson.azevedo@ilegra.com
  • 2. Métodos Tradicionais de Monitoramento   Clients (SNMP?)  Alertas (expressões)  Mais alertas (alertas ou dados estatísticos?)  E mais alertas… (NOC)
  • 3.  Vários alvos...  - Um host/cluster pode rodar múltiplos containers   Que mudam constantemente  - Deploys, auto scaling, substituir containers, etc...   Analisar grande quantidade de informações  - Múltiplos sources   Fácil de identificar problemas e fazer troubleshooting  - Qual instance/container/versão/endpoint causou esses erros?!   Produzir alertas que façam sentido  - Se 300 containers de 1.000 caíram, e o usuário não sentiu, não existe alerta. {User experience} Necessidades Modernas de Monitoramento - Desafios
  • 4. Monitoramento - Abrangência Monitorar tudo, em todas as camadas, com o mesmo sistema Nível O que monitorar (exemplos) Rede Routers, Switches Host (OS, hardware) Falha de hardware, recursos Containers Utilização de recursos, performance, estatísticas Aplicação Latência, erros, estados internos Orquestração Clusters, nós, scheduling, auto scaling
  • 5. Arquiteturas Modernas - Aplicações Monolíticas x Microservices
  • 6. Arquiteturas Modernas - Escalation - Como monitorar?!?
  • 7. Monitoramento - O que realmente importa?
  • 8. Prometheus!   Sistema que não fosse preso á arquiteturas  Opensource  Sem dependências de pacotes externos  Operação / Configuração simples  Métricas com dimensões baseadas em “Labels”  Independente (banco de dados, alertas, interface)
  • 9. Prometheus Data Model - Time Series
  • 10. Prometheus Features - Modelo de dados Multidimensional
  • 11. Prometheus Features - Conceito time series http_requests_total{instance=”web-1”, path=”/index”, status=”401”, method=”GET”} Métrica Label path status method http_requests_total{instance=”web-2”, path=”/index”, status=”404”, method=”POST”} http_requests_total{instance=”web-3”, path=”/index”, status=”200”, method=”GET”} http_requests_total{instance=”web-4”, path=”/index”, status=”401”, method=”GET”}
  • 12. Prometheus Features - Query Language Prometheus: avg by(city) (temperature_celsius{country=”Brazil”}) SQL: SELECT city, AVG(value) FROM temperature_celsius WHERE country=”Brazil” GROUP BY city Prometheus: rate(api_http_requests_total[5m]) SQL: SELECT job, instance, method, status, path, rate(value, 5m) FROM api_http_requests_total Prometheus: errors{job=”deploy”} / total{job=”deploy”} SQL: SELECT errors.job, erros.instances, [mais labels…], erros.value / total.value FROM errors.total WHERE errors.job=”deploy” AND total.job=”deploy” JOIN [muito mais coisas….]
  • 13. Prometheus Features - Alerting Disk Full Alert - Nagios
  • 14. Prometheus Features - Alerting Disk Full Alert baseado em Time Series - Prometheus
  • 15. Prometheus Features - Instrumentação from prometheus_client import start_http_server, Histogram # Create a metric to track time spent and requests made. REQUEST_TIME = Histogram('request_processing_seconds', 'Time spent processing request') # Decorate function with metric. @REQUEST_TIME.time() def process_request(t): # do work … return start_http_server(8000)
  • 16. Prometheus Features - Instrumentação
  • 17. Prometheus - Cloud Monitoring - Dev/Test  ECS  Consul  Prometheus
  • 19. Prometheus - Não serve / não faz  Armazenamento de logs  Autoscaling automático  Autenticação de usuários  Ações pró ativas