ChainSafe / ChainSafe/canton-middleware

Add distributed tracing (OpenTelemetry)

Open
#207 0 comments 0 reactions 0 assignees View on GitHub
Priority: P3 Type: Enhancement
Dominant language
Go
Stars
1
Forks
1
Avg merge
40m
Merged PRs (30d)
1

Description

## Description

The middleware has no distributed tracing. For a multi-service system (Relayer ↔ Canton ↔ Ethereum ↔ API Server ↔ Indexer), traces would significantly improve debugging of cross-service latency and failures.

Scope:

- Add go.opentelemetry.io/otel dependency
- Instrument outgoing HTTP calls (Canton Ledger API, Ethereum RPC) with trace propagation
- Instrument incoming HTTP handlers with OTEL middleware
- Add a Jaeger or OTEL Collector service to docker-compose (under the monitoring profile)
- Export traces via OTLP

Acceptance Criteria:

- [ ] Trace spans are created for bridge transfer lifecycle (receive event → submit tx → confirm)
- [ ] Trace context propagated across HTTP calls
- [ ] Jaeger UI accessible locally to view traces
- [ ] Config toggle to enable/disable tracing (tracing.enabled)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.