| Crates.io | libdd-data-pipeline |
| lib.rs | libdd-data-pipeline |
| version | 1.0.0 |
| created_at | 2025-11-18 12:41:38.714202+00 |
| updated_at | 2025-11-18 12:41:38.714202+00 |
| description | Trace exporter package allowing sending data from datadog SDKs to the Trace Agent. |
| homepage | https://github.com/DataDog/libdatadog/tree/main/libdd-data-pipeline |
| repository | https://github.com/DataDog/libdatadog/tree/main/libdd-data-pipeline |
| max_upload_size | |
| id | 1938401 |
| size | 347,225 |
Data pipeline for processing and exporting APM data to Datadog.
libdd-data-pipeline provides a high-performance pipeline for processing distributed tracing data, applying normalization and obfuscation, computing statistics, and exporting to Datadog backends.
Currently the project is a proof of concept so the API is not definitive and possible frequent changes should be expected.
The current implementation assumes the following requisites must be met by the tracer:
The protocol used is v0.4.
All initialization must come from the tracer. The module won't try to infer any configuration.
The trace must be serialized in msgpack before passing it to the libdd-data-pipeline module.
Sending process is synchronous.
The agent's response will be handled by the tracer.
+--------------+ +--------------+ +--------------+
| | msgpack(v0.4) | | msgpack(v0.x) | |
| +---------------->| +----------------->| |
| Tracer | | Exporter | | Agent |
| | | | | |
| | Response | | Response | |
| |<----------------+ |<-----------------+ |
+--------------+ +--------------+ +--------------+
Currently the libdd-data-pipeline crate exports just one module TraceExporter which follows a builder pattern to
configure the communication.
See trace_exporter.rs.
In case you want to use a binary to hook C-like functions in your language we will provide a crate to build such binary.
This crate is located in:
libdatadog
|
+--libdd-data-pipeline-ffi
cargo build --debug/release
The build will produce two artifacts:
libdata-pipeline-ffi.solibdata-pipeline.h
They will be located in libdatadog/target/\[debug|release\]/.In case of using a Rust framework in order to build the bindings for you language there is the possibility to create a new crate in libdatadog workspace and use the libdd-data-pipeline crate as a dependency.
cargo new libdd-data-pipeline-nodejs --lib
In order to use the TraceExporter in your project the libdd-data-pipeline crate needs to be added in the bindings dependency
list.
[package]
# Package attributes
[lib]
crate-type = ["cdylib"]
[dependencies]
# Language bindings framework dependencies.
libdd-data-pipeline = { path = ../libdd-data-pipeline }
[build-dependencies]
# Build framework dependencies
The building and artifact generation process will depend heavily on the framework selected.