logo
pub struct CollectorPipeline { /* private fields */ }
Available on crate features collector_client or wasm_collector_client only.
Expand description

CollectorPipeline config and build a exporter targeting a jaeger collector using HTTP protocol.

Environment variables

  • OTEL_EXPORTER_JAEGER_ENDPOINT: set the endpoint of the collector. Usually starts with http:// or https://

  • OTEL_EXPORTER_JAEGER_TIMEOUT: set the timeout of the http client timeout. It only applies to build in http clients.

  • OTEL_EXPORTER_JAEGER_USER: set the username. Part of the authentication for the collector. It only applies to build in http clients.

  • OTEL_EXPORTER_JAEGER_PASSWORD: set the password. Part of the authentication for the collector. It only applies to build in http clients.

Built-in http clients

To help user setup the exporter, opentelemetry-jaeger provides the following build in http client implementation and relative configurations.

Additionally you can enable https

Note that the functions to setup build in http clients override each other. That means if you have a pipeline with the following setup

let tracer = opentelemetry_jaeger::new_collector_pipeline()
        .with_surf()
        .with_reqwest()
        .install_batch(opentelemetry::runtime::Tokio)

The pipeline will use reqwest http client.

Implementations

Available on crate feature collector_client only.

Set the http client timeout.

This function only applies to build in http clients.

Default to be 10s.

Set the collector endpoint.

E.g. “http://localhost:14268/api/traces”

Set the username used in authentication to communicate with the collector.

Note that if the password is not set by calling with_password or set OTEL_EXPORTER_JAEGER_PASSWORD environment variables. The username will be ignored.

This function only applies to build in http clients.

Set the password used in authentication to communicate with the collector.

Note that if the username is not set by calling with_username or set OTEL_EXPORTER_JAEGER_USER environment variables. The username will be ignored.

This function only applies to build in http clients.

Get collector’s username set in the builder. Default to be the value of OTEL_EXPORTER_JAEGER_USER environment variable.

If users uses custom http client. This function can help retrieve the value of OTEL_EXPORTER_JAEGER_USER environment variable.

Get the collector’s password set in the builder. Default to be the value of OTEL_EXPORTER_JAEGER_PASSWORD environment variable.

If users uses custom http client. This function can help retrieve the value of OTEL_EXPORTER_JAEGER_PASSWORD environment variable.

Available on crate feature collector_client only.

Custom http client used to send spans.

Note that all configuration other than the endpoint are not applicable to custom clients.

Available on crate feature isahc_collector_client only.

Use isahc http client in the exporter.

Available on crate feature surf_collector_client only.

Use surf http client in the exporter.

Available on crate feature reqwest_collector_client only.

Use reqwest http client in the exporter.

Available on crate feature reqwest_blocking_collector_client only.

Use reqwest blocking http client in the exporter.

Available on crate feature hyper_collector_client only.

Use hyper http client in the exporter.

Set the service name of the application. It generally is the name of application. Critically, Jaeger backend depends on Span.Process.ServiceName to identify the service that produced the spans.

Opentelemetry allows set the service name using multiple methods. This functions takes priority over all other methods.

If the service name is not set. It will default to be unknown_service.

Config whether to export information of instrumentation library.

It’s required to report instrumentation library as span tags. However it does have a overhead on performance, performance sensitive applications can use this function to opt out reporting instrumentation library.

Default to be true.

Assign the opentelemetry SDK configurations for the exporter pipeline.

For mapping between opentelemetry configurations and Jaeger spans. Please refer the spec.

Examples

Set service name via resource.

use opentelemetry::{sdk::{self, Resource}, KeyValue};

let pipeline = opentelemetry_jaeger::new_collector_pipeline()
                .with_trace_config(
                      sdk::trace::Config::default()
                        .with_resource(Resource::new(vec![KeyValue::new("service.name", "my-service")]))
                );

Assign the batch span processor for the exporter pipeline.

Examples

Set max queue size.

use opentelemetry::sdk::trace::BatchConfig;

let pipeline = opentelemetry_jaeger::new_collector_pipeline()
                .with_batch_processor_config(
                      BatchConfig::default().with_max_queue_size(200)
                );

Build a TracerProvider using a async exporter and configurations from the pipeline.

The exporter will collect spans in a batch and send them to the agent.

It’s possible to lose spans up to a batch when the application shuts down. So users should use shut_down_tracer_provider to block the shut down process until all remaining spans have been sent.

Commonly used runtime are provided via rt-tokio, rt-tokio-current-thread, rt-async-std features.

Similar to build_batch but also returns a tracer from the tracer provider.

The tracer name is opentelemetry-jaeger. The tracer version will be the version of this crate.

Trait Implementations

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Attaches the provided Context to this type, returning a WithContext wrapper. Read more

Attaches the current Context to this type, returning a WithContext wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Wrap the input message T in a tonic::Request

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more