Telemetry
Telemetry is off by default. Workflow readiness and transactions never depend on a collector. OpenTelemetry is optional diagnostics only: it is not the Insight Engine’s cursor and cannot authorize a proposal (see The Insight Engine).
Disabled
Section titled “Disabled”ABADA_TELEMETRY_ENABLED=falseOTEL_SDK_DISABLED=trueStart only the core profile. No exporter or collector is created; structured container logs and local rolling JSON logs remain available.
Bundled stack
Section titled “Bundled stack”./release/abada-platform up dev --telemetryThe overlay starts OpenTelemetry Collector, Prometheus, Jaeger, Loki, Alloy
and Grafana. Grafana is loopback-only at http://127.0.0.1:3000; production
requires a non-placeholder GRAFANA_ADMIN_PASSWORD of at least 16 characters.
Datasources and dashboards are provisioned automatically. The internal
telemetry-health container checks every bundled backend; it does not gate the
engine health endpoint.
Alloy tails only the named engine_logs volume, persists offsets, and runs
with anonymous usage reporting disabled. It has no Docker socket access.
The one-shot jaeger-volume-init container prepares the persistent Badger
volume for Jaeger’s non-root UID and exits before Jaeger starts. It has no
network access and is expected to show as Exited (0) after initialization.
External OTLP
Section titled “External OTLP”Do not add compose.telemetry.yaml. Set:
ABADA_TELEMETRY_ENABLED=trueABADA_TELEMETRY_OTLP_ENDPOINT=https://collector.example.net:4318OTEL_SDK_DISABLED=falseABADA_TRACING_SAMPLING_PROBABILITY=0.1The endpoint must be an HTTP(S) OTLP base URL; Abada appends /v1/traces and
/v1/metrics. Export uses bounded batches, queueing and five-second timeouts.
Collector failure may lose telemetry but cannot roll back a workflow command.
Verify engine readiness separately from telemetry configuration:
curl -fsS http://api.localhost/api/actuator/health/readinesscurl -fsS http://api.localhost/api/actuator/health/telemetryExportFor a failure drill, stop otel-collector, complete a task, confirm the task
commits, then restart the collector. At-least-once workflow behavior does not
imply lossless telemetry delivery.