Guia Completo de Instrumentação e Monitoramento no Kubernetes

Este guia foi criado para ajudá-lo a configurar facilmente uma stack de monitoramento e instrumentação utilizando ferramentas modernas como Prometheus, Promtail e OpenTelemetry. 🚀

Você utilizará o Grafana da Elven Observability para visualizar suas métricas, logs e dashboards no seguinte endereço:

🌐 https://grafana.elvenobservability.com

Conteúdo do Repositório

stack-observability/
├── opentelemetry-operator/
│   ├── instrumentation.yaml
│   ├── values.yaml
│   ├── README.md
├── otel-collector/
│   ├── collector-config.yaml
│   ├── collector-deploy.yaml
│   ├── collector-service.yaml
│   ├── kustomization.yaml
│   ├── secrets.env
│   ├── README.md
├── prometheus/
│   ├── values-prometheus.yaml
├── promtail/
│   ├── values-promtail.yaml
├── helmfile.yaml
└── README.md

Pré-requisitos

Certifique-se de ter o seguinte configurado no seu ambiente:

  • Kubernetes: Cluster funcional e configurado 🛠️

  • kubectl: Para gerenciar recursos no Kubernetes ⚡

  • Helm: Para instalar os charts 🎛️

  • Helmfile: Para instalar múltiplos charts com facilidade

Instale o Helmfile:

Instalação: Passo a Passo

Clone o Repositório

Via SSH:

Via HTTPS:

Configurar Namespace e Credenciais

Crie o namespace de monitoramento:

Em seguida, configure uma Secret para armazenar as credenciais da Elven Observability. Essas credenciais podem ter sido fornecidas diretamente pelo nosso time, ou geradas automaticamente caso você tenha feito o cadastro pelo site: http://elvenobservability.com/. Caso ainda não tenha recebido, entre em contato com o suporte:

Importante: Substitua <SEU_TENANT_ID> e <SEU_API_TOKEN> pelos valores corretos recebidos no onboarding ou via cadastro.

Configurar o Prometheus

Edite o arquivo prometheus/values-prometheus.yaml:

Configuração do Promtail: Filtros por Namespace ou Annotation

No promtail/values-promtail.yaml, edite:

Como Usar:

  • Por Namespace: coleta todos os logs dos pods nos namespaces definidos.

  • Por Annotation: coleta somente de pods com a annotation promtail_logs: "true":

Configurar o OpenTelemetry Operator

Edite opentelemetry-operator/instrumentation.yaml:

Aplique no cluster:

Consulte o README.md da pasta opentelemetry-operator para mais exemplos de instrumentação.

Instalar os Componentes com Helmfile

Acesso ao Grafana

Acesse: https://grafana.elvenobservability.com

Use as credenciais fornecidas via suporte ou após cadastro no site para visualizar dashboards de métricas, logs e traces.

Recursos Instalados

  • Prometheus: Coleta de métricas e alertas

  • Promtail: Coleta de logs

  • OpenTelemetry Operator: Instrumentação automática

  • OpenTelemetry Collector: Centralização de métricas e traces

Exemplos e Boas Práticas

  • Exemplos prontos na pasta opentelemetry-operator/

  • Sempre que possível, use annotation ao invés de capturar logs de todo o namespace

  • Ajuste o sampling de traces conforme a criticidade da aplicação

  • Organize os dashboards no Grafana por aplicação ou domínio de negócio

Dicas e Otimizações

  • Use relabelConfigs para evitar ingestão excessiva de dados

  • Utilize atributos personalizados (resource_attributes) para enriquecer os dados dos traces e métricas

  • Explore dashboards públicos no Grafana para se inspirar

  • Adicione alertas com base em métricas críticas (ex: erro 5xx, alta latência, ausência de eventos)

Solução de Problemas (Troubleshooting)

Problema
Causa Comum
Solução

Dados não aparecem no Grafana.

Secret mal configurada ou token inválido.

Verifique a Secret e confirme as credenciais.

Logs não chegam no Loki.

Filtros no Promtail ou falta de annotation.

Revise as regras de filtragem e annotations.

Traces ausentes.

Endpoint do collector incorreto.

Verifique a URL no instrumentation.yaml

Documentações Oficiais

Suporte

Se tiver dúvidas, dificuldades ou sugestões:

  • Abra uma issue neste repositório.

  • Contribua com um Pull Request.

  • Fale com o time Elven.

Last updated

Was this helpful?