1 unstable release
new 0.1.0 | May 15, 2025 |
---|
#8 in #propagation
9KB
70 lines
fastrace-tower
fastrace-tower
is a middleware library that connects fastrace, a distributed tracing library, with tower, modular and reusable components for building robust networking clients and servers. This integration enables seamless trace context propagation across microservice boundaries in applications based on tower.
What is Context Propagation?
Context propagation is a fundamental concept in distributed tracing that enables the correlation of operations spanning multiple services. When a request moves from one service to another, trace context information needs to be passed along, ensuring that all operations are recorded as part of the same trace.
fastrace-tower
implements the W3C Trace Context standard for propagating trace information between services. This ensures compatibility with other tracing systems that follow the same standard.
Features
- 🔄 Automatic Context Propagation: Automatically inject trace context into outgoing gRPC requests.
- 🌉 Seamless Integration: Works seamlessly with the
fastrace
library for complete distributed tracing. - 📊 Full Compatibility: Works with fastrace's collection and reporting capabilities.
How It Works
- When a client makes a request,
FastraceClientLayer
detects if there's an active trace and adds atraceparent
HTTP header with the trace context. - When a server receives the request,
FastraceServerLayer
extracts the trace context from thetraceparent
header and creates a new span as a child of the received context. - If no trace context is provided, the server creates a new root span.
This process ensures that all operations across services are properly connected in the resulting trace, providing visibility into the entire request lifecycle.
License
This project is licensed under the Apache-2.0 license.
Dependencies
~2–7.5MB
~56K SLoC