Pular para o conteúdo
NyverraNyverra
Artigos
⌘K
InícioArtigosSite institucional
🇧🇷

Nyverra

Canal editorial

Artigos sobre tecnologia, operações e parceiros — infraestrutura, monitoramento e ambientes críticos.

Explorar

  • Início
  • Artigos
  • Categorias
  • Tags
  • Autores
  • Sobre
  • Contato
  • RSS
  • Site institucional

© 2026 Nyverra. Todos os direitos reservados.

blog.nyverra.com

  1. Início
  2. Kubernetes
  3. Curso Kubernetes 13 — Observabilidade: metrics-server, Prometheus e Grafana
Kubernetes
#Observabilidade#Curso Kubernetes#Kubernetes#K8S

Curso Kubernetes 13 — Observabilidade: metrics-server, Prometheus e Grafana

Wedson LopesWedson Lopes
30 de outubro de 20264 min de leitura

Você não pode consertar o que não consegue ver. Kubernetes gera uma quantidade enorme de sinais; o difícil é escolher quais importam.

Observabilidade tem três pilares:

Pilar Pergunta Ferramentas
Métricas “quanto/o quê?” Prometheus, Grafana
Logs “por quê?” Loki, Elasticsearch
Traces “onde?” OpenTelemetry, Jaeger

Selo do curso: testado em Kubernetes 1.35 com kube-prometheus-stack.

metrics-server: o kubectl top

O metrics-server coleta CPU/memória dos pods e nós via API de métricas. É o que alimenta kubectl top e o HPA por CPU/memória.

kubectl top nodes
kubectl top pods -A --sort-by=memory | head

Se retornar error: Metrics API not available, o metrics-server não está instalado ou está com problema de TLS/RBAC.

Importante: metrics-server não é armazenamento de longo prazo. Ele serve métricas recentes para o HPA. Para histórico, Prometheus.

Prometheus: o padrão de fato

Prometheus faz scrape (puxa métricas) por HTTP em intervalos regulares, armazena em TSDB e permite consultas em PromQL.

Componentes comuns:

  • Prometheus: coleta e armazena.
  • node-exporter: métricas do nó (CPU, memória, disco, rede).
  • kube-state-metrics: estado dos objetos (pods, deployments, PDB).
  • Alertmanager: agrupa, silencia e roteia alertas.
  • Grafana: visualização.

Instalação via Helm (lab):

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm upgrade --install kps prometheus-community/kube-prometheus-stack \
  -n monitoring --create-namespace \
  --set grafana.adminPassword='troque-isto'

Valide:

kubectl -n monitoring get pods
kubectl -n monitoring get servicemonitors

O que medir primeiro

Não tente medir tudo. Comece pelo que dói:

Sinal Exemplo de métrica
Nós saudáveis up{job="node-exporter"}
Pods prontos kube_pod_status_ready
Reinícios kube_pod_container_status_restarts_total
CPU/memória container_cpu_usage_seconds_total, container_memory_working_set_bytes
Disco node_filesystem_avail_bytes
API server apiserver_request_duration_seconds
Erros HTTP http_server_requests_seconds_count{status=~"5.."}

Consultas úteis:

# nós down
up == 0

# pods que reiniciaram mais de 3 vezes na última hora
increase(kube_pod_container_status_restarts_total[1h]) > 3

# memória dos pods por namespace
sum by (namespace, pod) (container_memory_working_set_bytes{container!=""})

Grafana: dashboards que respondem perguntas

Um dashboard bom responde:

  • O cluster está saudável?
  • O que mudou nas últimas 24h?
  • Qual serviço está degradado?
  • Estamos dentro do SLO?

Evite dashboards de 200 painéis. Comece com:

  1. Visão geral: nós, pods, CPU, memória, disco.
  2. Namespace/aplicação: réplicas, restarts, latência, erros.
  3. SLO: disponibilidade e orçamento de erro.

Alertas: o que acordar alguém

Alerta bom é acionável. Exemplos:

- alert: NodeDown
  expr: up{job="node-exporter"} == 0
  for: 2m
  labels:
    severity: critical
  annotations:
    summary: "Nó {{ $labels.instance }} down"

- alert: PodCrashLooping
  expr: increase(kube_pod_container_status_restarts_total[10m]) > 3
  for: 5m
  labels:
    severity: warning

Regras:

  • Todo alerta tem runbook.
  • for evita ruído.
  • Severidade define canal (crítico acorda; warning espera).
  • Alertmanager agrupa e silencia durante manutenção.

Logs e traces

  • Logs: estruturados (JSON), com traceId/requestId, retenção definida. Loki é uma opção leve.
  • Traces: OpenTelemetry no app, collector e backend (Jaeger/Tempo). Sem amostragem, o custo explode; comece com 10%.

Erros comuns

Sintoma Causa
kubectl top indisponível metrics-server down/TLS
Target down no Prometheus ServiceMonitor/porta/labels errados
Dashboard vazio datasource errado ou métrica renomeada
Prometheus sem disco retenção/TSDB sem PVC
Alertas em loop for curto demais ou regra sem histerese
Cardinalidade explodindo labels de alta cardinalidade (pod, request id)

Checklist

  • [ ] metrics-server funcionando (kubectl top).
  • [ ] Prometheus com retenção e PVC.
  • [ ] node-exporter e kube-state-metrics.
  • [ ] Dashboards de cluster e aplicação.
  • [ ] Alertas com severidade e runbook.
  • [ ] Logs estruturados com correlação.
  • [ ] Tracing com amostragem definida.

Glossário

  • scrape: coleta periódica de métricas.
  • TSDB: banco de séries temporais.
  • PromQL: linguagem de consulta.
  • ServiceMonitor: CRD do Prometheus Operator.
  • SLO: objetivo de nível de serviço.
  • cardinalidade: número de combinações de labels.

Próximo

Agora que você enxerga o cluster, vamos entender os operadores — o que eles fazem, quando usar e por que eles mudam a forma de operar dados.

Próximo: Curso Kubernetes 14 — Operadores: o que são e por que usar

Compartilhar

Continuar a ler

Leia também

  • Kubernetes de Verdade — do zero ao cluster em produção
    Kubernetes

    Kubernetes de Verdade — do zero ao cluster em produção

    Uma trilha prática para entender, montar e operar um cluster Kubernetes — do primeiro pod ao failover do Postgres.

    30 de outubro de 20264 min de leitura
  • Curso Kubernetes 28 — DR e capstone: provar que o cluster volta
    Kubernetes

    Curso Kubernetes 28 — DR e capstone: provar que o cluster volta

    RPO, RTO e drills reais: cenários de desastre, runbook, restore medido e o capstone que fecha o curso com um cluster que se recupera.

    30 de outubro de 20265 min de leitura
  • Curso Kubernetes 27 — SLO/SLI, on-call e postmortem blameless
    Kubernetes

    Curso Kubernetes 27 — SLO/SLI, on-call e postmortem blameless

    O que prometer, como medir e o que fazer quando o erro estoura: SLI, SLO, error budget, alertas que acordam alguém e postmortem sem caça às bruxas.

    30 de outubro de 20264 min de leitura

Comentários

Ainda sem comentários

Seja o primeiro a compartilhar sua opinião sobre este artigo.

Deixe um comentário

Newsletter

Receba novos artigos

Inscreva-se para receber publicações do blog Nyverra no seu e-mail. Enviaremos um link de confirmação.

​