O que observar
🔍 GUIA DO QUE OBSERVAR - OBSERVABILIDADE MEMUDE
Portal MeMude | Guia de Monitoramento e Observabilidade
📊 VISÃO GERAL DO QUE ESTÁ SENDO MONITORADO
✅ FUNCIONANDO ATUALMENTE
- 📈 Métricas Prometheus (self + Traefik)
- 📝 Logs completos (todos containers + Traefik access)
- 🎯 Targets básicos operacionais
- 🔒 Autenticação e SSL
⚠️ LIMITAÇÕES ATUAIS
- ❌ Docker Swarm Service Discovery (erro permissão)
- ❌ Métricas de sistema (Node Exporter ausente)
- ❌ Métricas detalhadas containers (cAdvisor ausente)
- ⚠️ Dashboards personalizados (não configurados)
🎯 MÉTRICAS DISPONÍVEIS (PROMETHEUS)
✅ Self-Monitoring (Prometheus)
-
Target:
prometheus (1/1 up) -
Métricas disponíveis:
prometheus_build_info # Informações da versão prometheus_config_last_reload_successful # Status recarregamento config prometheus_tsdb_head_samples_appended_total # Samples processadas prometheus_rule_evaluation_duration_seconds # Performance das rules up{job="prometheus"} # Status do Prometheus
✅ Traefik (Proxy/Load Balancer)
-
Target:
traefik (1/1 up) -
Métricas disponíveis:
traefik_http_requests_total # Total de requests HTTP traefik_http_request_duration_seconds # Latência das requests traefik_http_requests_per_second # RPS (requests per second) traefik_backend_open_connections # Conexões ativas traefik_backend_request_duration_seconds # Performance backend
❌ Docker Swarm (Não Funcionando)
-
Target:
docker-swarm-nodes(❌ erro) -
Target:
docker-swarm-services(❌ erro) - Problema: Permission denied no Docker socket
- Métricas perdidas: CPU, memória, disco, rede dos nós
📝 LOGS DISPONÍVEIS (LOKI)
✅ Logs de Containers (Docker)
-
Job:
docker - Coleta: Service Discovery automático
-
Labels disponíveis:
container_name # Nome do container service_name # Nome do serviço Docker Swarm image_name # Imagem Docker node_name # Nó do Swarm
Queries úteis:
{job="docker"} # Todos logs containers
{job="docker", container_name="memude_app"} # Container específico
{job="docker"} |= "ERROR" # Filtrar por ERROR
{job="docker"} |= "status=500" # Filtrar 500s
✅ Logs de Acesso (Traefik)
-
Job:
traefik_access -
Arquivo:
/var/log/traefik/access.log - Formato: JSON estruturado
Queries úteis:
{job="traefik"} # Todos access logs
{job="traefik"} | json | StatusCode >= 400 # Erros HTTP 4xx/5xx
{job="traefik"} | json | Duration > 5000 # Requests lentas (>5s)
{job="traefik"} | json | ClientAddr="1.2.3.4" # IP específico
🚨 PRINCIPAIS INDICADORES A OBSERVAR
1. SAÚDE DO SISTEMA (Health Checks)
Prometheus Targets:
up # Status de todos targets (1=up, 0=down)
up{job="prometheus"} == 0 # Alerta: Prometheus down
up{job="traefik"} == 0 # Alerta: Traefik down
2. PERFORMANCE HTTP (Traefik)
Latência:
histogram_quantile(0.95, traefik_http_request_duration_seconds_bucket) # P95 latency
traefik_http_request_duration_seconds_sum / traefik_http_request_duration_seconds_count # Latência média
Volume de Requests:
rate(traefik_http_requests_total[5m]) # RPS por 5min
increase(traefik_http_requests_total[1h]) # Requests última hora
sum by (code) (rate(traefik_http_requests_total[5m])) # RPS por status code
Erros HTTP:
rate(traefik_http_requests_total{code=~"4..|5.."}[5m]) # Taxa erros 4xx/5xx
rate(traefik_http_requests_total{code="500"}[5m]) # Taxa erro 500 específico
3. ERROS EM LOGS
Containers com problemas:
{job="docker"} |= "ERROR" | rate by (container_name) [5m] # Taxa erros por container
{job="docker"} |= "FATAL" or "CRITICAL" # Logs críticos
{job="docker"} |= "OutOfMemory" or "killed" # Problemas de memória
Traefik access errors:
{job="traefik"} | json | StatusCode >= 500 | rate[5m] # Taxa 5xx
{job="traefik"} | json | StatusCode >= 400 and StatusCode < 500 | rate[5m] # Taxa 4xx
📈 DASHBOARDS RECOMENDADOS
🔴 ALTA PRIORIDADE - Dashboards Críticos
1. Sistema Geral (Overview)
- Status de todos os targets
- RPS total e por serviço
- Latência P95/P99
- Taxa de erros 4xx/5xx
2. Logs em Tempo Real
- Stream de erros em tempo real
- Top containers com mais erros
- Análise de patterns de log
3. Traefik Performance
- Requests por minuto
- Latência por endpoint
- Status codes distribution
- Conexões ativas
🟡 MÉDIA PRIORIDADE - Dashboards Úteis
4. Container Health
- Status dos containers
- Logs por container
- Restart frequency
5. System Resources (quando Node Exporter for adicionado)
- CPU utilização
- Memória disponível
- Disk I/O
- Network traffic
🎯 QUERIES ESSENCIAIS PARA TROUBLESHOOTING
Investigação de Problemas
1. Verificar se serviços estão UP:
up
2. Encontrar requests com erro:
{job="traefik"} | json | StatusCode >= 400
3. Logs de erro recentes:
{job="docker"} |= "ERROR" | rate[10m]
4. Performance degradada:
traefik_http_request_duration_seconds{quantile="0.95"} > 2.0
5. Containers que reiniciaram:
{job="docker"} |= "starting" or "stopped"
Monitoramento Proativo
1. Alertas básicos recomendados:
- Target down por > 1 minuto
- Taxa de erro > 5% por 5 minutos
- Latência P95 > 5 segundos por 5 minutos
- Ausência de logs por > 2 minutos
2. Métricas de tendência:
- Growth rate de requests (week over week)
- Padrões de uso por hora do dia
- Distribuição de status codes
🔧 LIMITAÇÕES ATUAIS E WORKAROUNDS
❌ Sem Métricas de Sistema
Faltam: CPU, RAM, Disk, Network dos nós Workaround: Usar logs para identificar problemas Solução: Instalar Node Exporter
❌ Sem Métricas Detalhadas de Containers
Faltam: CPU/RAM por container, I/O
Workaround: Usar docker stats quando necessário
Solução: Instalar cAdvisor
❌ Service Discovery Quebrado
Problema: Não descobre serviços automaticamente Workaround: Adicionar targets estáticos no Prometheus Solução: Corrigir permissões Docker socket
📊 RETENÇÃO DE DADOS
Prometheus (Métricas)
- Período: 30 dias
- Granularidade: 15s (configurável)
- Storage: TSDB local
Loki (Logs)
- Período: 30 dias (720h)
- Compressão: Ativa
- Storage: Filesystem
Grafana (Dashboards)
- Período: Persistente (SQLite)
- Backups: Não configurado ainda
🎯 RESUMO - FOQUE NESTES INDICADORES
📊 Métricas Críticas
-
up- Status dos serviços -
traefik_http_requests_total- Volume HTTP -
traefik_http_request_duration_seconds- Latência
📝 Logs Críticos
-
{job="docker"} |= "ERROR"- Erros de aplicação -
{job="traefik"} | json | StatusCode >= 400- Erros HTTP
🚨 Sinais de Problema
- Target
up= 0 (serviço down) - Taxa alta de 5xx errors
- Latência P95 > 5 segundos
- Logs de ERROR aumentando
- Ausência súbita de logs
📋 Atualizado em: 23/01/2026 🔍 Environment: memude-vps (Docker Swarm) 📊 Dados disponíveis: 2+ dias de histórico
Próximos Passos: Corrigir Docker Service Discovery e adicionar Node Exporter + cAdvisor para monitoramento completo.