Skip to content

Conversation

@himaschal
Copy link
Collaborator

Summary

This PR integrates the digicert/ctutils shared logging library to enable OpenTelemetry-compliant distributed tracing across the Trillian log server and signer components.

Changes

  • config/config.go: New centralized logging configuration with InitLogging()
  • cmd/trillian_log_server/main.go: Initialize OTEL logging on startup
  • cmd/trillian_log_signer/main.go: Initialize OTEL logging on startup
  • cmd/internal/serverutil/main.go: Add chained gRPC interceptors for trace propagation
  • examples/deployment/docker/log_server/Dockerfile.unified: Docker build with private ctutils dependency
  • README.md: Add Observability section documenting OTEL configuration
  • go.mod/go.sum: Add ctutils v0.1.6 and OTEL dependencies

Configuration

Tracing is controlled via environment variables:

Variable Description Default
OTEL_ENABLED Enable OpenTelemetry false
OTEL_EXPORTER Exporter type (otlp or stdout) stdout
OTEL_COLLECTOR_ENDPOINT OTLP collector URL localhost:4317
OTEL_SERVICE_NAME Service name for traces service-specific
OTEL_SAMPLE_RATIO Sampling ratio (0.0-1.0) 1.0

Related PRs

Testing

Manual testing with local OTEL collector. Full integration testing planned.

Refs: RA-8279

… integration

This change integrates the digicert/ctutils shared logging library to enable
OpenTelemetry-compliant distributed tracing across the Trillian log server and
signer components.

Key changes:
- Add config/config.go with InitLogging() for centralized OTEL configuration
- Update log_server and log_signer main.go to call config.InitLogging()
- Add chained gRPC interceptors for trace context propagation
- Add Dockerfile.unified with SSH access for private ctutils dependency
- Update go.mod/go.sum for ctutils v0.1.6 and OTEL dependencies

The logging configuration is driven by environment variables:
- OTEL_ENABLED: Enable/disable OpenTelemetry (default: false)
- OTEL_EXPORTER: Exporter type ('otlp' or 'stdout')
- OTEL_COLLECTOR_ENDPOINT: OTLP collector URL
- OTEL_SERVICE_NAME: Service name for traces
- OTEL_SAMPLE_RATIO: Sampling ratio (0.0-1.0)

This enables end-to-end request tracing from CTFE through Trillian backends,
allowing operators to correlate logs and traces across the CT infrastructure.

Refs: RA-8279
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant