Problemas
- Librato: 1m
- Cron: 1m
- Em menos de 1m atendimento já recebia ligações dos usuários
- Librato nos alertava depois de 5m+
- Falta de padrões (nomenclatura e etc)
- Alertas criados (ou não) manualmente para cada serviço
- Shells aleatórios espalhados aleatoriamente em lugares aleatórios
- Queries esquecidas
- Muitos falsos positivos
- Não tinha prioridade, todos os alertas eram critical
Slide 7
Slide 7 text
tldr: difícil de manter e caótico
Slide 8
Slide 8 text
muitos falsos positivos
=
alertas sendo ignorados
Slide 9
Slide 9 text
"ahh, esse alerta é normal"
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
Arquitetura Nova
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
Prometheus
- Criado originalmente na Soundcloud, vários ex-Google contribuem
- segundo projeto a fazer parte da CNCF (junto com k8s)
- Granularidade de 1s
- Sugerido pelos engenheiros da Google no "SRE bible"
- Simples e robusto
- Padrões já definidos
- Extensível por meio de custom exporters
- Service discovery
- Federation
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
node_exporter
- collectd + collectd_exporter até funcionava
- collectd bugado, difícil atualizar, quebrava direto
- node_exporter integra direto com o prometheus
- baixar e executar um binário com 0 deps
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
Prometheus 2
- melhorias de performance
- mudança formato de .rules pra .yaml
- resolvido bug antigo de "stale metrics"
- N outras melhorias
Slide 21
Slide 21 text
Prometheus 2: upgrade
- estamos com o prometheus 1.8.2 e 2.0.0 rodando
- prometheus 1 em read-only
- prometheus 2 faz "remote read" no prometheus 1
- eventualmente vamos deixar apenas o prometheus 2 rodando
https://prometheus.io/docs/prometheus/2.0/migration/
Slide 22
Slide 22 text
Arquitetura
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
Vida de um alerta...
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
Quem estiver on-call
- Investiga o incidente
- Se for um incidente real resolve e/ou liga pra alguém ajudar a resolver, ajusta
status page
- Se for um falso-positivo, corrige o alerta
Slide 33
Slide 33 text
O que ganhamos com tudo isso?
Slide 34
Slide 34 text
Ganhamos:
- Alertas de CPU/memória/disco e etc automáticos
- Processo de pull-request + code review
- CI/CD de toda a infraestrutura de monitoramento
- Formatação padrão de regras
- Mais robustez na definição de alertas e rotas