1.5 KiB
1.5 KiB
| title | weight | cSpell:ignore |
|---|---|---|
| Exporters | 50 | chrono millis ostream |
{{% docs/languages/exporters/intro rust %}}
OTLP endpoint
To send trace data to a OTLP endpoint (like the collector or Jaeger) you'll want to use an exporter crate, such as opentelemetry-otlp:
[dependencies]
opentelemetry-otlp = { version = "{{% version-from-registry exporter-rust-otlp %}}", features = ["default"] }
Next, configure the exporter to point at an OTLP endpoint. For example you can
update init_tracer in dice_server.rs from the
Getting Started like the following:
fn init_tracer() {
match SpanExporter::new_tonic(ExportConfig::default(), TonicConfig::default()) {
Ok(exporter) => {
global::set_text_map_propagator(TraceContextPropagator::new());
let provider = TracerProvider::builder()
.with_simple_exporter(exporter)
.build();
global::set_tracer_provider(provider);
},
Err(why) => panic!("{:?}", why)
}
}
To try out the OTLPTraceExporter quickly, you can run Jaeger in a docker
container:
docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
-e COLLECTOR_OTLP_ENABLED=true \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
-p 14250:14250 \
-p 14268:14268 \
-p 14269:14269 \
-p 9411:9411 \
jaegertracing/all-in-one:latest