You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by ko...@apache.org on 2025/12/11 08:10:20 UTC
(opendal) branch extract-oteltrace-layer created (now d8995866d)
This is an automated email from the ASF dual-hosted git repository.
koushiro pushed a change to branch extract-oteltrace-layer
in repository https://gitbox.apache.org/repos/asf/opendal.git
at d8995866d refactor: Split oteltrace layer to new crate
This branch includes the following new commits:
new d8995866d refactor: Split oteltrace layer to new crate
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(opendal) 01/01: refactor: Split oteltrace layer to new crate
Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
koushiro pushed a commit to branch extract-oteltrace-layer
in repository https://gitbox.apache.org/repos/asf/opendal.git
commit d8995866d6bc6f38aa2c2fa149e1be233f60dc14
Author: koushiro <ko...@gmail.com>
AuthorDate: Thu Dec 11 16:10:09 2025 +0800
refactor: Split oteltrace layer to new crate
---
core/Cargo.lock | 9 +++++
core/Cargo.toml | 3 +-
core/core/Cargo.toml | 4 ---
core/core/src/layers/mod.rs | 5 ---
core/layers/oteltrace/Cargo.toml | 38 ++++++++++++++++++++++
.../oteltrace.rs => layers/oteltrace/src/lib.rs} | 13 ++++----
core/src/lib.rs | 2 ++
7 files changed, 57 insertions(+), 17 deletions(-)
diff --git a/core/Cargo.lock b/core/Cargo.lock
index 9cb85c0c5..872fffa7e 100644
--- a/core/Cargo.lock
+++ b/core/Cargo.lock
@@ -5490,6 +5490,7 @@ dependencies = [
"opendal-layer-mime-guess",
"opendal-layer-observe-metrics-common",
"opendal-layer-otelmetrics",
+ "opendal-layer-oteltrace",
"opendal-layer-prometheus",
"opendal-layer-prometheus-client",
"opendal-layer-tail-cut",
@@ -5744,6 +5745,14 @@ dependencies = [
"opentelemetry",
]
+[[package]]
+name = "opendal-layer-oteltrace"
+version = "0.55.0"
+dependencies = [
+ "opendal-core",
+ "opentelemetry",
+]
+
[[package]]
name = "opendal-layer-prometheus"
version = "0.55.0"
diff --git a/core/Cargo.toml b/core/Cargo.toml
index a430d896c..c6e90b433 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -96,7 +96,7 @@ layers-fastrace = ["dep:opendal-layer-fastrace"]
layers-metrics = ["dep:opendal-layer-metrics"]
layers-mime-guess = ["dep:opendal-layer-mime-guess"]
layers-otel-metrics = ["dep:opendal-layer-otelmetrics"]
-layers-otel-trace = ["opendal-core/layers-otel-trace"]
+layers-otel-trace = ["dep:opendal-layer-oteltrace"]
layers-prometheus = ["dep:opendal-layer-prometheus"]
layers-prometheus-client = ["dep:opendal-layer-prometheus-client"]
layers-tail-cut = ["dep:opendal-layer-tail-cut"]
@@ -197,6 +197,7 @@ opendal-layer-metrics = { path = "layers/metrics", version = "0.55.0", optional
opendal-layer-mime-guess = { path = "layers/mime-guess", version = "0.55.0", optional = true, default-features = false }
opendal-layer-observe-metrics-common = { path = "layers/observe-metrics-common", version = "0.55.0", optional = true, default-features = false }
opendal-layer-otelmetrics = { path = "layers/otelmetrics", version = "0.55.0", optional = true, default-features = false }
+opendal-layer-oteltrace = { path = "layers/oteltrace", version = "0.55.0", optional = true, default-features = false }
opendal-layer-prometheus = { path = "layers/prometheus", version = "0.55.0", optional = true, default-features = false }
opendal-layer-prometheus-client = { path = "layers/prometheus-client", version = "0.55.0", optional = true, default-features = false }
opendal-layer-tail-cut = { path = "layers/tail-cut", version = "0.55.0", optional = true, default-features = false }
diff --git a/core/core/Cargo.toml b/core/core/Cargo.toml
index b431a8812..c039dc70f 100644
--- a/core/core/Cargo.toml
+++ b/core/core/Cargo.toml
@@ -72,8 +72,6 @@ executors-tokio = ["tokio/rt"]
# Enable layers chaos support
layers-chaos = ["dep:rand"]
-# Enable layers oteltrace support.
-layers-otel-trace = ["dep:opentelemetry", "opentelemetry/trace"]
# Enable layers throttle support.
layers-throttle = ["dep:governor"]
# Enable dtrace support.
@@ -307,8 +305,6 @@ web-sys = { version = "0.3.77", optional = true, features = [
# Layers
# for layers-throttle
governor = { version = "0.10.1", optional = true, features = ["std"] }
-# for layers-opentelemetry
-opentelemetry = { version = "0.31.0", optional = true }
# for layers-dtrace
probe = { version = "0.5.1", optional = true }
diff --git a/core/core/src/layers/mod.rs b/core/core/src/layers/mod.rs
index 187cb314d..813601ed3 100644
--- a/core/core/src/layers/mod.rs
+++ b/core/core/src/layers/mod.rs
@@ -51,11 +51,6 @@ mod retry;
pub use self::retry::RetryInterceptor;
pub use self::retry::RetryLayer;
-#[cfg(feature = "layers-otel-trace")]
-mod oteltrace;
-#[cfg(feature = "layers-otel-trace")]
-pub use self::oteltrace::OtelTraceLayer;
-
#[cfg(feature = "layers-throttle")]
mod throttle;
#[cfg(feature = "layers-throttle")]
diff --git a/core/layers/oteltrace/Cargo.toml b/core/layers/oteltrace/Cargo.toml
new file mode 100644
index 000000000..c75cb5a01
--- /dev/null
+++ b/core/layers/oteltrace/Cargo.toml
@@ -0,0 +1,38 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+[package]
+description = "Apache OpenDAL OpenTelemetry trace layer"
+name = "opendal-layer-oteltrace"
+
+authors = { workspace = true }
+edition = { workspace = true }
+homepage = { workspace = true }
+license = { workspace = true }
+repository = { workspace = true }
+rust-version = { workspace = true }
+version = { workspace = true }
+
+[package.metadata.docs.rs]
+all-features = true
+
+[dependencies]
+opendal-core = { path = "../../core", version = "0.55.0", default-features = false }
+opentelemetry = { version = "0.31.0", default-features = false, features = ["trace"] }
+
+[dev-dependencies]
+opendal-core = { path = "../../core", version = "0.55.0" }
diff --git a/core/core/src/layers/oteltrace.rs b/core/layers/oteltrace/src/lib.rs
similarity index 98%
rename from core/core/src/layers/oteltrace.rs
rename to core/layers/oteltrace/src/lib.rs
index d5d67a815..570a74d2a 100644
--- a/core/core/src/layers/oteltrace.rs
+++ b/core/layers/oteltrace/src/lib.rs
@@ -18,6 +18,8 @@
use std::future::Future;
use std::sync::Arc;
+use opendal_core::raw::*;
+use opendal_core::*;
use opentelemetry::Context as TraceContext;
use opentelemetry::KeyValue;
use opentelemetry::global;
@@ -27,26 +29,23 @@ use opentelemetry::trace::Span;
use opentelemetry::trace::TraceContextExt;
use opentelemetry::trace::Tracer;
-use crate::raw::*;
-use crate::*;
-
/// Add [opentelemetry::trace](https://docs.rs/opentelemetry/latest/opentelemetry/trace/index.html) for every operation.
///
-/// Examples
+/// # Examples
///
/// ## Basic Setup
///
/// ```no_run
-/// # use opendal_core::layers::OtelTraceLayer;
/// # use opendal_core::services;
/// # use opendal_core::Operator;
/// # use opendal_core::Result;
-///
+/// # use opendal_layer_oteltrace::OtelTraceLayer;
+/// #
/// # fn main() -> Result<()> {
/// let _ = Operator::new(services::Memory::default())?
/// .layer(OtelTraceLayer)
/// .finish();
-/// Ok(())
+/// # Ok(())
/// # }
/// ```
pub struct OtelTraceLayer;
diff --git a/core/src/lib.rs b/core/src/lib.rs
index 4c8facd90..1ca809f09 100644
--- a/core/src/lib.rs
+++ b/core/src/lib.rs
@@ -66,6 +66,8 @@ pub mod layers {
pub use opendal_layer_mime_guess::*;
#[cfg(feature = "layers-otel-metrics")]
pub use opendal_layer_otelmetrics::*;
+ #[cfg(feature = "layers-otel-trace")]
+ pub use opendal_layer_oteltrace::*;
#[cfg(feature = "layers-prometheus")]
pub use opendal_layer_prometheus::*;
#[cfg(feature = "layers-prometheus-client")]