Crate opentelemetry_gcloud_trace

Crate opentelemetry_gcloud_trace 

Source
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.

Modules§

errors

Structs§

GcpCloudTraceExporter
GcpCloudTraceExporterBuilder
GcpCloudTraceExporterBuilderInit

Type Aliases§

SdkTracer
TraceExportResult