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_simplesimply. 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/protocolandhttp/json, it depends onreqwestwhich depends ontokio. So, we must useinstall_batchwithTokio.
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§
Structs§
Functions§
- new_
pipeline - Create a pipeline builder.