Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions opentelemetry-otlp/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -177,13 +177,8 @@
//! .build()
//! .unwrap();
//!
//! let reader = opentelemetry_sdk::metrics::PeriodicReader::builder(exporter)
//! .with_interval(std::time::Duration::from_secs(3))
//! .with_timeout(Duration::from_secs(10))
//! .build();
//!
//! let provider = opentelemetry_sdk::metrics::SdkMeterProvider::builder()
//! .with_reader(reader)
//! .with_periodic_exporter(exporter)
//! .with_resource(Resource::builder_empty().with_attributes([KeyValue::new("service.name", "example")]).build())
//! .build();
//! # }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,12 @@ fn create_exporter() -> MetricExporter {
/// Initializes the OpenTelemetry metrics pipeline
fn init_meter_provider() -> SdkMeterProvider {
let exporter = create_exporter();
let reader = PeriodicReader::builder(exporter).build();
let resource = Resource::builder_empty()
.with_service_name("metrics-integration-test")
.build();
let meter_provider = MeterProviderBuilder::default()
.with_resource(resource)
.with_reader(reader)
.with_periodic_exporter(exporter)
.build();
opentelemetry::global::set_meter_provider(meter_provider.clone());
meter_provider
Expand Down
3 changes: 3 additions & 0 deletions opentelemetry-sdk/src/metrics/meter_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,7 @@ impl fmt::Debug for MeterProviderBuilder {
}
#[cfg(all(test, feature = "testing"))]
mod tests {
use crate::error::OTelSdkError;
use crate::resource::{
SERVICE_NAME, TELEMETRY_SDK_LANGUAGE, TELEMETRY_SDK_NAME, TELEMETRY_SDK_VERSION,
};
Expand Down Expand Up @@ -487,6 +488,8 @@ mod tests {

// shutdown once more should return an error
let shutdown_res = provider.shutdown();
assert!(matches!(shutdown_res, Err(OTelSdkError::AlreadyShutdown)));

assert!(shutdown_res.is_err());
assert!(reader.is_shutdown());
// TODO Fix: the instrument is still available, and can be used.
Expand Down
35 changes: 18 additions & 17 deletions opentelemetry-sdk/src/metrics/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -618,8 +618,9 @@
}

let exporter = InMemoryMetricExporter::default();
let reader = PeriodicReader::builder(exporter.clone()).build();
let meter_provider = SdkMeterProvider::builder().with_reader(reader).build();
let meter_provider = SdkMeterProvider::builder()
.with_periodic_exporter(exporter.clone())
.build();

// Test Meter creation in 2 ways, both with empty string as meter name
let meter1 = meter_provider.meter("");
Expand All @@ -634,8 +635,9 @@
async fn counter_duplicate_instrument_merge() {
// Arrange
let exporter = InMemoryMetricExporter::default();
let reader = PeriodicReader::builder(exporter.clone()).build();
let meter_provider = SdkMeterProvider::builder().with_reader(reader).build();
let meter_provider = SdkMeterProvider::builder()
.with_periodic_exporter(exporter.clone())
.build();

// Act
let meter = meter_provider.meter("test");
Expand Down Expand Up @@ -685,8 +687,9 @@
async fn counter_duplicate_instrument_different_meter_no_merge() {
// Arrange
let exporter = InMemoryMetricExporter::default();
let reader = PeriodicReader::builder(exporter.clone()).build();
let meter_provider = SdkMeterProvider::builder().with_reader(reader).build();
let meter_provider = SdkMeterProvider::builder()
.with_periodic_exporter(exporter.clone())
.build();

// Act
let meter1 = meter_provider.meter("test.meter1");
Expand Down Expand Up @@ -774,8 +777,9 @@
async fn instrumentation_scope_identity_test() {
// Arrange
let exporter = InMemoryMetricExporter::default();
let reader = PeriodicReader::builder(exporter.clone()).build();
let meter_provider = SdkMeterProvider::builder().with_reader(reader).build();
let meter_provider = SdkMeterProvider::builder()
.with_periodic_exporter(exporter.clone())
.build();

// Act
// Meters are identical except for scope attributes, but scope attributes are not an identifying property.
Expand Down Expand Up @@ -858,7 +862,6 @@

// Arrange
let exporter = InMemoryMetricExporter::default();
let reader = PeriodicReader::builder(exporter.clone()).build();
let criteria = Instrument::new().name("test_histogram");
let stream_invalid_aggregation = Stream::new()
.aggregation(aggregation::Aggregation::ExplicitBucketHistogram {
Expand All @@ -871,7 +874,7 @@
let view =
new_view(criteria, stream_invalid_aggregation).expect("Expected to create a new view");
let meter_provider = SdkMeterProvider::builder()
.with_reader(reader)
.with_periodic_exporter(exporter.clone())
.with_view(view)
.build();

Expand Down Expand Up @@ -908,15 +911,14 @@

// Arrange
let exporter = InMemoryMetricExporter::default();
let reader = PeriodicReader::builder(exporter.clone()).build();
let criteria = Instrument::new().name("my_observable_counter");
// View drops all attributes.
let stream_invalid_aggregation = Stream::new().allowed_attribute_keys(vec![]);

let view =
new_view(criteria, stream_invalid_aggregation).expect("Expected to create a new view");
let meter_provider = SdkMeterProvider::builder()
.with_reader(reader)
.with_periodic_exporter(exporter.clone())

Check warning on line 921 in opentelemetry-sdk/src/metrics/mod.rs

View check run for this annotation

Codecov / codecov/patch

opentelemetry-sdk/src/metrics/mod.rs#L921

Added line #L921 was not covered by tests
.with_view(view)
.build();

Expand Down Expand Up @@ -983,15 +985,14 @@

// Arrange
let exporter = InMemoryMetricExporter::default();
let reader = PeriodicReader::builder(exporter.clone()).build();
let criteria = Instrument::new().name("my_counter");
// View drops all attributes.
let stream_invalid_aggregation = Stream::new().allowed_attribute_keys(vec![]);

let view =
new_view(criteria, stream_invalid_aggregation).expect("Expected to create a new view");
let meter_provider = SdkMeterProvider::builder()
.with_reader(reader)
.with_periodic_exporter(exporter.clone())
.with_view(view)
.build();

Expand Down Expand Up @@ -2543,10 +2544,10 @@
impl TestContext {
fn new(temporality: Temporality) -> Self {
let exporter = InMemoryMetricExporterBuilder::new().with_temporality(temporality);

let exporter = exporter.build();
let reader = PeriodicReader::builder(exporter.clone()).build();
let meter_provider = SdkMeterProvider::builder().with_reader(reader).build();
let meter_provider = SdkMeterProvider::builder()
.with_periodic_exporter(exporter.clone())
.build();

TestContext {
exporter,
Expand Down
5 changes: 2 additions & 3 deletions opentelemetry-stdout/examples/basic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use opentelemetry::{global, KeyValue};
use opentelemetry::trace::Tracer;

#[cfg(feature = "metrics")]
use opentelemetry_sdk::metrics::{PeriodicReader, SdkMeterProvider};
use opentelemetry_sdk::metrics::SdkMeterProvider;

#[cfg(feature = "trace")]
use opentelemetry_sdk::trace::SdkTracerProvider;
Expand All @@ -33,9 +33,8 @@ fn init_trace() -> SdkTracerProvider {
#[cfg(feature = "metrics")]
fn init_metrics() -> opentelemetry_sdk::metrics::SdkMeterProvider {
let exporter = opentelemetry_stdout::MetricExporter::default();
let reader = PeriodicReader::builder(exporter).build();
let provider = SdkMeterProvider::builder()
.with_reader(reader)
.with_periodic_exporter(exporter)
.with_resource(RESOURCE.clone())
.build();
global::set_meter_provider(provider.clone());
Expand Down
3 changes: 1 addition & 2 deletions opentelemetry-stdout/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@
//!
//! fn init_metrics() -> SdkMeterProvider {
//! let exporter = opentelemetry_stdout::MetricExporter::default();
//! let reader = PeriodicReader::builder(exporter).build();
//! SdkMeterProvider::builder().with_reader(reader).build()
//! SdkMeterProvider::builder().with_periodic_exporter(exporter).build()
//! }
//!
//! fn init_logs() -> LoggerProvider {
Expand Down