Skip to content

Commit 9b9cfed

Browse files
committed
chore: update otlp exporter example
1 parent 8327c95 commit 9b9cfed

File tree

2 files changed

+52
-6
lines changed

2 files changed

+52
-6
lines changed

opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ bench = false
1515
[features]
1616
default = ["reqwest-blocking"]
1717
reqwest-blocking = ["opentelemetry-otlp/reqwest-blocking-client"]
18+
gzip = ["opentelemetry-otlp/gzip-http"]
19+
zstd = ["opentelemetry-otlp/zstd-http"]
1820

1921
[dependencies]
2022
opentelemetry = { path = "../../../opentelemetry" }

opentelemetry-otlp/examples/basic-otlp-http/src/main.rs

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ use opentelemetry::{
66
use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
77
use opentelemetry_otlp::WithExportConfig;
88
use opentelemetry_otlp::{LogExporter, MetricExporter, Protocol, SpanExporter};
9+
#[cfg(any(feature = "gzip", feature = "zstd"))]
10+
use opentelemetry_otlp::{Compression, WithHttpConfig};
911
use opentelemetry_sdk::Resource;
1012
use opentelemetry_sdk::{
1113
logs::SdkLoggerProvider, metrics::SdkMeterProvider, trace::SdkTracerProvider,
@@ -27,9 +29,23 @@ fn get_resource() -> Resource {
2729
}
2830

2931
fn init_logs() -> SdkLoggerProvider {
30-
let exporter = LogExporter::builder()
32+
let mut exporter_builder = LogExporter::builder()
3133
.with_http()
32-
.with_protocol(Protocol::HttpBinary)
34+
.with_protocol(Protocol::HttpBinary);
35+
36+
#[cfg(feature = "gzip")]
37+
{
38+
exporter_builder = exporter_builder.with_compression(Compression::Gzip);
39+
println!("Using gzip compression for logs");
40+
}
41+
42+
#[cfg(all(feature = "zstd", not(feature = "gzip")))]
43+
{
44+
exporter_builder = exporter_builder.with_compression(Compression::Zstd);
45+
println!("Using zstd compression for logs");
46+
}
47+
48+
let exporter = exporter_builder
3349
.build()
3450
.expect("Failed to create log exporter");
3551

@@ -40,9 +56,23 @@ fn init_logs() -> SdkLoggerProvider {
4056
}
4157

4258
fn init_traces() -> SdkTracerProvider {
43-
let exporter = SpanExporter::builder()
59+
let mut exporter_builder = SpanExporter::builder()
4460
.with_http()
45-
.with_protocol(Protocol::HttpBinary) //can be changed to `Protocol::HttpJson` to export in JSON format
61+
.with_protocol(Protocol::HttpBinary); //can be changed to `Protocol::HttpJson` to export in JSON format
62+
63+
#[cfg(feature = "gzip")]
64+
{
65+
exporter_builder = exporter_builder.with_compression(Compression::Gzip);
66+
println!("Using gzip compression for traces");
67+
}
68+
69+
#[cfg(all(feature = "zstd", not(feature = "gzip")))]
70+
{
71+
exporter_builder = exporter_builder.with_compression(Compression::Zstd);
72+
println!("Using zstd compression for traces");
73+
}
74+
75+
let exporter = exporter_builder
4676
.build()
4777
.expect("Failed to create trace exporter");
4878

@@ -53,9 +83,23 @@ fn init_traces() -> SdkTracerProvider {
5383
}
5484

5585
fn init_metrics() -> SdkMeterProvider {
56-
let exporter = MetricExporter::builder()
86+
let mut exporter_builder = MetricExporter::builder()
5787
.with_http()
58-
.with_protocol(Protocol::HttpBinary) //can be changed to `Protocol::HttpJson` to export in JSON format
88+
.with_protocol(Protocol::HttpBinary); //can be changed to `Protocol::HttpJson` to export in JSON format
89+
90+
#[cfg(feature = "gzip")]
91+
{
92+
exporter_builder = exporter_builder.with_compression(Compression::Gzip);
93+
println!("Using gzip compression for metrics");
94+
}
95+
96+
#[cfg(all(feature = "zstd", not(feature = "gzip")))]
97+
{
98+
exporter_builder = exporter_builder.with_compression(Compression::Zstd);
99+
println!("Using zstd compression for metrics");
100+
}
101+
102+
let exporter = exporter_builder
59103
.build()
60104
.expect("Failed to create metric exporter");
61105

0 commit comments

Comments
 (0)