diff --git a/deploy/observability/otel-collector-config.yaml b/deploy/observability/otel-collector-config.yaml index d62b574..aff3d9b 100644 --- a/deploy/observability/otel-collector-config.yaml +++ b/deploy/observability/otel-collector-config.yaml @@ -27,8 +27,9 @@ processors: exporters: # Forward logs and traces to the OpenObserve OTLP/HTTP endpoint. + # The /openobserve prefix matches ZO_BASE_URI in docker-compose.yml. otlphttp/openobserve: - endpoint: http://openobserve:5080/api/default + endpoint: http://openobserve:5080/openobserve/api/default headers: Authorization: Basic ${env:OPENOBSERVE_AUTH_TOKEN} tls: @@ -36,7 +37,7 @@ exporters: # OpenObserve metrics are ingested via Prometheus remote-write. prometheusremotewrite/openobserve: - endpoint: http://openobserve:5080/api/default/prometheus/api/v1/write + endpoint: http://openobserve:5080/openobserve/api/default/prometheus/api/v1/write headers: Authorization: Basic ${env:OPENOBSERVE_AUTH_TOKEN} tls: diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 687847b..9d68629 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -1396,10 +1396,11 @@ enforcing the adapter boundary even in dependency ordering. - The collector also scrapes Prometheus `/metrics` from `api:9100` and each worker (`:9101`/`:9102`/`:9104`/`:9105`/`:9103`). - `otlphttp/openobserve` exporter forwards logs and traces to - `http://openobserve:5080/api/default` using `OPENOBSERVE_AUTH_TOKEN`. + `http://openobserve:5080/openobserve/api/default` using `OPENOBSERVE_AUTH_TOKEN` + (the `/openobserve` prefix matches `ZO_BASE_URI`). - `prometheusremotewrite/openobserve` exporter forwards metrics to - `http://openobserve:5080/api/default/prometheus/api/v1/write` because - OpenObserve ingests metrics through the Prometheus remote-write path. + `http://openobserve:5080/openobserve/api/default/prometheus/api/v1/write` + because OpenObserve ingests metrics through the Prometheus remote-write path. - OpenObserve UI is exposed under `/openobserve/` via nginx. ### OpenTelemetry (`core/telemetry.py`)