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コレクターにテレメトリーを送信し、正しくエクスポートされることを確認してください。 本番環境でコレクターを使用することはベストプラクティスです。 テレメトリーを可視化するために、JaegerZipkinPrometheus、またはベンダー固有のようなバックエンドにエクスポートしてください。

使用可能なエクスポーター

レジストリには、Rust 用のエクスポーターのリストが含まれています。

エクスポーターの中でも、OpenTelemetry Protocol (OTLP)エクスポーターは、OpenTelemetryのデータモデルを考慮して設計されており、OTelデータを情報の損失なく出力します。 さらに、多くのテレメトリーデータを扱うツールがOTLPに対応しており(たとえば、PrometheusJaegerやほとんどのベンダー)、必要なときに高い柔軟性を提供します。 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