Logging and observability
Configure logging, distributed tracing, and metrics for the self-hosted io.sign backend
Configure these environment variables on the io.sign backend described in Configuration.
Logging
LOG_LEVEL=info
LOG_PRETTY=falseObservability
io.sign uses OpenTelemetry (OTEL) for distributed tracing and metrics across all four components. Point the service at an OTLP collector:
OTEL_EXPORTER_OTLP_ENDPOINT=http://<collector-host>:4318
OTEL_SERVICE_NAME=io-sign
OTEL_RESOURCE_ATTRIBUTES=deployment.environment=productionThe service auto-instruments incoming REST and gRPC requests, PostgreSQL queries, Redis operations, outgoing HTTP calls such as JWKS fetches, and TLS handshakes.
| Variable | Required | Default | Description |
|---|---|---|---|
OTEL_EXPORTER_OTLP_ENDPOINT | Yes | none | OTLP collector endpoint, for example http://localhost:4318 |
OTEL_SERVICE_NAME | Yes | none | Service name for trace identification, for example io-sign-rest |
OTEL_RESOURCE_ATTRIBUTES | No | none | Extra resource attributes, for example deployment.environment=prod |
OTEL_TRACES_SAMPLER | No | parentbased_always_on | Sampling strategy. Use parentbased_traceidratio in production |
OTEL_TRACES_SAMPLER_ARG | No | 1.0 | Sampling ratio from 0.0 to 1.0. Set to 0.1 for 10% sampling in production |
OTEL_TRACES_EXPORTER | No | otlp | Set to none to disable trace export |
OTEL_METRICS_EXPORTER | No | otlp | Set to none to disable metric export |
To disable telemetry export entirely, for example in local development without a collector:
OTEL_TRACES_EXPORTER=none
OTEL_METRICS_EXPORTER=noneUpdated about 1 month ago
Did this page help you?