Skip to content

Commit

Permalink
chore: update dependencies and refactor SDK meter provider usage
Browse files Browse the repository at this point in the history
  • Loading branch information
ttys3 committed Sep 18, 2024
1 parent dcd4de7 commit 07b465b
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 13 deletions.
13 changes: 8 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ exclude = [".github/*", "examples/*", "tests/*"]
[dependencies]
axum = "0.7"
#axum = { git = "https://github.com/tokio-rs/axum.git", branch = "main"}
opentelemetry = { version = "0.24", features = ["metrics"] }
opentelemetry = { version = "0.25", features = ["metrics"] }
opentelemetry_sdk = { version = "0.25.0", features = ["rt-tokio"] }
opentelemetry-prometheus = { version = "0.17.0", features = ["prometheus-encoding"] }
opentelemetry-semantic-conventions = { version = "0.16.0"}
opentelemetry-prometheus = { version = "0.17.0", features = [ "prometheus-encoding", ] }
opentelemetry-semantic-conventions = { version = "0.25.0" }
#opentelemetry = { git = "https://github.com/open-telemetry/opentelemetry-rust.git", branch = "main", features = ["metrics", "rt-tokio"]}
#opentelemetry-prometheus = { git = "https://github.com/open-telemetry/opentelemetry-rust.git", branch = "main", features = ["prometheus-encoding"] }
#opentelemetry-semantic-conventions = { git = "https://github.com/open-telemetry/opentelemetry-rust.git", branch = "main"}
Expand All @@ -28,9 +28,12 @@ futures-util = "0.3.30"
pin-project-lite = "0.2.14"
http = "1.1.0"
http-body = "1.0.1"
opentelemetry-otlp = { version = "0.25.0", features = ["metrics", "http-proto", "reqwest-client"] }
opentelemetry-otlp = { version = "0.25.0", features = [ "metrics", "http-proto", "reqwest-client", ] }
opentelemetry-http = "0.25.0"


[dev-dependencies]
tokio = { version = "1.39.2", features = ["macros"] }
tokio = { version = "1.38", features = ["macros"] }

[patch.crates-io]
opentelemetry-prometheus = { git="https://github.com/ttys3/opentelemetry-rust.git", branch="opentelemetry-prometheus-sdk-0.25" }
27 changes: 19 additions & 8 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,13 @@ use opentelemetry::{Key, KeyValue, Value};

use opentelemetry::metrics::{Counter, Histogram, UpDownCounter};

use opentelemetry::metrics::{MeterProvider as _};
use opentelemetry::metrics::MeterProvider;

use opentelemetry_sdk::metrics::{new_view, Aggregation, Instrument, SdkMeterProvider, Stream, PeriodicReader, reader::{DefaultAggregationSelector, DefaultTemporalitySelector},};
use opentelemetry_sdk::metrics::{
new_view,
reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
Aggregation, Instrument, PeriodicReader, SdkMeterProvider, Stream,
};
use opentelemetry_sdk::resource::{EnvResourceDetector, SdkProvidedResourceDetector, TelemetryResourceDetector};
use opentelemetry_semantic_conventions::resource::{SERVICE_NAME, SERVICE_NAMESPACE, SERVICE_VERSION};

Expand Down Expand Up @@ -341,9 +345,8 @@ impl HttpMetricsLayerBuilder {
res
};

let mut registry = None;
let mut builder = SdkMeterProvider::builder()
.with_resource(res);
let mut registry = None;
let mut builder = SdkMeterProvider::builder().with_resource(res);

// exporter

Expand Down Expand Up @@ -392,7 +395,13 @@ impl HttpMetricsLayerBuilder {
global::set_meter_provider(provider.clone());
// this must called after the global meter provider has ben initialized
// let meter = global::meter("axum-app");
let meter = provider.meter("axum-app");
// let meter = provider.meter("axum-app");
let meter = provider.versioned_meter(
env!("CARGO_PKG_NAME"),
Some(env!("CARGO_PKG_VERSION")),
Some("https://opentelemetry.io/schema/1.0.0"),
Some(vec![KeyValue::new("key", "value")]),
);

// requests_total
let requests_total = meter
Expand Down Expand Up @@ -478,14 +487,16 @@ impl HttpMetricsLayerBuilder {
.build_metrics_exporter(
Box::new(DefaultAggregationSelector::new()),
Box::new(DefaultTemporalitySelector::new()),
).unwrap()
)
.unwrap()
} else {
opentelemetry_otlp::new_exporter()
.tonic()
.build_metrics_exporter(
Box::new(DefaultAggregationSelector::new()),
Box::new(DefaultTemporalitySelector::new()),
).unwrap()
)
.unwrap()
};

let reader = PeriodicReader::builder(exporter, opentelemetry_sdk::runtime::Tokio)
Expand Down

0 comments on commit 07b465b

Please sign in to comment.