Golden Signals no NGINX
Este guia mostra como instrumentar qualquer servidor NGINX para expor os 4 Golden Signals — Throughput (taxa), Latência, Erros e Tráfego — utilizando os logs de acesso e um exporter leve baseado em logs.
Pré-requisitos
NGINX instalado e configurado.
Acesso ao arquivo
/var/log/nginx/access.log.Docker ou Docker Compose.
Prometheus ou OpenTelemetry Collector disponível.
Grafana para visualização (opcional, mas recomendado).
Configurar o log do NGINX
Etapa 1: Atualize o nginx.conf
nginx.confAbra seu nginx.conf e adicione o seguinte formato de log:
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$http_x_forwarded_for" '
'rt=$request_time '
'urt=$upstream_response_time '
'rlen=$request_length '
'conn=$connection conn_reqs=$connection_requests';
access_log /var/log/nginx/access.log main;Importante: Isso adiciona campos essenciais para observabilidade: tempo de requisição, status, método, caminho, tamanho da resposta, entre outros.
Etapa 2: Reinicie o NGINX
Subir o Exporter de Logs do NGINX
Opção A: Docker Compose
Opção B: Docker direto
Configurar o Prometheus (alternativa)
Adicione ao seu prometheus.yml:
Exemplo com Docker Compose (caso o Prometheus esteja na mesma rede):
Importante: Depois reinicie o Prometheus.
Integrar com o OpenTelemetry Collector (Melhor)
Se você já usa OpenTelemetry — ou quer uma alternativa mais leve e flexível ao Prometheus — o Collector é a melhor opção.
Exemplo básico de configuração (otel-collector-config.yaml):
otel-collector-config.yaml):Para rodar o Collector:
Importante: Com o Collector, você pode enviar métricas não apenas para o Grafana, Tempo, Loki ou Prometheus — mas também para qualquer backend compatível com OTLP, com total controle de rotas, filtros e transformações.
Acessar o Endpoint de Métricas
Você pode testar o exporter com:
Ou acessar no navegador:
Você verá métricas como:
Usar o Dashboard Pronto no Grafana
Criamos um dashboard pronto para visualizar todos os Golden Signals do NGINX:
Dashboard Grafana: NGINX Golden Signals
Painéis incluídos:
Requisições por segundo
rate(http_requests_total[1m])
Taxa de erro (4xx/5xx)
rate(http_errors_total[1m])
Latência P95
histogram_quantile(0.95, rate(http_duration_seconds_bucket[5m]))
Tráfego por rota
rate(http_traffic_bytes_total[1m])
Normalização de Paths
Para evitar explosão de cardinalidade nas labels, estas regras são aplicadas:
/user/123→/user/:id/api/*→/api.php→/:php.env→/:env/admin/*→/adminQualquer path com mais de 5 barras →
/:complex
Resumo
Configurar o log do NGINX
Adicionar log_format ao nginx.conf
Subir o exporter
Via Docker ou Docker Compose
Coletar as métricas
Via Prometheus ou Collector
Acessar métricas
Visualizar no Grafana
Usar o Dashboard Golden Signals (link acima)
Bônus: Cobertura dos Golden Signals
Throughput
http_requests_total
Latência
http_duration_seconds
Erros
http_errors_total
Tráfego
http_traffic_bytes_total
Last updated
Was this helpful?

