Observabilidade com Grafana Externo (Ilumin)
Este documento descreve como usar o Grafana ja existente (grafana.iaxp.cloud) com a stack de observabilidade publicada via docker-compose.observability.ilumin.yml.
Objetivo
- Manter o Grafana centralizado e online na VPS.
- Publicar apenas os backends de observabilidade (Alloy, Tempo, Loki, Prometheus) no Ilumin.
- Conectar o Grafana externo aos servicos via HTTPS.
Arquitetura
- Grafana (externo):
https://grafana.iaxp.cloud - Alloy (coleta/roteamento OTLP):
https://grafana-alloy.iaxp.cloud - Tempo (traces):
https://grafana-tempo.iaxp.cloud - Loki (logs):
https://grafana-loki.iaxp.cloud - Prometheus (metricas):
https://grafana-prometheus.iaxp.cloud
Observacao: no Grafana, os datasources principais sao Tempo, Loki e Prometheus. O endpoint do Alloy e usado pelos apps instrumentados para enviar OTLP.
Compose utilizado
Arquivo: docker-compose.observability.ilumin.yml
Servicos
alloy(grafana/alloy:latest)tempo(grafana/tempo:latest)loki(grafana/loki:latest)prometheus(prom/prometheus:latest)
Redes
traefik(external)internal
Cada servico publico esta em traefik + internal, com labels Traefik e TLS (letsencrypt).
Volumes
tempo_dataloki_dataprometheus_data
Subindo a stack no Ilumin
- Use o conteudo de
docker-compose.observability.ilumin.ymlno app custom do Ilumin. - Garanta que os DNS dos subdominios apontem para o servidor Ilumin.
- Aguarde provisionamento de certificado TLS.
- Valide os endpoints:
https://grafana-tempo.iaxp.cloudhttps://grafana-loki.iaxp.cloudhttps://grafana-prometheus.iaxp.cloud
Conectando no Grafana ja online
No Grafana (grafana.iaxp.cloud):
- Acesse Connections > Data sources.
- Adicione os datasources:
- Prometheus:
https://grafana-prometheus.iaxp.cloud - Loki:
https://grafana-loki.iaxp.cloud - Tempo:
https://grafana-tempo.iaxp.cloud
- Prometheus:
- Em cada datasource, clique em Save & test.
Ajustes recomendados no Grafana
Tempo -> Trace to logs
- Logs datasource: Loki
- Tags sugeridas:
service.name,service.instance.id,trace_id
Tempo -> Trace to metrics
- Metrics datasource: Prometheus
- Tags sugeridas:
service.name,service.instance.id
Loki -> Derived field para trace_id
Crie um derived field para abrir trace no Tempo.
- Name:
trace_id - Regex sugerida:
trace[_-]?id[=:"]+([a-f0-9]{32}) - Data source: Tempo
Configuracao das aplicacoes instrumentadas
Para enviar telemetria ao Alloy:
OTEL_EXPORTER_OTLP_ENDPOINT=https://grafana-alloy.iaxp.cloudOTEL_EXPORTER_OTLP_PROTOCOL=http/protobufOTEL_TRACES_SAMPLER=parentbased_traceidratioOTEL_TRACES_SAMPLER_ARG=0.1(ou valor desejado)OTEL_LOGS_ENABLED=true(se quiser export de logs via OTLP)
Troubleshooting rapido
- Datasource sem conexao: validar DNS, TLS e se o router Traefik do servico esta ativo.
- Sem traces: confirmar
OTEL_EXPORTER_OTLP_ENDPOINTapontando para Alloy. - Sem metricas: confirmar
OTEL_NODE_EXPERIMENTAL_SDK_METRICS=truenos apps Node. - Sem logs no Loki: confirmar
OTEL_LOGS_ENABLED=truee pipeline de logs no Alloy.