infra: deploy OTel Collector as fan-out layer in compose.yml #210

Closed
opened 2026-03-24 23:50:07 +00:00 by kert · 2 comments
Owner

Add OTel Collector service to route traces→Jaeger, metrics→Prometheus, logs→Loki.

Tasks

  • Add otel-collector service to compose.yml (image: otel/opentelemetry-collector-contrib:latest)
  • Create infra/otel/otel-collector.yml with receivers (OTLP gRPC 4317), processors (batch), exporters (otlp/jaeger, prometheus :8889, loki)
  • Network: observability (internal)
  • Add otel-collector:8889 to Prometheus scrape targets
  • Migrate Traefik, Nessie, Polaris, Trino OTLP endpoints from jaeger:4317 to otel-collector:4317
  • Add health check for collector
  • Traefik route for collector status page (optional)
  • Test: docker compose up otel-collector + verify receivers/exporters healthy
Add OTel Collector service to route traces→Jaeger, metrics→Prometheus, logs→Loki. ## Tasks - [ ] Add `otel-collector` service to `compose.yml` (image: `otel/opentelemetry-collector-contrib:latest`) - [ ] Create `infra/otel/otel-collector.yml` with receivers (OTLP gRPC 4317), processors (batch), exporters (otlp/jaeger, prometheus :8889, loki) - [ ] Network: `observability` (internal) - [ ] Add `otel-collector:8889` to Prometheus scrape targets - [ ] Migrate Traefik, Nessie, Polaris, Trino OTLP endpoints from `jaeger:4317` to `otel-collector:4317` - [ ] Add health check for collector - [ ] Traefik route for collector status page (optional) - [ ] Test: `docker compose up otel-collector` + verify receivers/exporters healthy
kert added this to the P26: Pipeline Telemetry — OTel instrumentation, perf module, Grafana dashboards milestone 2026-03-24 23:50:07 +00:00
Author
Owner

Starting infra work.

  1. Create infra/otel/otel-collector.yml config
  2. Add otel-collector service to compose.yml
  3. Add to Prometheus scrape targets
  4. Migrate existing OTLP endpoints from jaeger:4317 → otel-collector:4317
Starting infra work. 1. Create `infra/otel/otel-collector.yml` config 2. Add otel-collector service to compose.yml 3. Add to Prometheus scrape targets 4. Migrate existing OTLP endpoints from jaeger:4317 → otel-collector:4317
Author
Owner

Complete.

Created:

  • infra/otel/otel-collector.yml — OTLP gRPC+HTTP receiver, batch processor, fan-out exporters:
    • traces → otlp/jaeger (jaeger:4317)
    • metrics → Prometheus scrape (:8889)
    • logs → Loki (loki:3100)
    • health_check extension on :13133

Modified:

  • compose.yml — added otel-collector service (image: otel/opentelemetry-collector-contrib:latest, observability network, health check)
  • compose.yml — migrated Nessie, Polaris, API from jaeger:4317 → otel-collector:4317
  • infra/traefik/traefik.yml — OTLP endpoint → otel-collector:4317
  • infra/trino/etc/config.properties — tracing endpoint → otel-collector:4317
  • infra/prometheus/targets/services.yml — added otel-collector:8889 scrape target

✅ docker compose config --quiet passes.

Complete. **Created:** - `infra/otel/otel-collector.yml` — OTLP gRPC+HTTP receiver, batch processor, fan-out exporters: - traces → `otlp/jaeger` (jaeger:4317) - metrics → Prometheus scrape (:8889) - logs → Loki (loki:3100) - health_check extension on :13133 **Modified:** - `compose.yml` — added `otel-collector` service (image: `otel/opentelemetry-collector-contrib:latest`, observability network, health check) - `compose.yml` — migrated Nessie, Polaris, API from `jaeger:4317` → `otel-collector:4317` - `infra/traefik/traefik.yml` — OTLP endpoint → `otel-collector:4317` - `infra/trino/etc/config.properties` — tracing endpoint → `otel-collector:4317` - `infra/prometheus/targets/services.yml` — added `otel-collector:8889` scrape target ✅ `docker compose config --quiet` passes.
kert closed this issue 2026-03-25 00:08:50 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: homelab/stack#210