Skip to content

Commit eaf22d3

Browse files
committed
setup also tracing in examples
1 parent e03beb2 commit eaf22d3

File tree

4 files changed

+71
-33
lines changed

4 files changed

+71
-33
lines changed

opentelemetry-instrumentation-tower/examples/axum-http-service/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ axum = { features = ["http1", "tokio"], version = "0.8", default-features = fals
1212
bytes = { version = "1", default-features = false }
1313
opentelemetry = { workspace = true}
1414
opentelemetry_sdk = { workspace = true, default-features = false }
15-
opentelemetry-otlp = { version = "0.31.0", features = ["grpc-tonic", "metrics"], default-features = false }
15+
opentelemetry-otlp = { version = "0.31.0", features = ["grpc-tonic", "metrics", "trace"], default-features = false }
1616
tokio = { version = "1", features = ["rt-multi-thread"], default-features = false }
1717
rand_09 = { package = "rand", version = "0.9" }
1818

1919
[lints]
20-
workspace = true
20+
workspace = true

opentelemetry-instrumentation-tower/examples/axum-http-service/src/main.rs

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ use axum::routing::{get, post, put, Router};
22
use bytes::Bytes;
33
use opentelemetry::global;
44
use opentelemetry_instrumentation_tower::HTTPLayer;
5-
use opentelemetry_otlp::MetricExporter;
6-
use opentelemetry_sdk::metrics::{PeriodicReader, SdkMeterProvider};
5+
use opentelemetry_otlp::{MetricExporter, SpanExporter};
6+
use opentelemetry_sdk::{
7+
metrics::{PeriodicReader, SdkMeterProvider},
8+
trace::SdkTracerProvider,
9+
};
710
use std::time::Duration;
811

912
const SERVICE_NAME: &str = "example-axum-http-service";
@@ -42,22 +45,39 @@ async fn handle() -> Bytes {
4245

4346
#[tokio::main]
4447
async fn main() {
45-
let exporter = MetricExporter::builder()
46-
.with_tonic()
47-
// .with_endpoint("http://localhost:4317") // default; leave out in favor of env var OTEL_EXPORTER_OTLP_ENDPOINT
48-
.build()
49-
.unwrap();
48+
{
49+
let exporter = MetricExporter::builder()
50+
.with_tonic()
51+
// .with_endpoint("http://localhost:4317") // default; leave out in favor of env var OTEL_EXPORTER_OTLP_ENDPOINT
52+
.build()
53+
.unwrap();
54+
55+
let reader = PeriodicReader::builder(exporter)
56+
.with_interval(_OTEL_METRIC_EXPORT_INTERVAL)
57+
.build();
58+
59+
let provider = SdkMeterProvider::builder()
60+
.with_reader(reader)
61+
.with_resource(init_otel_resource())
62+
.build();
5063

51-
let reader = PeriodicReader::builder(exporter)
52-
.with_interval(_OTEL_METRIC_EXPORT_INTERVAL)
53-
.build();
64+
global::set_meter_provider(provider);
65+
}
66+
67+
{
68+
let exporter = SpanExporter::builder()
69+
.with_tonic()
70+
// .with_endpoint("http://localhost:4317") // default; leave out in favor of env var OTEL_EXPORTER_OTLP_ENDPOINT
71+
.build()
72+
.unwrap();
5473

55-
let meter_provider = SdkMeterProvider::builder()
56-
.with_reader(reader)
57-
.with_resource(init_otel_resource())
58-
.build();
74+
let provider = SdkTracerProvider::builder()
75+
.with_batch_exporter(exporter)
76+
.with_resource(init_otel_resource())
77+
.build();
5978

60-
global::set_meter_provider(meter_provider);
79+
global::set_tracer_provider(provider);
80+
}
6181

6282
let otel_service_layer = HTTPLayer::new();
6383

opentelemetry-instrumentation-tower/examples/hyper-http-service/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ http-body-util = { version = "0.1", default-features = false }
1313
hyper-util = { version = "0.1", features = ["http1", "service", "server", "tokio"], default-features = false }
1414
opentelemetry = { workspace = true}
1515
opentelemetry_sdk = { workspace = true, default-features = false }
16-
opentelemetry-otlp = { version = "0.31.0", features = ["grpc-tonic", "metrics"], default-features = false }
16+
opentelemetry-otlp = { version = "0.31.0", features = ["grpc-tonic", "metrics", "trace"], default-features = false }
1717
tokio = { version = "1", features = ["rt-multi-thread", "macros"], default-features = false }
1818
tower = { version = "0.5", default-features = false }
1919
rand_09 = { package = "rand", version = "0.9" }
2020

2121
[lints]
22-
workspace = true
22+
workspace = true

opentelemetry-instrumentation-tower/examples/hyper-http-service/src/main.rs

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ use hyper::body::Bytes;
33
use hyper::{Request, Response};
44
use opentelemetry::global;
55
use opentelemetry_instrumentation_tower::HTTPLayer;
6-
use opentelemetry_otlp::MetricExporter;
6+
use opentelemetry_otlp::{MetricExporter, SpanExporter};
77
use opentelemetry_sdk::metrics::{PeriodicReader, SdkMeterProvider};
8+
use opentelemetry_sdk::trace::SdkTracerProvider;
89
use std::convert::Infallible;
910
use std::net::SocketAddr;
1011
use std::time::Duration;
@@ -47,22 +48,39 @@ async fn handle(_req: Request<hyper::body::Incoming>) -> Result<Response<Full<By
4748

4849
#[tokio::main]
4950
async fn main() {
50-
let exporter = MetricExporter::builder()
51-
.with_tonic()
52-
// .with_endpoint("http://localhost:4317") // default; leave out in favor of env var OTEL_EXPORTER_OTLP_ENDPOINT
53-
.build()
54-
.unwrap();
51+
{
52+
let exporter = MetricExporter::builder()
53+
.with_tonic()
54+
// .with_endpoint("http://localhost:4317") // default; leave out in favor of env var OTEL_EXPORTER_OTLP_ENDPOINT
55+
.build()
56+
.unwrap();
57+
58+
let reader = PeriodicReader::builder(exporter)
59+
.with_interval(_OTEL_METRIC_EXPORT_INTERVAL)
60+
.build();
61+
62+
let provider = SdkMeterProvider::builder()
63+
.with_reader(reader)
64+
.with_resource(init_otel_resource())
65+
.build();
5566

56-
let reader = PeriodicReader::builder(exporter)
57-
.with_interval(_OTEL_METRIC_EXPORT_INTERVAL)
58-
.build();
67+
global::set_meter_provider(provider);
68+
}
69+
70+
{
71+
let exporter = SpanExporter::builder()
72+
.with_tonic()
73+
// .with_endpoint("http://localhost:4317") // default; leave out in favor of env var OTEL_EXPORTER_OTLP_ENDPOINT
74+
.build()
75+
.unwrap();
5976

60-
let meter_provider = SdkMeterProvider::builder()
61-
.with_reader(reader)
62-
.with_resource(init_otel_resource())
63-
.build();
77+
let provider = SdkTracerProvider::builder()
78+
.with_batch_exporter(exporter)
79+
.with_resource(init_otel_resource())
80+
.build();
6481

65-
global::set_meter_provider(meter_provider);
82+
global::set_tracer_provider(provider);
83+
}
6684

6785
let otel_service_layer = HTTPLayer::new();
6886

0 commit comments

Comments
 (0)