From 453dcaf150654b1e34ebe3fd1abef959b4838890 Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Tue, 10 Mar 2026 18:53:06 +0000 Subject: [PATCH] Phase 8: Fix Loki exporter for otel-collector-contrib v0.147+ Upgrade Loki from 2.9.0 to 3.4.2 which supports native OTLP ingestion. Replace removed `loki` exporter with `otlphttp/loki` pointed at Loki's /otlp endpoint. The `loki` exporter was dropped in otel-collector-contrib v0.147.0. Co-Authored-By: Claude Opus 4.6 --- docker/telemetry/docker-compose.yml | 5 +++-- docker/telemetry/otel-collector-config.yaml | 14 +++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/docker/telemetry/docker-compose.yml b/docker/telemetry/docker-compose.yml index ab83fb42a2..f48b40dcc0 100644 --- a/docker/telemetry/docker-compose.yml +++ b/docker/telemetry/docker-compose.yml @@ -70,10 +70,11 @@ services: - rippled-telemetry # Phase 8: Grafana Loki for centralized log ingestion and log-trace - # correlation. Receives logs from OTel Collector's loki exporter. + # correlation. Loki 3.x supports native OTLP ingestion, so the OTel + # Collector exports via otlphttp to Loki's /otlp endpoint. # Query logs via Grafana Explore -> Loki at http://localhost:3000. loki: - image: grafana/loki:2.9.0 + image: grafana/loki:3.4.2 ports: - "3100:3100" command: -config.file=/etc/loki/local-config.yaml diff --git a/docker/telemetry/otel-collector-config.yaml b/docker/telemetry/otel-collector-config.yaml index 8ee2180a15..2a89dad77b 100644 --- a/docker/telemetry/otel-collector-config.yaml +++ b/docker/telemetry/otel-collector-config.yaml @@ -3,7 +3,7 @@ # Pipelines: # traces: OTLP receiver -> batch processor -> debug + Jaeger + Tempo + spanmetrics # metrics: OTLP receiver + spanmetrics connector -> Prometheus exporter -# logs: filelog receiver -> batch processor -> Loki exporter (Phase 8) +# logs: filelog receiver -> batch processor -> otlphttp/Loki (Phase 8) # # rippled sends traces via OTLP/HTTP to port 4318. The collector batches # them, forwards to both Jaeger and Tempo, and derives RED metrics via the @@ -94,11 +94,11 @@ exporters: endpoint: tempo:4317 tls: insecure: true - # Phase 8: Loki exporter sends parsed log entries to Grafana Loki. - # Uses the native loki exporter which translates OTel log records - # into Loki's push API format with label extraction. - loki: - endpoint: http://loki:3100/loki/api/v1/push + # Phase 8: Export logs to Grafana Loki via OTLP/HTTP. Loki 3.x supports + # native OTLP ingestion on its /otlp endpoint, replacing the removed + # loki exporter (dropped in otel-collector-contrib v0.147.0). + otlphttp/loki: + endpoint: http://loki:3100/otlp prometheus: endpoint: 0.0.0.0:8889 @@ -117,4 +117,4 @@ service: logs: receivers: [filelog] processors: [batch] - exporters: [loki] + exporters: [otlphttp/loki]