Kubernetes sem monitoring é caixa preta. Prometheus para métricas, Loki para logs, Jaeger para tracing. Observabilidade completa.
Conceitos Principais
Prometheus
Time-series database. Scrape metrics de Pods. PromQL para queries. AlertManager para alertas. Integra com Grafana.
Grafana
Visualização de métricas. Dashboards pré-prontos para K8s. Multi-datasource (Prometheus, Loki). Alerting integrado.
Loki
Log aggregation. Lightweight (não indexa tudo). Integra com Grafana. Query logs por labels. Alternativa ao ELK (mais leve).
OpenTelemetry
Traces distribuídos. Rastreia requests entre microserviços. Jaeger backend. Detecta latência e falhas.
Passo a Passo
- Deploy Prometheus: Helm:
helm install prometheus prometheus-community/kube-prometheus-stack. Inclui Grafana, AlertManager. Acesse Grafana via port-forward. - Configure Scraping: ServiceMonitor CRD define targets. Prometheus auto-descobre Pods com annotations. prometheus.io/scrape: true, path, port.
- Dashboards Grafana: Importe dashboards: 6417 (K8s cluster), 8588 (Deployments). Customize para seus Pods. Variáveis para namespace, pod.
- Deploy Loki: Helm:
helm install loki grafana/loki-stack. Promtail DaemonSet coleta logs. Grafana data source adiciona Loki. Query logs com LogQL. - Alertas: PrometheusRule YAML: alert PodCrashing if rate(kube_pod_container_status_restarts_total) > 0. AlertManager envia Slack/email.
Boas Praticas
Recomendacoes
• Metrics de negócio (não só infra)
• Retention policy para logs (30 dias)
• Alertas acionáveis (não spam)
• SLO/SLI tracking
• Dashboards por equipe
Erros Comuns
Evite estes erros
• Não configurar resource limits (Prometheus OOM)
• Retention infinito (storage explode)
• Alertas sem runbook
• Não testar alertas
Checklist
- Prometheus deployado
- Grafana acessível
- Dashboards configurados
- Loki para logs
- Alertas configurados e testados
- Retention policies definidas
- SLO definidos