Files
rippled/docker/telemetry/docker-compose.grafanacloud.yaml
Pratik Mankawde eefadf43fd Stop the filelog-storage overlay disabling cloud auth
The collector exits at startup whenever the Grafana Cloud stack is brought up:

  cannot start pipelines: failed to start "otlphttp/grafanacloud" exporter:
  failed to resolve authenticator "basicauth/grafanacloud": authenticator not found

The developer stack passes otel-collector-filestorage.yaml as a second --config to
persist filelog read offsets. The collector replaces lists on merge rather than
appending them, which that file notes, and it repeats the BASE config's
service.extensions -- [health_check, file_storage/filelog]. Layer the cloud
overlay on top and the base config is swapped for the cloud one, whose list also
carries basicauth/grafanacloud; the storage overlay still comes last, so the
authenticator is dropped and the exporter that needs it cannot start.

Nothing degrades: the collector refuses to start at all, so a host brought up this
way exports no telemetry anywhere, local or cloud.

Adds a cloud variant of the overlay naming all three extensions, mounted by
docker-compose.grafanacloud.yaml over the base one so the command line is
unchanged. The base variant stays as it is for stacks that do not use the cloud
exporter.
2026-08-17 20:59:23 +01:00

33 lines
1.6 KiB
YAML

# Compose override — enable Grafana Cloud export at runtime.
#
# Layer this on top of the base stack to swap the collector onto the
# Grafana Cloud dual-export config and inject the OTLP credentials. The
# base docker-compose.yml is unchanged, so plain `up` stays local-only.
#
# Usage:
# 1. Put your three Grafana Cloud values in docker/telemetry/.env.grafanacloud
# (template: .env.grafanacloud.example). That file is gitignored.
# 2. Bring the stack up with BOTH compose files:
# docker compose -f docker/telemetry/docker-compose.yml \
# -f docker/telemetry/docker-compose.grafanacloud.yaml up -d
# 3. To go back to local-only, bring the stack up with just the base file.
#
# Log mount: inherited from the base compose (./data/logs -> /var/log/xrpld).
# Both nodes' xrpld cfgs write to docker/telemetry/data/logs/<net>/debug.log,
# so no per-box remap is needed here.
services:
otel-collector:
volumes:
# Mount the Grafana Cloud collector config over the default path
# (replaces local-only config for this run; file on disk untouched).
- ./otel-collector-config.grafanacloud.yaml:/etc/otel-collector-config.yaml:ro
# Override the base filelog-storage overlay with the cloud variant. The
# collector replaces service.extensions on merge, and the base variant
# omits basicauth/grafanacloud, which stops the cloud exporter starting.
- ./otel-collector-filestorage.grafanacloud.yaml:/etc/otel-collector-filestorage.yaml:ro
# Secrets from the env file, injected as container env and
# resolved by the collector via ${env:...}.
env_file:
- .env.grafanacloud