Skip to content

Commit 26bdb03

Browse files
committed
revert unwanted example change
1 parent 96bb89c commit 26bdb03

File tree

2 files changed

+91
-30
lines changed

2 files changed

+91
-30
lines changed

examples/metrics-basic/Cargo.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ opentelemetry_sdk = { path = "../../opentelemetry-sdk", features = ["metrics", "
1111
opentelemetry-stdout = { path = "../../opentelemetry-stdout", features = ["metrics"]}
1212
tokio = { workspace = true, features = ["full"] }
1313
serde_json = { workspace = true }
14-
tracing = { workspace = true, features = ["std"]}
15-
tracing-core = { workspace = true }
16-
tracing-subscriber = { version = "0.3.18", features = ["env-filter","registry", "std"]}
1714

1815
[features]
1916
default = ["otel_unstable"]

examples/metrics-basic/src/main.rs

Lines changed: 91 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
11
use opentelemetry::global;
22
use opentelemetry::KeyValue;
33
use opentelemetry_sdk::metrics::data::Temporality;
4-
use opentelemetry_sdk::metrics::PeriodicReaderWithOwnThread;
54
use opentelemetry_sdk::metrics::{PeriodicReader, SdkMeterProvider};
65
use opentelemetry_sdk::{runtime, Resource};
7-
use tracing_subscriber::fmt;
8-
use tracing_subscriber::layer::SubscriberExt;
9-
use tracing_subscriber::util::SubscriberInitExt;
10-
use tracing_subscriber::EnvFilter;
11-
use tracing_subscriber::Layer;
126
use std::error::Error;
13-
use std::time::Duration;
7+
use std::vec;
148

159
fn init_meter_provider() -> opentelemetry_sdk::metrics::SdkMeterProvider {
1610
let exporter = opentelemetry_stdout::MetricExporterBuilder::default()
1711
// Build exporter using Delta Temporality (Defaults to Temporality::Cumulative)
1812
.with_temporality(Temporality::Delta)
1913
.build();
20-
let reader = PeriodicReaderWithOwnThread::builder(exporter)
21-
.with_interval(Duration::from_secs(10))
22-
.build();
14+
let reader = PeriodicReader::builder(exporter, runtime::Tokio).build();
2315
let provider = SdkMeterProvider::builder()
2416
.with_reader(reader)
2517
.with_resource(Resource::new([KeyValue::new(
@@ -33,16 +25,24 @@ fn init_meter_provider() -> opentelemetry_sdk::metrics::SdkMeterProvider {
3325

3426
#[tokio::main]
3527
async fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
36-
tracing_subscriber::registry()
37-
.with(fmt::layer().with_thread_names(true))
38-
.init();
39-
4028
// Initialize the MeterProvider with the stdout Exporter.
4129
let meter_provider = init_meter_provider();
4230

4331
// Create a meter from the above MeterProvider.
4432
let meter = global::meter("mylibraryname");
4533

34+
// Create a Counter Instrument.
35+
let counter = meter.u64_counter("my_counter").build();
36+
37+
// Record measurements using the Counter instrument.
38+
counter.add(
39+
10,
40+
&[
41+
KeyValue::new("mykey1", "myvalue1"),
42+
KeyValue::new("mykey2", "myvalue2"),
43+
],
44+
);
45+
4646
// Create a ObservableCounter instrument and register a callback that reports the measurement.
4747
let _observable_counter = meter
4848
.u64_observable_counter("my_observable_counter")
@@ -59,20 +59,84 @@ tracing_subscriber::registry()
5959
})
6060
.build();
6161

62-
// Create a Counter Instrument.
63-
let counter = meter.u64_counter("my_counter").build();
62+
// Create a UpCounter Instrument.
63+
let updown_counter = meter.i64_up_down_counter("my_updown_counter").build();
6464

65-
loop {
66-
// Record measurements using the Counter instrument.
67-
counter.add(
68-
10,
69-
&[
70-
KeyValue::new("mykey1", "myvalue1"),
71-
KeyValue::new("mykey2", "myvalue2"),
72-
],
73-
);
74-
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
75-
}
65+
// Record measurements using the UpCounter instrument.
66+
updown_counter.add(
67+
-10,
68+
&[
69+
KeyValue::new("mykey1", "myvalue1"),
70+
KeyValue::new("mykey2", "myvalue2"),
71+
],
72+
);
73+
74+
// Create a Observable UpDownCounter instrument and register a callback that reports the measurement.
75+
let _observable_up_down_counter = meter
76+
.i64_observable_up_down_counter("my_observable_updown_counter")
77+
.with_description("My observable updown counter example description")
78+
.with_unit("myunit")
79+
.with_callback(|observer| {
80+
observer.observe(
81+
100,
82+
&[
83+
KeyValue::new("mykey1", "myvalue1"),
84+
KeyValue::new("mykey2", "myvalue2"),
85+
],
86+
)
87+
})
88+
.build();
89+
90+
// Create a Histogram Instrument.
91+
let histogram = meter
92+
.f64_histogram("my_histogram")
93+
.with_description("My histogram example description")
94+
// Setting boundaries is optional. By default, the boundaries are set to
95+
// [0.0, 5.0, 10.0, 25.0, 50.0, 75.0, 100.0, 250.0, 500.0, 750.0, 1000.0, 2500.0, 5000.0, 7500.0, 10000.0]
96+
.with_boundaries(vec![0.0, 5.0, 10.0, 15.0, 20.0, 25.0])
97+
.build();
98+
99+
// Record measurements using the histogram instrument.
100+
histogram.record(
101+
10.5,
102+
&[
103+
KeyValue::new("mykey1", "myvalue1"),
104+
KeyValue::new("mykey2", "myvalue2"),
105+
],
106+
);
107+
108+
// Note that there is no ObservableHistogram instrument.
109+
110+
// Create a Gauge Instrument.
111+
let gauge = meter
112+
.f64_gauge("my_gauge")
113+
.with_description("A gauge set to 1.0")
114+
.with_unit("myunit")
115+
.build();
116+
117+
gauge.record(
118+
1.0,
119+
&[
120+
KeyValue::new("mykey1", "myvalue1"),
121+
KeyValue::new("mykey2", "myvalue2"),
122+
],
123+
);
124+
125+
// Create a ObservableGauge instrument and register a callback that reports the measurement.
126+
let _observable_gauge = meter
127+
.f64_observable_gauge("my_observable_gauge")
128+
.with_description("An observable gauge set to 1.0")
129+
.with_unit("myunit")
130+
.with_callback(|observer| {
131+
observer.observe(
132+
1.0,
133+
&[
134+
KeyValue::new("mykey1", "myvalue1"),
135+
KeyValue::new("mykey2", "myvalue2"),
136+
],
137+
)
138+
})
139+
.build();
76140

77141
// Metrics are exported by default every 30 seconds when using stdout exporter,
78142
// however shutting down the MeterProvider here instantly flushes

0 commit comments

Comments
 (0)