Type Alias opentelemetry_datadog::FieldMappingFn
source · pub type FieldMappingFn = dyn for<'a> Fn(&'a SpanData, &'a ModelConfig) -> &'a str + Send + Sync;Expand description
Custom mapping between opentelemetry spans and datadog spans.
User can provide custom function to change the mapping. It currently supports customizing the following fields in Datadog span protocol.
| field name | default value |
|---|---|
| service name | service name configuration from ModelConfig |
| name | opentelemetry instrumentation library name |
| resource | opentelemetry name |
The function takes a reference to SpanData and a reference to ModelConfig as parameters.
It should return a &str which will be used as the value for the field.
If no custom mapping is provided. Default mapping detailed above will be used.
For example,
use opentelemetry_datadog::{ApiVersion, new_pipeline};
fn main() -> Result<(), opentelemetry::trace::TraceError> {
let tracer = new_pipeline()
.with_service_name("my_app")
.with_api_version(ApiVersion::Version05)
// the custom mapping below will change the all spans' name to datadog spans
.with_name_mapping(|span, model_config|{
"datadog spans"
})
.with_agent_endpoint("http://localhost:8126")
.install_batch(opentelemetry_sdk::runtime::Tokio)?;
Ok(())
}