Exporters
You are viewing the English version of this page because it has not yet been fully translated. Interested in helping out? See Contributing.
将遥测数据发送到 OpenTelemetry Collector,以确保其被正确导出。 在生产环境中使用 Collector 是最佳实践。若要可视化你的遥测数据,可将其导出到后端系统,例如 Jaeger、Zipkin、 Prometheus,或某个特定厂商的后端。
可用的导出器
镜像仓库中包含一份 Rust 可用导出器的列表。
在所有导出器中,OpenTelemetry 协议 (OTLP) 导出器是以 OpenTelemetry 数据模型为基础设计的, 能够无信息丢失地输出 OTel 数据。此外,许多处理遥测数据的工具都支持 OTLP (例如 Prometheus、Jaeger 和大多数厂商),在你需要时为你提供高度的灵活性。 若要了解更多关于 OTLP 的信息,请参阅 OTLP 规范。
本页面介绍了主要的 OpenTelemetry 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:
For example, you can update the Getting Started dice server by adding the new dependency:
[dependencies]
opentelemetry-otlp = { version = "0.28.0", features = ["grpc-tonic"] }
Next, update init_tracer_provider
in dice_server.rs
to configure the
exporter to point at an OTLP endpoint:
use std::convert::Infallible;
use std::net::SocketAddr;
use std::sync::OnceLock;
use http_body_util::Full;
use hyper::{Method, Request, Response, body::Bytes, server::conn::http1, service::service_fn};
use hyper_util::rt::TokioIo;
use opentelemetry::global::{self, BoxedTracer};
use opentelemetry::trace::{Span, SpanKind, Status, Tracer};
use opentelemetry_otlp::SpanExporter;
use opentelemetry_sdk::{Resource, propagation::TraceContextPropagator, trace::SdkTracerProvider};
use rand::Rng;
use tokio::net::TcpListener;
// ...
fn init_tracer_provider() {
let exporter = SpanExporter::builder()
.with_tonic()
.build()
.expect("Failed to create span exporter");
let provider = SdkTracerProvider::builder()
.with_resource(Resource::builder().with_service_name("dice_server").build())
.with_batch_exporter(exporter)
.build();
global::set_text_map_propagator(TraceContextPropagator::new());
global::set_tracer_provider(provider);
}
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
Make requests on http://localhost:8080/rolldice and check the traces on Jaeger on http://localhost:16686
Feedback
Was this page helpful?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!