diff --git a/Cargo.lock b/Cargo.lock index 31384fe69..5e7f1be44 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -184,6 +184,34 @@ dependencies = [ "paste", ] +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core 0.3.4", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper 0.1.2", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "axum" version = "0.7.5" @@ -191,13 +219,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" dependencies = [ "async-trait", - "axum-core", + "axum-core 0.4.3", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.4.1", "hyper-util", "itoa", "matchit", @@ -218,6 +246,23 @@ dependencies = [ "tracing", ] +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "axum-core" version = "0.4.3" @@ -227,8 +272,8 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", @@ -1024,6 +1069,25 @@ dependencies = [ "subtle", ] +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.3.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "h2" version = "0.4.5" @@ -1035,7 +1099,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http", + "http 1.1.0", "indexmap 2.3.0", "slab", "tokio", @@ -1068,7 +1132,7 @@ dependencies = [ "base64 0.21.7", "bytes", "headers-core", - "http", + "http 1.1.0", "httpdate", "mime", "sha1", @@ -1080,7 +1144,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http", + "http 1.1.0", ] [[package]] @@ -1113,6 +1177,17 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" version = "1.1.0" @@ -1124,6 +1199,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + [[package]] name = "http-body" version = "1.0.1" @@ -1131,7 +1217,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.1.0", ] [[package]] @@ -1142,8 +1228,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -1159,6 +1245,30 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "hyper" version = "1.4.1" @@ -1168,9 +1278,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", "httparse", "httpdate", "itoa", @@ -1189,8 +1299,8 @@ dependencies = [ "bytes", "futures-util", "headers", - "http", - "hyper", + "http 1.1.0", + "hyper 1.4.1", "hyper-rustls", "hyper-util", "pin-project-lite", @@ -1207,8 +1317,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", - "http", - "hyper", + "http 1.1.0", + "hyper 1.4.1", "hyper-util", "log", "rustls", @@ -1219,13 +1329,25 @@ dependencies = [ "tower-service", ] +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper 0.14.30", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + [[package]] name = "hyper-timeout" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" dependencies = [ - "hyper", + "hyper 1.4.1", "hyper-util", "pin-project-lite", "tokio", @@ -1241,9 +1363,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http", - "http-body", - "hyper", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", "pin-project-lite", "socket2", "tokio", @@ -1297,6 +1419,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "integer-encoding" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1447,13 +1575,13 @@ dependencies = [ "either", "futures", "home", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.4.1", "hyper-http-proxy", "hyper-rustls", - "hyper-timeout", + "hyper-timeout 0.5.1", "hyper-util", "jsonpath-rust", "k8s-openapi", @@ -1481,7 +1609,7 @@ checksum = "cce373a74d787d439063cdefab0f3672860bd7bac01a38e39019177e764a0fe6" dependencies = [ "chrono", "form_urlencoded", - "http", + "http 1.1.0", "json-patch", "k8s-openapi", "schemars", @@ -1723,6 +1851,16 @@ dependencies = [ "libm", ] +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + [[package]] name = "object" version = "0.36.2" @@ -1746,9 +1884,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "opentelemetry" -version = "0.24.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96" +checksum = "1b69a91d4893e713e06f724597ad630f1fa76057a5e1026c0ca67054a9032a76" dependencies = [ "futures-core", "futures-sink", @@ -1760,25 +1898,42 @@ dependencies = [ [[package]] name = "opentelemetry-appender-tracing" -version = "0.5.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84de945cb3a6f1e0d6317cbd998bbd0519ab00f4b790db67e0ff4fdcf7cedb6" +checksum = "be314095f27dde46fca7038b023457d2b3459e1c39033dacc2ec1b31df11a61c" dependencies = [ + "once_cell", "opentelemetry", "tracing", "tracing-core", "tracing-subscriber", ] +[[package]] +name = "opentelemetry-jaeger" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501b471b67b746d9a07d4c29f8be00f952d1a2eca356922ede0098cbaddff19f" +dependencies = [ + "async-trait", + "futures-core", + "futures-util", + "opentelemetry", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", + "thrift", + "tokio", +] + [[package]] name = "opentelemetry-otlp" -version = "0.17.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b925a602ffb916fb7421276b86756027b37ee708f9dce2dbdcc51739f07e727" +checksum = "a94c69209c05319cdf7460c6d4c055ed102be242a0a6245835d7bc42c6ec7f54" dependencies = [ "async-trait", "futures-core", - "http", + "http 0.2.12", "opentelemetry", "opentelemetry-proto", "opentelemetry_sdk", @@ -1790,9 +1945,9 @@ dependencies = [ [[package]] name = "opentelemetry-proto" -version = "0.7.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ee9f20bff9c984511a02f082dc8ede839e4a9bf15cc2487c8d6fea5ad850d9" +checksum = "984806e6cf27f2b49282e2a05e288f30594f3dbc74eb7a6e99422bc48ed78162" dependencies = [ "opentelemetry", "opentelemetry_sdk", @@ -1802,23 +1957,25 @@ dependencies = [ [[package]] name = "opentelemetry-semantic-conventions" -version = "0.16.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cefe0543875379e47eb5f1e68ff83f45cc41366a92dfd0d073d513bf68e9a05" +checksum = "1869fb4bb9b35c5ba8a1e40c9b128a7b4c010d07091e864a29da19e4fe2ca4d7" [[package]] name = "opentelemetry_sdk" -version = "0.24.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df" +checksum = "ae312d58eaa90a82d2e627fd86e075cf5230b3f11794e2ed74199ebbe572d4fd" dependencies = [ "async-trait", "futures-channel", "futures-executor", "futures-util", "glob", + "lazy_static", "once_cell", "opentelemetry", + "ordered-float 4.2.2", "percent-encoding", "rand", "serde_json", @@ -1836,6 +1993,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ordered-float" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a91171844676f8c7990ce64959210cd2eaef32c2612c50f9fae9f8aaa6065a6" +dependencies = [ + "num-traits", +] + [[package]] name = "overload" version = "0.1.1" @@ -2082,9 +2248,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.1" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ "bytes", "prost-derive", @@ -2092,12 +2258,12 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.1" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.12.1", "proc-macro2", "quote", "syn 2.0.72", @@ -2499,7 +2665,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" dependencies = [ - "ordered-float", + "ordered-float 2.10.1", "serde", ] @@ -2749,6 +2915,8 @@ dependencies = [ "json-patch", "k8s-openapi", "kube", + "opentelemetry-jaeger", + "opentelemetry_sdk", "product-config", "regex", "rstest", @@ -2765,6 +2933,7 @@ dependencies = [ "tokio", "tracing", "tracing-appender", + "tracing-opentelemetry", "tracing-subscriber", "url", ] @@ -2784,7 +2953,7 @@ dependencies = [ name = "stackable-telemetry" version = "0.2.0" dependencies = [ - "axum", + "axum 0.7.5", "futures-util", "opentelemetry", "opentelemetry-appender-tracing", @@ -2826,9 +2995,9 @@ dependencies = [ name = "stackable-webhook" version = "0.3.1" dependencies = [ - "axum", + "axum 0.7.5", "futures-util", - "hyper", + "hyper 1.4.1", "hyper-util", "k8s-openapi", "kube", @@ -2957,6 +3126,28 @@ dependencies = [ "once_cell", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "thrift" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e54bc85fc7faa8bc175c4bab5b92ba8d9a3ce893d0e9f42cc455c8ab16a9e09" +dependencies = [ + "byteorder", + "integer-encoding", + "log", + "ordered-float 2.10.1", + "threadpool", +] + [[package]] name = "time" version = "0.3.36" @@ -3041,6 +3232,16 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-macros" version = "2.4.0" @@ -3107,27 +3308,24 @@ dependencies = [ [[package]] name = "tonic" -version = "0.12.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38659f4a91aba8598d27821589f5db7dddd94601e7a01b1e485a50e5484c7401" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" dependencies = [ "async-stream", "async-trait", - "axum", - "base64 0.22.1", + "axum 0.6.20", + "base64 0.21.7", "bytes", "flate2", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-timeout", - "hyper-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.30", + "hyper-timeout 0.4.1", "percent-encoding", "pin-project", "prost", - "socket2", "tokio", "tokio-stream", "tower", @@ -3165,8 +3363,8 @@ dependencies = [ "base64 0.21.7", "bitflags 2.6.0", "bytes", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", @@ -3245,9 +3443,9 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.25.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b" +checksum = "f68803492bf28ab40aeccaecc7021096bd256baf7ca77c3d425d89b35a7be4e4" dependencies = [ "js-sys", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index acd59cf6d..e2f7893f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,11 +32,12 @@ json-patch = "2.0.0" k8s-openapi = { version = "0.22.0", default-features = false, features = ["schemars", "v1_30"] } # We use rustls instead of openssl for easier portablitly, e.g. so that we can build stackablectl without the need to vendor (build from source) openssl kube = { version = "0.93.1", default-features = false, features = ["client", "jsonpatch", "runtime", "derive", "rustls-tls"] } -opentelemetry = "0.24.0" -opentelemetry_sdk = { version = "0.24.1", features = ["rt-tokio"] } -opentelemetry-appender-tracing = "0.5.0" -opentelemetry-otlp = "0.17.0" -opentelemetry-semantic-conventions = "0.16.0" +opentelemetry = "0.23.0" +opentelemetry_sdk = { version = "0.23.0", features = ["rt-tokio"] } +opentelemetry-appender-tracing = "0.4.0" +opentelemetry-jaeger = { version = "0.22.0", features = ["rt-tokio"] } +opentelemetry-otlp = "0.16.0" +opentelemetry-semantic-conventions = "0.15.0" p256 = { version = "0.13.2", features = ["ecdsa"] } pin-project = "1.1.5" proc-macro2 = "1.0.86" @@ -67,7 +68,7 @@ tower = "0.4.13" tower-http = { version = "0.5.2", features = ["trace"] } tracing = "0.1.40" tracing-appender = "0.2.3" -tracing-opentelemetry = "0.25.0" +tracing-opentelemetry = "0.24.0" tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json"] } url = { version = "2.5.2", features = ["serde"] } x509-cert = { version = "0.2.5", features = ["builder"] } diff --git a/crates/stackable-operator/CHANGELOG.md b/crates/stackable-operator/CHANGELOG.md index 9efeb1d51..c54858f25 100644 --- a/crates/stackable-operator/CHANGELOG.md +++ b/crates/stackable-operator/CHANGELOG.md @@ -15,13 +15,9 @@ All notable changes to this project will be documented in this file. any more. However, checks can be re-added by using validation webhooks if needed. This change should not be breaking for the user and is a preparation for CRD versioning. ([#821]). -- BREAKING: Remove support for Jaeger as a `TracingTarget`. This is due to stopped development of the - [`opentelemetry-jaeger`](https://crates.io/crates/opentelemetry-jaeger) crate. We plan to support tracing to OTLP - instead in the future ([#830]). [#821]: https://github.com/stackabletech/operator-rs/pull/821 [#827]: https://github.com/stackabletech/operator-rs/pull/827 -[#830]: https://github.com/stackabletech/operator-rs/pull/830 ## [0.71.0] - 2024-07-29 diff --git a/crates/stackable-operator/Cargo.toml b/crates/stackable-operator/Cargo.toml index 82d465ac8..913f4e792 100644 --- a/crates/stackable-operator/Cargo.toml +++ b/crates/stackable-operator/Cargo.toml @@ -24,6 +24,8 @@ futures.workspace = true json-patch.workspace = true k8s-openapi.workspace = true kube.workspace = true +opentelemetry_sdk.workspace = true +opentelemetry-jaeger.workspace = true product-config.workspace = true regex.workspace = true schemars.workspace = true @@ -37,6 +39,7 @@ time = { workspace = true, optional = true } tokio.workspace = true tracing.workspace = true tracing-appender.workspace = true +tracing-opentelemetry.workspace = true tracing-subscriber.workspace = true url.workspace = true diff --git a/crates/stackable-operator/src/logging/mod.rs b/crates/stackable-operator/src/logging/mod.rs index 9c91fc55c..e9c5eb5b4 100644 --- a/crates/stackable-operator/src/logging/mod.rs +++ b/crates/stackable-operator/src/logging/mod.rs @@ -10,6 +10,7 @@ mod k8s_events; #[derive(Debug, Clone, clap::ValueEnum, PartialEq, Eq)] pub enum TracingTarget { None, + Jaeger, } impl Default for TracingTarget { @@ -50,15 +51,25 @@ pub fn initialize_logging(env: &str, app_name: &str, tracing_target: TracingTarg .with_writer(file_appender) }); - // This match is here just to fail compilation once e.g. otlp is supported - match tracing_target { - TracingTarget::None => (), - } + let jaeger = match tracing_target { + TracingTarget::Jaeger => { + // FIXME (@Techassi): Replace with opentelemetry_otlp + #[allow(deprecated)] + let jaeger = opentelemetry_jaeger::new_agent_pipeline() + .with_service_name(app_name) + .install_batch(opentelemetry_sdk::runtime::Tokio) + .expect("Failed to initialize Jaeger pipeline"); + let opentelemetry = tracing_opentelemetry::layer().with_tracer(jaeger); + Some(opentelemetry) + } + TracingTarget::None => None, + }; Registry::default() .with(filter) .with(terminal_fmt) .with(file_fmt) + .with(jaeger) .init(); // need to delay logging until after tracing is initialized diff --git a/crates/stackable-telemetry/src/tracing.rs b/crates/stackable-telemetry/src/tracing.rs index d1624d422..2f61e9ac3 100644 --- a/crates/stackable-telemetry/src/tracing.rs +++ b/crates/stackable-telemetry/src/tracing.rs @@ -6,10 +6,12 @@ //! //! To get started, see [`Tracing`]. -use opentelemetry::{trace::TracerProvider, KeyValue}; +use opentelemetry::KeyValue; use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge; use opentelemetry_sdk::{ - logs::LoggerProvider, propagation::TraceContextPropagator, trace::Config, Resource, + logs::{self, LoggerProvider}, + propagation::TraceContextPropagator, + trace, Resource, }; use opentelemetry_semantic_conventions::resource; use snafu::{ResultExt as _, Snafu}; @@ -159,15 +161,15 @@ impl Tracing { .add_directive("h2=off".parse().expect("invalid directive")); let log_exporter = opentelemetry_otlp::new_exporter().tonic(); - let otel_log = opentelemetry_otlp::new_pipeline() - .logging() - .with_exporter(log_exporter) - .with_resource(Resource::new(vec![KeyValue::new( - resource::SERVICE_NAME, - self.service_name, - )])) - .install_batch(opentelemetry_sdk::runtime::Tokio) - .context(InstallOtelLogExporterSnafu)?; + let otel_log = + opentelemetry_otlp::new_pipeline() + .logging() + .with_exporter(log_exporter) + .with_log_config(logs::config().with_resource(Resource::new(vec![ + KeyValue::new(resource::SERVICE_NAME, self.service_name), + ]))) + .install_batch(opentelemetry_sdk::runtime::Tokio) + .context(InstallOtelLogExporterSnafu)?; // Convert `tracing::Event` to OpenTelemetry logs layers.push( @@ -190,12 +192,11 @@ impl Tracing { let otel_tracer = opentelemetry_otlp::new_pipeline() .tracing() .with_exporter(trace_exporter) - .with_trace_config(Config::default().with_resource(Resource::new(vec![ + .with_trace_config(trace::config().with_resource(Resource::new(vec![ KeyValue::new(resource::SERVICE_NAME, self.service_name), ]))) .install_batch(opentelemetry_sdk::runtime::Tokio) - .context(InstallOtelTraceExporterSnafu)? - .tracer(self.service_name); + .context(InstallOtelTraceExporterSnafu)?; layers.push( tracing_opentelemetry::layer() @@ -206,7 +207,7 @@ impl Tracing { opentelemetry::global::set_text_map_propagator( // NOTE (@NickLarsenNZ): There are various propagators. Eg: TraceContextPropagator - // standardizes HTTP headers to propagate trace-id, parent-id, etc... while the + // standardises HTTP headers to propagate trace-id, parent-id, etc... while the // BaggagePropagator sets a "baggage" header with the value being key=value pairs. There // are other kinds too. There is also B3 and Jaeger, and some legacy stuff like OT Trace // and OpenCensus.