Crate minitrace_datadog
source · [−]Expand description
Builtin Datadog reporter for minitrace.
Setup Datadog Agent
Please follow the Datadog official documentation.
Report to Datadog Agent
use std::net::SocketAddr;
use futures::executor::block_on;
use minitrace::prelude::*;
// start trace
let (root_span, collector) = Span::root("root");
// finish trace
drop(root_span);
// collect spans
let spans = block_on(collector.collect());
// encode trace
const ERROR_CODE: i32 = 0;
const TRACE_ID: u64 = 42;
const SPAN_ID_PREFIX: u32 = 42;
const ROOT_PARENT_SPAN_ID: u64 = 0;
let bytes = minitrace_datadog::encode(
"service_name",
"trace_type",
"resource",
ERROR_CODE,
TRACE_ID,
ROOT_PARENT_SPAN_ID,
SPAN_ID_PREFIX,
&spans,
)
.expect("encode error");
// report trace
let socket = SocketAddr::new("127.0.0.1".parse().unwrap(), 8126);
minitrace_datadog::report_blocking(socket, bytes).expect("report error");