pub use tarpc::trace::TraceId;
use tracing::Span;
pub fn setup_trace_context(ctx: &tarpc::context::Context) {
let trace_id = ctx.trace_context.trace_id;
Span::current().record("trace_id", tracing::field::display(trace_id));
tracing::info!(rpc.trace_id = %trace_id, "RPC: ReceiveRequest");
}
#[cfg(test)]
mod tests {
use super::*;
#[tokio::test]
async fn test_setup_trace_context_from_tarpc_context() {
let ctx = tarpc::context::current();
setup_trace_context(&ctx);
let trace_id = ctx.trace_context.trace_id;
assert!(!trace_id.to_string().is_empty());
}
}