This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git
The following commit(s) were added to refs/heads/main by this push:
new 67347874f feat(layer/otelmetrics): take meter when register (#5547)
67347874f is described below
commit 67347874ff8d79c2932c2e1197cb3a2d76897b84
Author: Andy Lok <[email protected]>
AuthorDate: Wed Jan 15 15:47:07 2025 +0800
feat(layer/otelmetrics): take meter when register (#5547)
---
core/src/layers/otelmetrics.rs | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/core/src/layers/otelmetrics.rs b/core/src/layers/otelmetrics.rs
index 5b3d083a7..55702928e 100644
--- a/core/src/layers/otelmetrics.rs
+++ b/core/src/layers/otelmetrics.rs
@@ -18,9 +18,9 @@
use std::sync::Arc;
use std::time::Duration;
-use opentelemetry::global;
use opentelemetry::metrics::Counter;
use opentelemetry::metrics::Histogram;
+use opentelemetry::metrics::Meter;
use opentelemetry::KeyValue;
use crate::layers::observe;
@@ -38,8 +38,9 @@ use crate::*;
/// # use opendal::Result;
///
/// # fn main() -> Result<()> {
+/// let meter = opentelemetry::global::meter("opendal");
/// let _ = Operator::new(services::Memory::default())?
-/// .layer(OtelMetricsLayer::builder().register())
+/// .layer(OtelMetricsLayer::builder().register(meter))
/// .finish();
/// Ok(())
/// # }
@@ -59,7 +60,6 @@ impl OtelMetricsLayer {
/// # Examples
///
/// ```no_run
- /// # use log::debug;
/// # use opendal::layers::OtelMetricsLayer;
/// # use opendal::services;
/// # use opendal::Operator;
@@ -67,10 +67,10 @@ impl OtelMetricsLayer {
///
/// # #[tokio::main]
/// # async fn main() -> Result<()> {
+ /// let meter = opentelemetry::global::meter("opendal");
/// let op = Operator::new(services::Memory::default())?
- /// .layer(OtelMetricsLayer::builder().path_label(1).register())
+ /// .layer(OtelMetricsLayer::builder().path_label(1).register(meter))
/// .finish();
- /// debug!("operator: {op:?}");
///
/// Ok(())
/// # }
@@ -113,8 +113,9 @@ impl OtelMetricsLayerBuilder {
///
/// # #[tokio::main]
/// # async fn main() -> Result<()> {
+ /// let meter = opentelemetry::global::meter("opendal");
/// let op = Operator::new(services::Memory::default())?
- /// .layer(OtelMetricsLayer::builder().path_label(1).register())
+ /// .layer(OtelMetricsLayer::builder().path_label(1).register(meter))
/// .finish();
/// debug!("operator: {op:?}");
///
@@ -139,11 +140,12 @@ impl OtelMetricsLayerBuilder {
///
/// # #[tokio::main]
/// # async fn main() -> Result<()> {
+ /// let meter = opentelemetry::global::meter("opendal");
/// let op = Operator::new(services::Memory::default())?
/// .layer(
/// OtelMetricsLayer::builder()
/// .operation_duration_seconds_boundaries(vec![0.01, 0.02,
0.05, 0.1, 0.2, 0.5])
- /// .register()
+ /// .register(meter)
/// )
/// .finish();
/// debug!("operator: {op:?}");
@@ -171,11 +173,12 @@ impl OtelMetricsLayerBuilder {
///
/// # #[tokio::main]
/// # async fn main() -> Result<()> {
+ /// let meter = opentelemetry::global::meter("opendal");
/// let op = Operator::new(services::Memory::default())?
/// .layer(
/// OtelMetricsLayer::builder()
/// .operation_bytes_boundaries(vec![1.0, 2.0, 5.0, 10.0,
20.0, 50.0])
- /// .register()
+ /// .register(meter)
/// )
/// .finish();
/// debug!("operator: {op:?}");
@@ -195,7 +198,6 @@ impl OtelMetricsLayerBuilder {
/// # Examples
///
/// ```no_run
- /// # use log::debug;
/// # use opendal::layers::OtelMetricsLayer;
/// # use opendal::services;
/// # use opendal::Operator;
@@ -203,16 +205,15 @@ impl OtelMetricsLayerBuilder {
///
/// # #[tokio::main]
/// # async fn main() -> Result<()> {
+ /// let meter = opentelemetry::global::meter("opendal");
/// let op = Operator::new(services::Memory::default())?
- /// .layer(OtelMetricsLayer::builder().register())
+ /// .layer(OtelMetricsLayer::builder().register(meter))
/// .finish();
- /// debug!("operator: {op:?}");
///
/// Ok(())
/// # }
/// ```
- pub fn register(self) -> OtelMetricsLayer {
- let meter = global::meter("opendal");
+ pub fn register(self, meter: Meter) -> OtelMetricsLayer {
let duration_seconds = meter
.f64_histogram("opendal.operation.duration")
.with_description("Duration of operations")