Expand description
§OpenTelemetry Google Cloud Trace Exporter
OpenTelemetry exporter implementation for Google Cloud Trace
§Performance
For optimal performance, a batch exporter is recommended as the simple exporter will export
each span synchronously on drop. You can enable the [rt-tokio], [rt-tokio-current-thread]
features and specify a runtime on the pipeline to have a batch exporter
configured for you automatically.
[dependencies]
opentelemetry = { version = "*", features = ["rt-tokio"] }
opentelemetry-gcloud-trace = "*"ⓘ
let gcp_trace_exporter = GcpCloudTraceExporterBuilder::new(config_env_var("PROJECT_ID")?)
let tracer_provider = gcp_trace_exporter.create_provider().await?;
let tracer: opentelemetry_sdk::trace::Tracer = gcp_trace_exporter.install(&tracer_provider).await?;
opentelemetry::global::set_tracer_provider(tracer_provider.clone());
tracer.in_span("doing_work_parent", |cx| {
// ...
});
tracer_provider.shutdown()?;§Configuration
You can specify trace configuration using create_provider_from_builder:
ⓘ
gcp_trace_exporter.create_provider_from_builder (
TracerProvider::builder()
.with_sampler(Sampler::AlwaysOn)
.with_id_generator(RandomIdGenerator::default())
)you can specify resource using with_resource:
ⓘ
let resources = Resource::new(vec![KeyValue::new("service.name", "my-service")]);
GcpCloudTraceExporterBuilder::new(google_project_id).with_resource(resource).await?;Have a look at full examples in the examples directory.