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")

Reply via email to