Crate otlp_embedded
source ·Expand description
otlp-embedded
A simple in-memory implementation of the OpenTelemetry trace collector with a Web UI for visualizing the traces that can be embedded into other Rust applications.
Example
ⓘ
use otlp_embedded::{ui_app, State, TraceServiceImpl, TraceServiceServer};
#[tokio::main]
async fn main() {
let state = State::new(100);
let state_clone = state.clone();
tokio::spawn(async {
axum::Server::bind(&"0.0.0.0:10188".parse().unwrap())
.serve(ui_app(state, "/").into_make_service())
.await
.unwrap();
});
tonic::transport::Server::builder()
.add_service(TraceServiceServer::new(TraceServiceImpl::new(state_clone)))
.serve("0.0.0.0:43177".parse().unwrap())
.await
.unwrap();
}
Modules
- The generated protobuf and gRPC code for OpenTelemetry trace service.
Structs
- In-memory state that maintains the most recent traces.
- A trace that consists of multiple spans in a tree structure.
- The implementation of
TraceService
. - Service that can be used to push spans between one Application instrumented with OpenTelemetry and a collector, or between a collector and a central collector (in this case spans are sent/received to/from multiple Applications).
Traits
- Generated trait containing gRPC methods that should be implemented for use with TraceServiceServer.
Functions
- Create a new
axum::Router
for the Jaeger UI to visualize the traces stored in the givenStateRef
.
Type Aliases
- A reference to the
State
.