Crate otlp_exporter
source ·Expand description
THIS IS A PERSONAL PROJECT. IT IS STILL IN DEVELOPMENT. USE ON YOUR OWN RISK.
An exporter exports trace, metric and log data in the OTLP format.
Support Matrix
Protocol
protocol | trace | metric | log |
---|---|---|---|
grpc(tonic) | ✓ | ☐ | ☐ |
grpc(grpcio)1 | ✓ | ☐ | ☐ |
http/protobuf | ✓ | ☐ | ☐ |
http/json | blocking | ☐ | ☐ |
TLS
dep | std | provided ca | client key |
---|---|---|---|
tonic | not test | not test | not test |
grpcio | not test | not test | not test |
reqwest | not test | not test | not test |
Examples
- For
grpc
, we can useinstall_simple
simply. It usesfuture_executors
.
use opentelemetry_api::{trace::Tracer, global, KeyValue};
use opentelemetry_sdk::Resource;
#[tokio::main]
pub async fn main() {
let tracer = match otlp_exporter::new_pipeline()
.trace()
.with_env()
.with_tracer_config(
opentelemetry_sdk::trace::config().with_resource(Resource::new(vec![KeyValue::new(
opentelemetry_semantic_conventions::resource::SERVICE_NAME,
"otlp-exporter-example",
)])),
)
.install_simple()
{
Ok(tracer) => tracer,
Err(e) => {
println!("error: {e}");
return;
}
};
tracer.in_span("otlp-exporter trace example", |_cx| {});
global::shutdown_tracer_provider();
}
- For
http/protocol
andhttp/json
, it depends onreqwest
which depends ontokio
. So, we must useinstall_batch
withTokio
.
use opentelemetry_api::{trace::Tracer, global, KeyValue};
use opentelemetry_sdk::{runtime::Tokio, Resource};
#[tokio::main]
pub async fn main() {
let tracer = match otlp_exporter::new_pipeline()
.trace()
.with_env()
.with_tracer_config(
opentelemetry_sdk::trace::config().with_resource(Resource::new(vec![KeyValue::new(
opentelemetry_semantic_conventions::resource::SERVICE_NAME,
"otlp-exporter-example",
)])),
)
.install_batch(Tokio)
{
Ok(tracer) => tracer,
Err(e) => {
println!("error: {e}");
return;
}
};
tracer.in_span("otlp-exporter trace example", |_cx| {});
global::shutdown_tracer_provider();
}
As of 2023-08-16, grpc 0.12.1 can’t be compiled with gcc 13, you can patch it with its git repo. ↩
Modules
- OTLP exporter configurations.
Structs
Functions
- Create a pipeline builder.