Dicas de Uso
💡 DICAS DE USO - OBSERVABILIDADE MEMUDE
Portal MeMude | Guia Prático de Uso da Stack de Monitoramento
🚀 PRIMEIROS PASSOS - WORKFLOW DIÁRIO
🌅 Checklist Matinal (Health Check)
- Acesse o Grafana: https://grafana.memudecore.com.br
-
Verifique targets: Menu → Explore → Prometheus →
up -
Check erros recentes: Menu → Explore → Loki →
{job="docker"} |= "ERROR" -
Status HTTP:
{job="traefik"} | json | StatusCode >= 400
✅ Tudo OK se:
- Todos targets = 1 (UP)
- Poucos ou zero ERRORs recentes
- Taxa baixa de 4xx/5xx
🔍 TÉCNICAS DE INVESTIGAÇÃO
🚨 Quando Algo Está Quebrado
1. Rápido Diagnóstico (1 minuto):
# No Prometheus:
up # Algum serviço down?
# No Loki:
{job="docker"} |= "ERROR" or "FATAL" | line_format "{{.timestamp}} [{{.container_name}}] {{.message}}"
2. Investigação Detalhada (5 minutos):
# Logs por container específico:
{job="docker", container_name="memude_api"} | head 50
# Erros com contexto temporal:
{job="docker"} |= "ERROR" | rate[10m] | quantile_over_time(0.95[10m])
3. Análise de Tendências (10 minutos):
# Performance últimas 24h:
rate(traefik_http_requests_total[5m])
histogram_quantile(0.95, rate(traefik_http_request_duration_seconds_bucket[5m]))
📊 Investigação de Performance
Latência Alta:
# Identificar endpoints lentos:
topk(10, histogram_quantile(0.95, rate(traefik_http_request_duration_seconds_bucket[5m])))
Volume Alto de Requests:
# Top services por RPS:
topk(10, sum by (service) (rate(traefik_http_requests_total[5m])))
Erros HTTP:
# Pattern de erros por IP:
{job="traefik"} | json | StatusCode >= 400 | count by (ClientAddr)
🎯 QUERIES ESSENCIAIS (COPY & PASTE)
📈 PROMETHEUS - Métricas
Status Geral:
up # Status todos targets
Performance HTTP:
rate(traefik_http_requests_total[5m]) # RPS atual
histogram_quantile(0.95, rate(traefik_http_request_duration_seconds_bucket[5m])) # P95 latency
sum by (code) (rate(traefik_http_requests_total[5m])) # RPS por status code
Erros:
rate(traefik_http_requests_total{code=~"5.."}[5m]) # Taxa erro 5xx
rate(traefik_http_requests_total{code=~"4.."}[5m]) # Taxa erro 4xx
📝 LOKI - Logs
Erros Recentes:
{job="docker"} |= "ERROR" or "FATAL" # Todos erros
{job="docker"} |= "ERROR" | tail 20 # Últimos 20 erros
Por Container:
{job="docker", container_name=~"memude.*"} # Containers MeMude
{job="docker", container_name="memude_api"} | tail 50 # Container específico
HTTP Access Logs:
{job="traefik"} | json | StatusCode >= 400 # Erros HTTP
{job="traefik"} | json | Duration > 5000 # Requests lentas
{job="traefik"} | json | line_format "{{.Time}} {{.ClientAddr}} {{.RequestMethod}} {{.RequestPath}} {{.StatusCode}} {{.Duration}}ms"
Análise Temporal:
{job="docker"} |= "ERROR" | rate[10m] # Taxa erros últimos 10min
count_over_time({job="docker"} |= "ERROR"[1h]) # Count erros última hora
🔍 FILTROS AVANÇADOS
Multi-container Search:
{job="docker", container_name=~"memude_.*|postgres|redis"} |= "ERROR"
Regex Patterns:
{job="docker"} |~ "(?i)error|exception|fail" # Case-insensitive
{job="docker"} |~ "memory|oom|killed" # Problemas de memória
JSON Parsing (Traefik):
{job="traefik"} | json | ClientAddr != "127.0.0.1" | StatusCode >= 400
💡 DICAS PRO DE GRAFANA
🎨 Criando Dashboards Eficazes
1. Layout Recomendado:
┌─────────────────────────────────┐
│ System Health (Single Stat) │
├─────────────┬───────────────────┤
│ RPS │ Latência P95 │
├─────────────┼───────────────────┤
│ Erros 4xx │ Erros 5xx │
├─────────────┴───────────────────┤
│ Logs Stream (Real-time) │
└─────────────────────────────────┘
2. Configurações Úteis:
- Refresh: 5s para troubleshooting, 1m para overview
- Time Range: Últimas 1h (troubleshooting), 24h (trends)
- Auto-refresh: ON para dashboards de monitoring
3. Alertas Visuais:
- Verde: up = 1, errors < 1%
- Amarelo: latência > 2s, errors 1-5%
- Vermelho: down, errors > 5%
🔍 Explore Mode - Dicas
-
Ctrl + K→ Command palette -
Shift + Enter→ Execute query -
Ctrl + R→ Run query and refresh
LogQL Pro Tips:
# Combinar múltiplos filtros:
{job="docker"} |= "ERROR" |~ "user|session" |!= "debug"
# Extract fields dinamicamente:
{job="traefik"} | json | line_format "{{.Time}} {{.RequestPath}}"
# Rate com agregação:
sum(rate({job="docker"}[5m])) by (container_name)
📊 Visualizações Eficazes
Para Métricas (Prometheus):
- Time Series: Trends ao longo do tempo
- Single Stat: Status atual (up/down, RPS)
- Table: Breakdown por serviço/endpoint
Para Logs (Loki):
- Logs Panel: Stream em tempo real
- Bar Chart: Count de erros por time bucket
- Pie Chart: Distribuição por container/severity
⚡ SHORTCUTS E AUTOMAÇÕES
🔗 Bookmarks Úteis
Salve estes URLs:
# Grafana Explore - Prometheus
https://grafana.memudecore.com.br/explore?orgId=1&left=%7B%22datasource%22:%22prometheus%22%7D
# Grafana Explore - Loki
https://grafana.memudecore.com.br/explore?orgId=1&left=%7B%22datasource%22:%22loki%22%7D
📋 Scripts de Diagnóstico
Health Check Rápido:
#!/bin/bash
echo "=== MeMude Health Check ==="
curl -s -u admin:memude@2026 "https://metrics.memudecore.com.br/api/v1/query?query=up" | jq '.data.result[].value[1]'
Log Tail Automático:
# Via docker (se tiver acesso):
docker service logs -f observability_promtail | grep ERROR
# Via API Loki (se configurado):
curl -G "http://loki:3100/loki/api/v1/query_range" \
--data-urlencode 'query={job="docker"}|="ERROR"' \
--data-urlencode 'start=2026-01-23T10:00:00Z'
⏰ Análises Agendadas
Weekly Review (Segunda-feira):
- Verificar tendências da semana anterior
- Identificar novos patterns de erro
- Revisar performance metrics
- Planejar otimizações
Monthly Review:
- Analisar growth rate
- Capacity planning
- Revisar alerting rules
- Update dashboards
🚨 ALERTING E NOTIFICAÇÕES
🔔 Configuração de Alertas (Para Implementar)
Alertas Críticos:
# Prometheus Alert Rules (futuro)
groups:
- name: memude-critical
rules:
- alert: TargetDown
expr: up == 0
for: 1m
- alert: HighErrorRate
expr: rate(traefik_http_requests_total{code=~"5.."}[5m]) > 0.1
for: 5m
- alert: HighLatency
expr: histogram_quantile(0.95, rate(traefik_http_request_duration_seconds_bucket[5m])) > 5
for: 5m
📱 Notification Channels
Slack Integration (Recomendado):
{
"channel": "#ops-alerts",
"webhook_url": "https://hooks.slack.com/...",
"title": "MeMude Alert: {{.GroupLabels.alertname}}"
}
🔧 MANUTENÇÃO E OTIMIZAÇÃO
🗄️ Gestão de Storage
Limpeza Manual (se necessário):
# Limpar dados antigos Prometheus (cuidado!)
docker exec observability_prometheus_1 rm -rf /prometheus/data/chunks_head/*
# Ver tamanho dos volumes:
docker volume ls | grep observability
du -sh /var/lib/docker/volumes/observability_*
Monitoring do Storage:
# Tamanho TSDB Prometheus
prometheus_tsdb_symbol_table_size_bytes
prometheus_tsdb_head_series
⚡ Performance Tuning
Grafana:
- Query Cache: 5min para dashboards estáticos
- Concurrent Queries: Limitar para não sobrecarregar
- Data Proxy: Use para evitar CORS
Prometheus:
- Scrape Interval: 15s é bom balanço
- Retention: 30d adequado para começar
- Query Timeout: Aumentar se queries complexas
🎯 CASOS DE USO COMUNS
🔍 "Site está lento"
- Check
traefik_http_request_duration_seconds{quantile="0.95"} - Ver logs:
{job="docker"} |= "slow" or "timeout" - Identificar endpoint: Traefik access logs
- Drill-down no container específico
🚨 "Muitos erros 500"
- Prometheus:
rate(traefik_http_requests_total{code="500"}[5m]) - Loki:
{job="traefik"} | json | StatusCode = 500 - Application logs:
{job="docker", container_name="memude_api"} |= "ERROR" - Timeline correlation entre metrics e logs
🔄 "Sistema reiniciando"
- Container restart logs:
{job="docker"} |= "starting" or "stopped" - Check resource constraints via logs
- Verificar health checks no Traefik
- Correlacionar com deploy events
📈 "Tráfego aumentou muito"
- RPS trend:
rate(traefik_http_requests_total[5m]) - Source analysis:
{job="traefik"} | json | count by (ClientAddr) - Endpoint breakdown: Traefik labels
- Capacity planning baseado em trends
📚 RECURSOS E DOCUMENTAÇÃO
🔗 Links Úteis
- Prometheus Query Language: https://prometheus.io/docs/prometheus/latest/querying/
- LogQL Documentation: https://grafana.com/docs/loki/latest/logql/
- Grafana Dashboards Library: https://grafana.com/grafana/dashboards/
🎓 Learning Path
- Básico: Prometheus queries simples + Loki filtering
- Intermediário: Dashboards custom + alerting
- Avançado: PromQL functions + LogQL aggregations
🎯 RESUMO - WORKFLOW RECOMENDADO
💻 Desenvolvimento/Debugging:
- Explore mode para investigação ad-hoc
- Logs panel sempre aberto durante debugging
- Correlação metrics + logs para root cause
🔄 Operação Diária:
- Dashboard overview pela manhã
- Alerting para problemas críticos
- Weekly review para trends e otimizações
📊 Reporting:
- Screenshots de dashboards para status reports
- Export data via API para análises deeper
- Correlation business metrics com technical metrics
📋 Atualizado em: 23/01/2026 🎯 Target Audience: DevOps, SRE, Developers 📊 Stack Version: Prometheus v2.48.1 + Grafana 10.2.3 + Loki 2.9.3
Pro Tip: Comece simples. Master os queries básicos antes de partir para dashboards complexos. A observabilidade é uma journey, não um destino!
No Comments