diff options
author | Florian Klink <flokli@flokli.de> | 2023-02-28T23·37+0100 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-01-01T17·27+0000 |
commit | 3307791855fcce717c9265fab8868e3d8b5443ea (patch) | |
tree | 6b659a9c7e486e51c14ac16b2c69267c1e21feb8 /tvix | |
parent | 597a6b6205c3455ac92d816ad5e85af9615f6063 (diff) |
feat(tvix/store): add opentelemetry r/7308
This is behind the otlp feature flag (currently enabled by default). By default, this will try to push traces to a OTLP collector running at https://localhost:4317. You can make one available by running: ``` docker run -d --name jaeger \ -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ -e COLLECTOR_OTLP_ENABLED=true \ -p 6831:6831/udp \ -p 6832:6832/udp \ -p 5778:5778 \ -p 16686:16686 \ -p 4317:4317 \ -p 4318:4318 \ -p 14250:14250 \ -p 14268:14268 \ -p 14269:14269 \ -p 9411:9411 --rm \ jaegertracing/all-in-one:1.42 ``` Started like that, jaeger brings a web interface at http://localhost:16686/search As documented in https://docs.rs/opentelemetry-otlp/latest/opentelemetry_otlp/, you can point this to another location by setting `OTEL_EXPORTER_OTLP_ENDPOINT`. Change-Id: Id1dca367d70027b2ea98bb70bcf99a68363ec2be Reviewed-on: https://cl.tvl.fyi/c/depot/+/8194 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de> Reviewed-by: aaqaishtyaq <aaqaishtyaq@gmail.com>
Diffstat (limited to 'tvix')
-rw-r--r-- | tvix/Cargo.lock | 277 | ||||
-rw-r--r-- | tvix/Cargo.nix | 898 | ||||
-rw-r--r-- | tvix/default.nix | 4 | ||||
-rw-r--r-- | tvix/store/Cargo.toml | 9 | ||||
-rw-r--r-- | tvix/store/src/bin/tvix-store.rs | 41 |
5 files changed, 1135 insertions, 94 deletions
diff --git a/tvix/Cargo.lock b/tvix/Cargo.lock index 9befc319cc0d..d9f0f3f5be15 100644 --- a/tvix/Cargo.lock +++ b/tvix/Cargo.lock @@ -772,6 +772,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] name = "errno" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1035,7 +1041,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -1055,6 +1061,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1215,7 +1227,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", ] [[package]] @@ -1282,9 +1304,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -1635,6 +1657,93 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] +name = "opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" +dependencies = [ + "futures-core", + "futures-sink", + "indexmap 2.1.0", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930" +dependencies = [ + "async-trait", + "futures-core", + "http", + "opentelemetry", + "opentelemetry-proto", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", + "prost 0.11.9", + "thiserror", + "tokio", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1" +dependencies = [ + "opentelemetry", + "opentelemetry_sdk", + "prost 0.11.9", + "tonic 0.9.2", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84" +dependencies = [ + "opentelemetry", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "glob", + "once_cell", + "opentelemetry", + "ordered-float", + "percent-encoding", + "rand", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "ordered-float" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" +dependencies = [ + "num-traits", +] + +[[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1707,7 +1816,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -1882,12 +1991,22 @@ dependencies = [ [[package]] name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.12.1", ] [[package]] @@ -1904,7 +2023,7 @@ dependencies = [ "once_cell", "petgraph", "prettyplease", - "prost", + "prost 0.12.1", "prost-types", "regex", "syn 2.0.39", @@ -1914,6 +2033,19 @@ dependencies = [ [[package]] name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" @@ -1931,7 +2063,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf" dependencies = [ - "prost", + "prost 0.12.1", ] [[package]] @@ -2172,7 +2304,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64449cfef9483a475ed56ae30e2da5ee96448789fb2aa240a04beb6a055078bf" dependencies = [ "countme", - "hashbrown", + "hashbrown 0.12.3", "memoffset 0.8.0", "rustc-hash", "text-size", @@ -2830,7 +2962,7 @@ dependencies = [ "pin-project", "socket2 0.5.4", "tokio", - "tonic", + "tonic 0.10.2", "tracing", ] @@ -2919,7 +3051,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b" dependencies = [ - "indexmap", + "indexmap 1.9.3", "nom8", "serde", "serde_spanned", @@ -2928,6 +3060,34 @@ dependencies = [ [[package]] name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.11.9", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" @@ -2944,7 +3104,7 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost", + "prost 0.12.1", "rustls", "rustls-native-certs", "rustls-pemfile", @@ -2976,11 +3136,11 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fa37c513df1339d197f4ba21d28c918b9ef1ac1768265f11ecb6b7f1cba1b76" dependencies = [ - "prost", + "prost 0.12.1", "prost-types", "tokio", "tokio-stream", - "tonic", + "tonic 0.10.2", ] [[package]] @@ -2991,7 +3151,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand", @@ -3061,6 +3221,35 @@ dependencies = [ ] [[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596" +dependencies = [ + "js-sys", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "smallvec", + "tracing", + "tracing-core", + "tracing-log 0.2.0", + "tracing-subscriber", + "web-time", +] + +[[package]] name = "tracing-serde" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3083,7 +3272,7 @@ dependencies = [ "smallvec", "thread_local", "tracing-core", - "tracing-log", + "tracing-log 0.1.3", "tracing-serde", ] @@ -3098,9 +3287,9 @@ name = "tvix-build" version = "0.1.0" dependencies = [ "bytes", - "prost", + "prost 0.12.1", "prost-build", - "tonic", + "tonic 0.10.2", "tonic-build", "tonic-reflection", "tvix-castore", @@ -3123,7 +3312,7 @@ dependencies = [ "libc", "parking_lot 0.12.1", "pin-project-lite", - "prost", + "prost 0.12.1", "prost-build", "sled", "tempfile", @@ -3133,7 +3322,7 @@ dependencies = [ "tokio-retry", "tokio-stream", "tokio-util", - "tonic", + "tonic 0.10.2", "tonic-build", "tonic-reflection", "tower", @@ -3253,8 +3442,11 @@ dependencies = [ "futures", "lazy_static", "nix-compat", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry_sdk", "pin-project-lite", - "prost", + "prost 0.12.1", "prost-build", "reqwest", "sha2", @@ -3267,11 +3459,12 @@ dependencies = [ "tokio-retry", "tokio-stream", "tokio-util", - "tonic", + "tonic 0.10.2", "tonic-build", "tonic-reflection", "tower", "tracing", + "tracing-opentelemetry", "tracing-subscriber", "tvix-castore", "url", @@ -3348,6 +3541,12 @@ dependencies = [ ] [[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] name = "utf8parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3483,9 +3682,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3493,16 +3692,16 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2 1.0.67", "quote 1.0.33", - "syn 1.0.109", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3520,9 +3719,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote 1.0.33", "wasm-bindgen-macro-support", @@ -3530,22 +3729,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2 1.0.67", "quote 1.0.33", - "syn 1.0.109", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wasm-streams" @@ -3571,6 +3770,16 @@ dependencies = [ ] [[package]] +name = "web-time" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] name = "webpki-roots" version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/tvix/Cargo.nix b/tvix/Cargo.nix index dde3c8d7266e..f92cc0b57d15 100644 --- a/tvix/Cargo.nix +++ b/tvix/Cargo.nix @@ -1,4 +1,4 @@ -# This file was @generated by crate2nix 0.11.0 with the command: +# This file was @generated by crate2nix 0.12.0 with the command: # "generate" "--all-features" # See https://github.com/kolloch/crate2nix for more info. @@ -2279,6 +2279,13 @@ rec { ]; }; + "equivalent" = rec { + crateName = "equivalent"; + version = "1.0.1"; + edition = "2015"; + sha256 = "1malmx5f4lkfvqasz319lq6gb3ddg19yzf9s8cykfsgzdmyq0hsl"; + + }; "errno" = rec { crateName = "errno"; version = "0.3.1"; @@ -2727,7 +2734,7 @@ rec { "std" = [ "futures-core/std" "futures-task/std" "futures-util/std" ]; "thread-pool" = [ "std" "num_cpus" ]; }; - resolvedDefaultFeatures = [ "std" ]; + resolvedDefaultFeatures = [ "default" "std" ]; }; "futures-io" = rec { crateName = "futures-io"; @@ -3049,7 +3056,7 @@ rec { } { name = "indexmap"; - packageId = "indexmap"; + packageId = "indexmap 1.9.3"; features = [ "std" ]; } { @@ -3099,7 +3106,7 @@ rec { "zerocopy" = [ "dep:zerocopy" ]; }; }; - "hashbrown" = rec { + "hashbrown 0.12.3" = rec { crateName = "hashbrown"; version = "0.12.3"; edition = "2021"; @@ -3121,6 +3128,30 @@ rec { }; resolvedDefaultFeatures = [ "inline-more" "raw" ]; }; + "hashbrown 0.14.3" = rec { + crateName = "hashbrown"; + version = "0.14.3"; + edition = "2021"; + sha256 = "012nywlg0lj9kwanh69my5x67vjlfmzfi9a0rq4qvis2j8fil3r9"; + authors = [ + "Amanieu d'Antras <amanieu@gmail.com>" + ]; + features = { + "ahash" = [ "dep:ahash" ]; + "alloc" = [ "dep:alloc" ]; + "allocator-api2" = [ "dep:allocator-api2" ]; + "compiler_builtins" = [ "dep:compiler_builtins" ]; + "core" = [ "dep:core" ]; + "default" = [ "ahash" "inline-more" "allocator-api2" ]; + "equivalent" = [ "dep:equivalent" ]; + "nightly" = [ "allocator-api2?/nightly" "bumpalo/allocator_api" ]; + "rayon" = [ "dep:rayon" ]; + "rkyv" = [ "dep:rkyv" ]; + "rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" ]; + "serde" = [ "dep:serde" ]; + }; + resolvedDefaultFeatures = [ "raw" ]; + }; "heck" = rec { crateName = "heck"; version = "0.4.1"; @@ -3613,7 +3644,7 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; - "indexmap" = rec { + "indexmap 1.9.3" = rec { crateName = "indexmap"; version = "1.9.3"; edition = "2021"; @@ -3621,7 +3652,7 @@ rec { dependencies = [ { name = "hashbrown"; - packageId = "hashbrown"; + packageId = "hashbrown 0.12.3"; usesDefaultFeatures = false; features = [ "raw" ]; } @@ -3642,6 +3673,34 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "indexmap 2.1.0" = rec { + crateName = "indexmap"; + version = "2.1.0"; + edition = "2021"; + sha256 = "07rxrqmryr1xfnmhrjlz8ic6jw28v6h5cig3ws2c9d0wifhy2c6m"; + dependencies = [ + { + name = "equivalent"; + packageId = "equivalent"; + usesDefaultFeatures = false; + } + { + name = "hashbrown"; + packageId = "hashbrown 0.14.3"; + usesDefaultFeatures = false; + features = [ "raw" ]; + } + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + "default" = [ "std" ]; + "quickcheck" = [ "dep:quickcheck" ]; + "rayon" = [ "dep:rayon" ]; + "rustc-rayon" = [ "dep:rustc-rayon" ]; + "serde" = [ "dep:serde" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "instant" = rec { crateName = "instant"; version = "0.1.12"; @@ -3812,9 +3871,9 @@ rec { }; "js-sys" = rec { crateName = "js-sys"; - version = "0.3.61"; + version = "0.3.66"; edition = "2018"; - sha256 = "0c075apyc5fxp2sbgr87qcvq53pcjxmp05l47lzlhpn5a0hxwpa4"; + sha256 = "1ji9la5ydg0vy17q54i7dnwc0wwb9zkx662w1583pblylm6wdsff"; authors = [ "The wasm-bindgen Developers" ]; @@ -4199,6 +4258,7 @@ rec { crateName = "lzma-sys"; version = "0.1.20"; edition = "2018"; + links = "lzma"; sha256 = "09sxp20waxyglgn3cjz8qjkspb3ryz2fwx4rigkwvrk46ymh9njz"; authors = [ "Alex Crichton <alex@alexcrichton.com>" @@ -4855,6 +4915,352 @@ rec { ]; }; + "opentelemetry" = rec { + crateName = "opentelemetry"; + version = "0.21.0"; + edition = "2021"; + sha256 = "12jfmyx8k9q2sjlx4wp76ddzaf94i7lnkliv1c9mj164bnd36chy"; + dependencies = [ + { + name = "futures-core"; + packageId = "futures-core"; + } + { + name = "futures-sink"; + packageId = "futures-sink"; + } + { + name = "indexmap"; + packageId = "indexmap 2.1.0"; + } + { + name = "js-sys"; + packageId = "js-sys"; + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); + } + { + name = "once_cell"; + packageId = "once_cell"; + } + { + name = "pin-project-lite"; + packageId = "pin-project-lite"; + optional = true; + } + { + name = "thiserror"; + packageId = "thiserror"; + } + { + name = "urlencoding"; + packageId = "urlencoding"; + } + ]; + features = { + "default" = [ "trace" ]; + "logs_level_enabled" = [ "logs" ]; + "pin-project-lite" = [ "dep:pin-project-lite" ]; + "testing" = [ "trace" "metrics" ]; + "trace" = [ "pin-project-lite" ]; + }; + resolvedDefaultFeatures = [ "default" "metrics" "pin-project-lite" "trace" ]; + }; + "opentelemetry-otlp" = rec { + crateName = "opentelemetry-otlp"; + version = "0.14.0"; + edition = "2021"; + sha256 = "0c59bh4wa824mf89ayivsjqwipkg1y6r27r4d0y47lhfna1xlk7j"; + dependencies = [ + { + name = "async-trait"; + packageId = "async-trait"; + } + { + name = "futures-core"; + packageId = "futures-core"; + } + { + name = "http"; + packageId = "http"; + optional = true; + } + { + name = "opentelemetry"; + packageId = "opentelemetry"; + usesDefaultFeatures = false; + } + { + name = "opentelemetry-proto"; + packageId = "opentelemetry-proto"; + usesDefaultFeatures = false; + } + { + name = "opentelemetry-semantic-conventions"; + packageId = "opentelemetry-semantic-conventions"; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk"; + usesDefaultFeatures = false; + } + { + name = "prost"; + packageId = "prost 0.11.9"; + optional = true; + } + { + name = "thiserror"; + packageId = "thiserror"; + } + { + name = "tokio"; + packageId = "tokio"; + optional = true; + features = [ "sync" "rt" ]; + } + { + name = "tonic"; + packageId = "tonic 0.9.2"; + optional = true; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + features = [ "macros" "rt-multi-thread" ]; + } + ]; + features = { + "default" = [ "grpc-tonic" "trace" ]; + "grpc-sys" = [ "grpcio" "opentelemetry-proto/gen-grpcio" ]; + "grpc-tonic" = [ "tonic" "prost" "http" "tokio" "opentelemetry-proto/gen-tonic" ]; + "grpcio" = [ "dep:grpcio" ]; + "gzip-tonic" = [ "tonic/gzip" ]; + "http" = [ "dep:http" ]; + "http-proto" = [ "prost" "opentelemetry-http" "opentelemetry-proto/gen-tonic-messages" "http" "trace" "metrics" ]; + "integration-testing" = [ "tonic" "prost" "tokio/full" "trace" ]; + "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" "opentelemetry-proto/logs" ]; + "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" "opentelemetry-proto/metrics" ]; + "openssl" = [ "grpcio/openssl" ]; + "openssl-vendored" = [ "grpcio/openssl-vendored" ]; + "opentelemetry-http" = [ "dep:opentelemetry-http" ]; + "prost" = [ "dep:prost" ]; + "reqwest" = [ "dep:reqwest" ]; + "reqwest-blocking-client" = [ "reqwest/blocking" "opentelemetry-http/reqwest" ]; + "reqwest-client" = [ "reqwest" "opentelemetry-http/reqwest" ]; + "reqwest-rustls" = [ "reqwest" "reqwest/rustls-tls-native-roots" ]; + "serde" = [ "dep:serde" ]; + "serialize" = [ "serde" ]; + "surf" = [ "dep:surf" ]; + "surf-client" = [ "surf" "opentelemetry-http/surf" ]; + "tls" = [ "tonic/tls" ]; + "tls-roots" = [ "tls" "tonic/tls-roots" ]; + "tokio" = [ "dep:tokio" ]; + "tonic" = [ "dep:tonic" ]; + "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" "opentelemetry-proto/trace" ]; + }; + resolvedDefaultFeatures = [ "default" "grpc-tonic" "http" "prost" "tokio" "tonic" "trace" ]; + }; + "opentelemetry-proto" = rec { + crateName = "opentelemetry-proto"; + version = "0.4.0"; + edition = "2021"; + sha256 = "1qblsq0hkksdw3k60bc8yi5xwlynmqwibggz3lyyl4n8bk75bqd2"; + dependencies = [ + { + name = "opentelemetry"; + packageId = "opentelemetry"; + usesDefaultFeatures = false; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk"; + usesDefaultFeatures = false; + } + { + name = "prost"; + packageId = "prost 0.11.9"; + optional = true; + } + { + name = "tonic"; + packageId = "tonic 0.9.2"; + optional = true; + usesDefaultFeatures = false; + features = [ "codegen" "prost" ]; + } + ]; + features = { + "full" = [ "gen-tonic" "gen-grpcio" "trace" "logs" "metrics" "zpages" "with-serde" ]; + "gen-grpcio" = [ "grpcio" "prost" ]; + "gen-tonic" = [ "gen-tonic-messages" "tonic/transport" ]; + "gen-tonic-messages" = [ "tonic" "prost" ]; + "grpcio" = [ "dep:grpcio" ]; + "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" ]; + "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" ]; + "prost" = [ "dep:prost" ]; + "serde" = [ "dep:serde" ]; + "tonic" = [ "dep:tonic" ]; + "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" ]; + "with-serde" = [ "serde" ]; + "zpages" = [ "trace" ]; + }; + resolvedDefaultFeatures = [ "gen-tonic" "gen-tonic-messages" "prost" "tonic" "trace" ]; + }; + "opentelemetry-semantic-conventions" = rec { + crateName = "opentelemetry-semantic-conventions"; + version = "0.13.0"; + edition = "2021"; + sha256 = "115wbgk840dklyhpg3lwp4x1m643qd7f0vkz8hmfz0pry4g4yxzm"; + dependencies = [ + { + name = "opentelemetry"; + packageId = "opentelemetry"; + usesDefaultFeatures = false; + } + ]; + + }; + "opentelemetry_sdk" = rec { + crateName = "opentelemetry_sdk"; + version = "0.21.1"; + edition = "2021"; + sha256 = "1rbxgcxwmxg5ijf7i1xfcg0z5xqyg5ng9r7mhx8hxs83rbra72wn"; + dependencies = [ + { + name = "async-trait"; + packageId = "async-trait"; + optional = true; + } + { + name = "crossbeam-channel"; + packageId = "crossbeam-channel"; + optional = true; + } + { + name = "futures-channel"; + packageId = "futures-channel"; + } + { + name = "futures-executor"; + packageId = "futures-executor"; + } + { + name = "futures-util"; + packageId = "futures-util"; + usesDefaultFeatures = false; + features = [ "std" "sink" "async-await-macro" ]; + } + { + name = "glob"; + packageId = "glob"; + optional = true; + } + { + name = "once_cell"; + packageId = "once_cell"; + } + { + name = "opentelemetry"; + packageId = "opentelemetry"; + } + { + name = "ordered-float"; + packageId = "ordered-float"; + } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + optional = true; + } + { + name = "rand"; + packageId = "rand"; + optional = true; + usesDefaultFeatures = false; + features = [ "std" "std_rng" ]; + } + { + name = "thiserror"; + packageId = "thiserror"; + } + { + name = "tokio"; + packageId = "tokio"; + optional = true; + usesDefaultFeatures = false; + features = [ "rt" "time" ]; + } + { + name = "tokio-stream"; + packageId = "tokio-stream"; + optional = true; + } + ]; + features = { + "async-std" = [ "dep:async-std" ]; + "async-trait" = [ "dep:async-trait" ]; + "crossbeam-channel" = [ "dep:crossbeam-channel" ]; + "default" = [ "trace" ]; + "glob" = [ "dep:glob" ]; + "http" = [ "dep:http" ]; + "jaeger_remote_sampler" = [ "trace" "opentelemetry-http" "http" "serde" "serde_json" "url" ]; + "logs" = [ "opentelemetry/logs" "crossbeam-channel" "async-trait" "serde_json" ]; + "logs_level_enabled" = [ "logs" "opentelemetry/logs_level_enabled" ]; + "metrics" = [ "opentelemetry/metrics" "glob" "async-trait" ]; + "opentelemetry-http" = [ "dep:opentelemetry-http" ]; + "percent-encoding" = [ "dep:percent-encoding" ]; + "rand" = [ "dep:rand" ]; + "rt-async-std" = [ "async-std" ]; + "rt-tokio" = [ "tokio" "tokio-stream" ]; + "rt-tokio-current-thread" = [ "tokio" "tokio-stream" ]; + "serde" = [ "dep:serde" ]; + "serde_json" = [ "dep:serde_json" ]; + "testing" = [ "opentelemetry/testing" "trace" "metrics" "logs" "rt-async-std" "rt-tokio" "rt-tokio-current-thread" "tokio/macros" "tokio/rt-multi-thread" ]; + "tokio" = [ "dep:tokio" ]; + "tokio-stream" = [ "dep:tokio-stream" ]; + "trace" = [ "opentelemetry/trace" "crossbeam-channel" "rand" "async-trait" "percent-encoding" ]; + "url" = [ "dep:url" ]; + }; + resolvedDefaultFeatures = [ "async-trait" "crossbeam-channel" "default" "glob" "metrics" "percent-encoding" "rand" "rt-tokio" "tokio" "tokio-stream" "trace" ]; + }; + "ordered-float" = rec { + crateName = "ordered-float"; + version = "4.2.0"; + edition = "2021"; + sha256 = "0kjqcvvbcsibbx3hnj7ag06bd9gv2zfi5ja6rgyh2kbxbh3zfvd7"; + authors = [ + "Jonathan Reem <jonathan.reem@gmail.com>" + "Matt Brubeck <mbrubeck@limpet.net>" + ]; + dependencies = [ + { + name = "num-traits"; + packageId = "num-traits"; + usesDefaultFeatures = false; + } + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + "borsh" = [ "dep:borsh" ]; + "bytemuck" = [ "dep:bytemuck" ]; + "default" = [ "std" ]; + "proptest" = [ "dep:proptest" ]; + "rand" = [ "dep:rand" ]; + "randtest" = [ "rand/std" "rand/std_rng" ]; + "rkyv" = [ "rkyv_32" ]; + "rkyv_16" = [ "dep:rkyv" "rkyv?/size_16" ]; + "rkyv_32" = [ "dep:rkyv" "rkyv?/size_32" ]; + "rkyv_64" = [ "dep:rkyv" "rkyv?/size_64" ]; + "rkyv_ck" = [ "rkyv?/validation" ]; + "schemars" = [ "dep:schemars" ]; + "serde" = [ "dep:serde" "rand?/serde1" ]; + "speedy" = [ "dep:speedy" ]; + "std" = [ "num-traits/std" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "overload" = rec { crateName = "overload"; version = "0.1.1"; @@ -5051,7 +5457,7 @@ rec { } { name = "indexmap"; - packageId = "indexmap"; + packageId = "indexmap 1.9.3"; features = [ "std" ]; } ]; @@ -5306,6 +5712,7 @@ rec { crateName = "prettyplease"; version = "0.2.9"; edition = "2021"; + links = "prettyplease02"; sha256 = "10n2s6b11pmh8qxz9kjmrb6pgnv5dnsydi3rxpz221nn053a09cq"; authors = [ "David Tolnay <dtolnay@gmail.com>" @@ -5528,7 +5935,35 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "bit-set" "default" "fork" "lazy_static" "regex-syntax" "rusty-fork" "std" "tempfile" "timeout" ]; }; - "prost" = rec { + "prost 0.11.9" = rec { + crateName = "prost"; + version = "0.11.9"; + edition = "2021"; + sha256 = "1kc1hva2h894hc0zf6r4r8fsxfpazf7xn5rj3jya9sbrsyhym0hb"; + authors = [ + "Dan Burkert <dan@danburkert.com>" + "Lucio Franco <luciofranco14@gmail.com" + "Tokio Contributors <team@tokio.rs>" + ]; + dependencies = [ + { + name = "bytes"; + packageId = "bytes"; + usesDefaultFeatures = false; + } + { + name = "prost-derive"; + packageId = "prost-derive 0.11.9"; + optional = true; + } + ]; + features = { + "default" = [ "prost-derive" "std" ]; + "prost-derive" = [ "dep:prost-derive" ]; + }; + resolvedDefaultFeatures = [ "default" "prost-derive" "std" ]; + }; + "prost 0.12.1" = rec { crateName = "prost"; version = "0.12.1"; edition = "2021"; @@ -5546,7 +5981,7 @@ rec { } { name = "prost-derive"; - packageId = "prost-derive"; + packageId = "prost-derive 0.12.1"; optional = true; } ]; @@ -5607,7 +6042,7 @@ rec { } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.12.1"; usesDefaultFeatures = false; } { @@ -5647,7 +6082,45 @@ rec { }; resolvedDefaultFeatures = [ "default" "format" "prettyplease" "syn" ]; }; - "prost-derive" = rec { + "prost-derive 0.11.9" = rec { + crateName = "prost-derive"; + version = "0.11.9"; + edition = "2021"; + sha256 = "1d3mw2s2jba1f7wcjmjd6ha2a255p2rmynxhm1nysv9w1z8xilp5"; + procMacro = true; + authors = [ + "Dan Burkert <dan@danburkert.com>" + "Lucio Franco <luciofranco14@gmail.com>" + "Tokio Contributors <team@tokio.rs>" + ]; + dependencies = [ + { + name = "anyhow"; + packageId = "anyhow"; + } + { + name = "itertools"; + packageId = "itertools"; + usesDefaultFeatures = false; + features = [ "use_alloc" ]; + } + { + name = "proc-macro2"; + packageId = "proc-macro2 1.0.67"; + } + { + name = "quote"; + packageId = "quote 1.0.33"; + } + { + name = "syn"; + packageId = "syn 1.0.109"; + features = [ "extra-traits" ]; + } + ]; + + }; + "prost-derive 0.12.1" = rec { crateName = "prost-derive"; version = "0.12.1"; edition = "2021"; @@ -5698,7 +6171,7 @@ rec { dependencies = [ { name = "prost"; - packageId = "prost"; + packageId = "prost 0.12.1"; usesDefaultFeatures = false; features = [ "prost-derive" ]; } @@ -5947,6 +6420,7 @@ rec { crateName = "rayon-core"; version = "1.11.0"; edition = "2021"; + links = "rayon-core"; sha256 = "13dymrhhdilzpbfh3aylv6ariayqdfk614b3frvwixb6d6yrb3sb"; authors = [ "Niko Matsakis <niko@alum.mit.edu>" @@ -6431,6 +6905,7 @@ rec { crateName = "ring"; version = "0.16.20"; edition = "2018"; + links = "ring-asm"; sha256 = "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh"; authors = [ "Brian Smith <brian@briansmith.org>" @@ -6536,7 +7011,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown"; + packageId = "hashbrown 0.12.3"; usesDefaultFeatures = false; features = [ "inline-more" ]; } @@ -7927,7 +8402,7 @@ rec { "quote" = [ "dep:quote" ]; "test" = [ "syn-test-suite/all-features" ]; }; - resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit-mut" ]; + resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" "visit-mut" ]; }; "sync_wrapper" = rec { crateName = "sync_wrapper"; @@ -8496,7 +8971,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.10.2"; optional = true; } { @@ -8517,7 +8992,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.10.2"; } ]; features = { @@ -8815,7 +9290,7 @@ rec { dependencies = [ { name = "indexmap"; - packageId = "indexmap"; + packageId = "indexmap 1.9.3"; } { name = "nom8"; @@ -8844,7 +9319,7 @@ rec { }; resolvedDefaultFeatures = [ "default" "serde" ]; }; - "tonic" = rec { + "tonic 0.10.2" = rec { crateName = "tonic"; version = "0.10.2"; edition = "2021"; @@ -8911,7 +9386,7 @@ rec { } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.12.1"; optional = true; usesDefaultFeatures = false; features = [ "std" ]; @@ -8989,6 +9464,139 @@ rec { }; resolvedDefaultFeatures = [ "channel" "codegen" "default" "prost" "tls" "tls-roots" "tls-roots-common" "transport" ]; }; + "tonic 0.9.2" = rec { + crateName = "tonic"; + version = "0.9.2"; + edition = "2021"; + sha256 = "0nlx35lvah5hdcp6lg1d6dlprq0zz8ijj6f727szfcv479m6d0ih"; + authors = [ + "Lucio Franco <luciofranco14@gmail.com>" + ]; + dependencies = [ + { + name = "async-trait"; + packageId = "async-trait"; + optional = true; + } + { + name = "axum"; + packageId = "axum"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "base64"; + packageId = "base64"; + } + { + name = "bytes"; + packageId = "bytes"; + } + { + name = "futures-core"; + packageId = "futures-core"; + usesDefaultFeatures = false; + } + { + name = "futures-util"; + packageId = "futures-util"; + usesDefaultFeatures = false; + } + { + name = "h2"; + packageId = "h2"; + optional = true; + } + { + name = "http"; + packageId = "http"; + } + { + name = "http-body"; + packageId = "http-body"; + } + { + name = "hyper"; + packageId = "hyper"; + optional = true; + features = [ "full" ]; + } + { + name = "hyper-timeout"; + packageId = "hyper-timeout"; + optional = true; + } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + } + { + name = "pin-project"; + packageId = "pin-project"; + } + { + name = "prost"; + packageId = "prost 0.11.9"; + optional = true; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "tokio"; + packageId = "tokio"; + optional = true; + features = [ "net" "time" "macros" ]; + } + { + name = "tokio-stream"; + packageId = "tokio-stream"; + } + { + name = "tower"; + packageId = "tower"; + optional = true; + usesDefaultFeatures = false; + features = [ "balance" "buffer" "discover" "limit" "load" "make" "timeout" "util" ]; + } + { + name = "tower-layer"; + packageId = "tower-layer"; + } + { + name = "tower-service"; + packageId = "tower-service"; + } + { + name = "tracing"; + packageId = "tracing"; + } + ]; + devDependencies = [ + { + name = "tokio"; + packageId = "tokio"; + features = [ "rt" "macros" ]; + } + { + name = "tower"; + packageId = "tower"; + features = [ "full" ]; + } + ]; + features = { + "channel" = [ "dep:h2" "dep:hyper" "dep:tokio" "dep:tower" "dep:hyper-timeout" ]; + "codegen" = [ "dep:async-trait" ]; + "default" = [ "transport" "codegen" "prost" ]; + "gzip" = [ "dep:flate2" ]; + "prost" = [ "dep:prost" ]; + "tls" = [ "dep:rustls-pemfile" "transport" "dep:tokio-rustls" "dep:async-stream" ]; + "tls-roots" = [ "tls-roots-common" "dep:rustls-native-certs" ]; + "tls-roots-common" = [ "tls" ]; + "tls-webpki-roots" = [ "tls-roots-common" "dep:webpki-roots" ]; + "transport" = [ "dep:axum" "channel" ]; + }; + resolvedDefaultFeatures = [ "channel" "codegen" "default" "prost" "transport" ]; + }; "tonic-build" = rec { crateName = "tonic-build"; version = "0.10.2"; @@ -9040,7 +9648,7 @@ rec { dependencies = [ { name = "prost"; - packageId = "prost"; + packageId = "prost 0.12.1"; } { name = "prost-types"; @@ -9058,7 +9666,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.10.2"; usesDefaultFeatures = false; features = [ "codegen" "prost" ]; } @@ -9066,7 +9674,7 @@ rec { devDependencies = [ { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.10.2"; usesDefaultFeatures = false; features = [ "transport" ]; } @@ -9096,7 +9704,7 @@ rec { } { name = "indexmap"; - packageId = "indexmap"; + packageId = "indexmap 1.9.3"; optional = true; } { @@ -9324,7 +9932,7 @@ rec { }; resolvedDefaultFeatures = [ "default" "once_cell" "std" "valuable" ]; }; - "tracing-log" = rec { + "tracing-log 0.1.3" = rec { crateName = "tracing-log"; version = "0.1.3"; edition = "2018"; @@ -9356,6 +9964,135 @@ rec { }; resolvedDefaultFeatures = [ "log-tracer" "std" ]; }; + "tracing-log 0.2.0" = rec { + crateName = "tracing-log"; + version = "0.2.0"; + edition = "2018"; + sha256 = "1hs77z026k730ij1a9dhahzrl0s073gfa2hm5p0fbl0b80gmz1gf"; + authors = [ + "Tokio Contributors <team@tokio.rs>" + ]; + dependencies = [ + { + name = "log"; + packageId = "log"; + } + { + name = "once_cell"; + packageId = "once_cell"; + } + { + name = "tracing-core"; + packageId = "tracing-core"; + } + ]; + features = { + "ahash" = [ "dep:ahash" ]; + "default" = [ "log-tracer" "std" ]; + "interest-cache" = [ "lru" "ahash" ]; + "lru" = [ "dep:lru" ]; + "std" = [ "log/std" ]; + }; + }; + "tracing-opentelemetry" = rec { + crateName = "tracing-opentelemetry"; + version = "0.22.0"; + edition = "2018"; + sha256 = "15jmwmbp6wz15bx20bfsmabx53wmlnd7wvzwz9hvkrq7aifc4yn6"; + authors = [ + "Julian Tescher <julian@tescher.me>" + "Tokio Contributors <team@tokio.rs>" + ]; + dependencies = [ + { + name = "js-sys"; + packageId = "js-sys"; + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); + } + { + name = "once_cell"; + packageId = "once_cell"; + } + { + name = "opentelemetry"; + packageId = "opentelemetry"; + usesDefaultFeatures = false; + features = [ "trace" ]; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk"; + usesDefaultFeatures = false; + features = [ "trace" ]; + } + { + name = "smallvec"; + packageId = "smallvec"; + optional = true; + } + { + name = "tracing"; + packageId = "tracing"; + usesDefaultFeatures = false; + features = [ "std" ]; + } + { + name = "tracing-core"; + packageId = "tracing-core"; + } + { + name = "tracing-log"; + packageId = "tracing-log 0.2.0"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "tracing-subscriber"; + packageId = "tracing-subscriber"; + usesDefaultFeatures = false; + features = [ "registry" "std" ]; + } + { + name = "web-time"; + packageId = "web-time"; + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); + } + ]; + devDependencies = [ + { + name = "opentelemetry"; + packageId = "opentelemetry"; + features = [ "trace" "metrics" ]; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk"; + usesDefaultFeatures = false; + features = [ "trace" "rt-tokio" ]; + } + { + name = "tracing"; + packageId = "tracing"; + usesDefaultFeatures = false; + features = [ "std" "attributes" ]; + } + { + name = "tracing-subscriber"; + packageId = "tracing-subscriber"; + usesDefaultFeatures = false; + features = [ "registry" "std" "fmt" ]; + } + ]; + features = { + "async-trait" = [ "dep:async-trait" ]; + "default" = [ "tracing-log" "metrics" ]; + "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" "smallvec" ]; + "smallvec" = [ "dep:smallvec" ]; + "thiserror" = [ "dep:thiserror" ]; + "tracing-log" = [ "dep:tracing-log" ]; + }; + resolvedDefaultFeatures = [ "default" "metrics" "smallvec" "tracing-log" ]; + }; "tracing-serde" = rec { crateName = "tracing-serde"; version = "0.1.3"; @@ -9428,7 +10165,7 @@ rec { } { name = "tracing-log"; - packageId = "tracing-log"; + packageId = "tracing-log 0.1.3"; optional = true; usesDefaultFeatures = false; features = [ "log-tracer" "std" ]; @@ -9442,7 +10179,7 @@ rec { devDependencies = [ { name = "tracing-log"; - packageId = "tracing-log"; + packageId = "tracing-log 0.1.3"; } ]; features = { @@ -9501,11 +10238,11 @@ rec { } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.12.1"; } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.10.2"; } { name = "tonic-reflection"; @@ -9596,7 +10333,7 @@ rec { } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.12.1"; } { name = "sled"; @@ -9623,7 +10360,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.10.2"; } { name = "tonic-reflection"; @@ -10131,12 +10868,28 @@ rec { features = [ "async" ]; } { + name = "opentelemetry"; + packageId = "opentelemetry"; + optional = true; + } + { + name = "opentelemetry-otlp"; + packageId = "opentelemetry-otlp"; + optional = true; + } + { + name = "opentelemetry_sdk"; + packageId = "opentelemetry_sdk"; + optional = true; + features = [ "rt-tokio" ]; + } + { name = "pin-project-lite"; packageId = "pin-project-lite"; } { name = "prost"; - packageId = "prost"; + packageId = "prost 0.12.1"; } { name = "reqwest"; @@ -10178,7 +10931,7 @@ rec { } { name = "tonic"; - packageId = "tonic"; + packageId = "tonic 0.10.2"; features = [ "tls" "tls-roots" ]; } { @@ -10195,6 +10948,10 @@ rec { packageId = "tracing"; } { + name = "tracing-opentelemetry"; + packageId = "tracing-opentelemetry"; + } + { name = "tracing-subscriber"; packageId = "tracing-subscriber"; features = [ "json" ]; @@ -10241,12 +10998,13 @@ rec { } ]; features = { - "default" = [ "fuse" "tonic-reflection" ]; + "default" = [ "fuse" "otlp" "tonic-reflection" ]; "fuse" = [ "tvix-castore/fuse" ]; + "otlp" = [ "dep:opentelemetry" "dep:opentelemetry-otlp" "dep:opentelemetry_sdk" ]; "tonic-reflection" = [ "dep:tonic-reflection" "tvix-castore/tonic-reflection" ]; "virtiofs" = [ "tvix-castore/virtiofs" ]; }; - resolvedDefaultFeatures = [ "default" "fuse" "tonic-reflection" "virtiofs" ]; + resolvedDefaultFeatures = [ "default" "fuse" "otlp" "tonic-reflection" "virtiofs" ]; }; "typenum" = rec { crateName = "typenum"; @@ -10398,6 +11156,17 @@ rec { }; resolvedDefaultFeatures = [ "default" ]; }; + "urlencoding" = rec { + crateName = "urlencoding"; + version = "2.1.3"; + edition = "2021"; + sha256 = "1nj99jp37k47n0hvaz5fvz7z6jd0sb4ppvfy3nphr1zbnyixpy6s"; + authors = [ + "Kornel <kornel@geekhood.net>" + "Bertram Truong <b@bertramtruong.com>" + ]; + + }; "utf8parse" = rec { crateName = "utf8parse"; version = "0.2.1"; @@ -10766,9 +11535,9 @@ rec { }; "wasm-bindgen" = rec { crateName = "wasm-bindgen"; - version = "0.2.84"; + version = "0.2.89"; edition = "2018"; - sha256 = "0fx5gh0b4n6znfa3blz92wn1k4bbiysyq9m95s7rn3gk46ydry1i"; + sha256 = "0kh6akdldy13z9xqj0skz6b4npq1d98bjkgzb8ccq59hibvd9l0f"; authors = [ "The wasm-bindgen Developers" ]; @@ -10785,6 +11554,7 @@ rec { features = { "default" = [ "spans" "std" ]; "enable-interning" = [ "std" ]; + "gg-alloc" = [ "wasm-bindgen-test/gg-alloc" ]; "serde" = [ "dep:serde" ]; "serde-serialize" = [ "serde" "serde_json" "std" ]; "serde_json" = [ "dep:serde_json" ]; @@ -10796,9 +11566,9 @@ rec { }; "wasm-bindgen-backend" = rec { crateName = "wasm-bindgen-backend"; - version = "0.2.84"; + version = "0.2.89"; edition = "2018"; - sha256 = "1ffc0wb293ha56i66f830x7f8aa2xql69a21lrasy1ncbgyr1klm"; + sha256 = "09l8lyylsdssz993h4fzja69zpvpykaw84fivs210fjgwqjzcmhv"; authors = [ "The wasm-bindgen Developers" ]; @@ -10825,7 +11595,7 @@ rec { } { name = "syn"; - packageId = "syn 1.0.109"; + packageId = "syn 2.0.39"; features = [ "full" ]; } { @@ -10873,9 +11643,9 @@ rec { }; "wasm-bindgen-macro" = rec { crateName = "wasm-bindgen-macro"; - version = "0.2.84"; + version = "0.2.89"; edition = "2018"; - sha256 = "1idlq28awqhq8rclb22rn5xix82w9a4rgy11vkapzhzd1dygf8ac"; + sha256 = "1cl2w7k5jn2jbd5kx613c8k8vjvda22hfgcgx7y2mk93fbrxnqh1"; procMacro = true; authors = [ "The wasm-bindgen Developers" @@ -10898,9 +11668,9 @@ rec { }; "wasm-bindgen-macro-support" = rec { crateName = "wasm-bindgen-macro-support"; - version = "0.2.84"; + version = "0.2.89"; edition = "2018"; - sha256 = "1xm56lpi0rihh8ny7x085dgs3jdm47spgqflb98wghyadwq83zra"; + sha256 = "10sj1gr2naxv5q116yjb929hhpvz45dxbkvyk8hyc2lknzy85szh"; authors = [ "The wasm-bindgen Developers" ]; @@ -10915,7 +11685,7 @@ rec { } { name = "syn"; - packageId = "syn 1.0.109"; + packageId = "syn 2.0.39"; features = [ "visit" "full" ]; } { @@ -10935,9 +11705,10 @@ rec { }; "wasm-bindgen-shared" = rec { crateName = "wasm-bindgen-shared"; - version = "0.2.84"; + version = "0.2.89"; edition = "2018"; - sha256 = "0pcvk1c97r1pprzfaxxn359r0wqg5bm33ylbwgjh8f4cwbvzwih0"; + links = "wasm_bindgen"; + sha256 = "17s5rppad113c6ggkaq8c3cg7a3zz15i78wxcg6mcl1n15iv7fbs"; authors = [ "The wasm-bindgen Developers" ]; @@ -11442,6 +12213,26 @@ rec { }; resolvedDefaultFeatures = [ "AbortController" "AbortSignal" "Blob" "BlobPropertyBag" "CanvasRenderingContext2d" "Crypto" "Document" "DomRect" "DomRectReadOnly" "Element" "Event" "EventTarget" "File" "FormData" "Headers" "HtmlCanvasElement" "HtmlElement" "MessageEvent" "Node" "ReadableStream" "Request" "RequestCredentials" "RequestInit" "RequestMode" "Response" "ServiceWorkerGlobalScope" "Window" "Worker" "WorkerGlobalScope" ]; }; + "web-time" = rec { + crateName = "web-time"; + version = "0.2.4"; + edition = "2021"; + sha256 = "1q6gk0nkwbfz30g1pz8g52mq00zjx7m5im36k3474aw73jdh8c5a"; + dependencies = [ + { + name = "js-sys"; + packageId = "js-sys"; + target = { target, features }: ((builtins.elem "wasm" target."family") && (!(("emscripten" == target."os" or null) || ("wasi" == target."os" or null)))); + } + { + name = "wasm-bindgen"; + packageId = "wasm-bindgen"; + usesDefaultFeatures = false; + target = { target, features }: ((builtins.elem "wasm" target."family") && (!(("emscripten" == target."os" or null) || ("wasi" == target."os" or null)))); + } + ]; + + }; "webpki-roots" = rec { crateName = "webpki-roots"; version = "0.25.2"; @@ -12544,6 +13335,7 @@ rec { crateName = "zstd-sys"; version = "1.6.2+zstd.1.5.1"; edition = "2018"; + links = "zstd"; sha256 = "17xcr0mw8ps9hlc8m0dzj7yd52lb9r9ic9fbpxa4994yilj2zbrd"; authors = [ "Alexandre Bury <alexandre.bury@gmail.com>" @@ -12590,12 +13382,12 @@ rec { os = pkgs.rust.lib.toTargetOs platform; arch = pkgs.rust.lib.toTargetArch platform; family = pkgs.rust.lib.toTargetFamily platform; + vendor = pkgs.rust.lib.toTargetVendor platform; env = "gnu"; endian = if platform.parsed.cpu.significantByte.name == "littleEndian" then "little" else "big"; pointer_width = toString platform.parsed.cpu.bits; - vendor = platform.parsed.vendor.name; debug_assertions = false; }; @@ -12891,9 +13683,9 @@ rec { let package = crateConfigs."${dep.packageId}"; in - { inherit (dep) rename; version = package.version; }; + { inherit (dep) rename; inherit (package) version; }; in - lib.mapAttrs (name: choices: builtins.map versionAndRename choices) grouped; + lib.mapAttrs (name: builtins.map versionAndRename) grouped; in buildRustCrateForPkgsFunc pkgs ( @@ -12941,7 +13733,7 @@ rec { */ sanitizeForJson = val: if builtins.isAttrs val - then lib.mapAttrs (n: v: sanitizeForJson v) val + then lib.mapAttrs (n: sanitizeForJson) val else if builtins.isList val then builtins.map sanitizeForJson val else if builtins.isFunction val @@ -13050,7 +13842,7 @@ rec { enabledFeatures = enableFeatures (crateConfig.dependencies or [ ]) expandedFeatures; depWithResolvedFeatures = dependency: let - packageId = dependency.packageId; + inherit (dependency) packageId; features = dependencyFeatures enabledFeatures dependency; in { inherit packageId features; }; diff --git a/tvix/default.nix b/tvix/default.nix index b69878481cfc..5f524295744f 100644 --- a/tvix/default.nix +++ b/tvix/default.nix @@ -32,6 +32,10 @@ let buildInputs = prev.buildInputs or [ ] ++ iconvDarwinDep; }; + opentelemetry-proto = prev: { + nativeBuildInputs = protobufDep prev; + }; + prost-build = prev: { nativeBuildInputs = protobufDep prev; }; diff --git a/tvix/store/Cargo.toml b/tvix/store/Cargo.toml index e6d17e0f6865..39bd0851bc54 100644 --- a/tvix/store/Cargo.toml +++ b/tvix/store/Cargo.toml @@ -16,6 +16,9 @@ lazy_static = "1.4.0" nix-compat = { path = "../nix-compat", features = ["async"] } pin-project-lite = "0.2.13" prost = "0.12.1" +opentelemetry = { version = "0.21.0", optional = true} +opentelemetry-otlp = { version = "0.14.0", optional = true } +opentelemetry_sdk = { version = "0.21.0", features = ["rt-tokio"], optional = true} sha2 = "0.10.6" sled = { version = "0.34.7" } thiserror = "1.0.38" @@ -26,6 +29,7 @@ tokio-util = { version = "0.7.9", features = ["io", "io-util", "compat"] } tonic = { version = "0.10.2", features = ["tls", "tls-roots"] } tower = "0.4.13" tracing = "0.1.37" +tracing-opentelemetry = "0.22.0" tracing-subscriber = { version = "0.3.16", features = ["json"] } tvix-castore = { path = "../castore" } url = "2.4.0" @@ -48,7 +52,8 @@ tempfile = "3.3.0" tokio-retry = "0.3.0" [features] -default = ["fuse", "tonic-reflection"] +default = ["fuse", "otlp", "tonic-reflection"] fuse = ["tvix-castore/fuse"] -virtiofs = ["tvix-castore/virtiofs"] +otlp = ["dep:opentelemetry", "dep:opentelemetry-otlp", "dep:opentelemetry_sdk"] tonic-reflection = ["dep:tonic-reflection", "tvix-castore/tonic-reflection"] +virtiofs = ["tvix-castore/virtiofs"] diff --git a/tvix/store/src/bin/tvix-store.rs b/tvix/store/src/bin/tvix-store.rs index a245af78d065..7c3d2ec0c797 100644 --- a/tvix/store/src/bin/tvix-store.rs +++ b/tvix/store/src/bin/tvix-store.rs @@ -1,6 +1,10 @@ +use clap::Parser; use clap::Subcommand; use futures::future::try_join_all; +use tonic::transport::Server; +use tracing::info; +use tracing::Level; use std::path::PathBuf; use std::sync::Arc; @@ -9,6 +13,7 @@ use tokio_listener::SystemOptions; use tokio_listener::UserOptions; use tracing_subscriber::prelude::*; +use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; use tvix_castore::proto::blob_service_server::BlobServiceServer; use tvix_castore::proto::directory_service_server::DirectoryServiceServer; @@ -32,10 +37,6 @@ use tvix_castore::proto::FILE_DESCRIPTOR_SET as CASTORE_FILE_DESCRIPTOR_SET; #[cfg(feature = "tonic-reflection")] use tvix_store::proto::FILE_DESCRIPTOR_SET; -use clap::Parser; -use tonic::{transport::Server, Result}; -use tracing::{info, Level}; - #[derive(Parser)] #[command(author, version, about, long_about = None)] struct Cli { @@ -170,7 +171,37 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { ), ); - tracing::subscriber::set_global_default(subscriber).expect("Unable to set global subscriber"); + // Add the otlp layer (when otlp is enabled), then init the registry. + // Or if the feature is disabled, just init without adding the layer. + // It's necessary to do this separately, as every with() call chains the + // layer into the type of the registry. + #[cfg(feature = "otlp")] + { + let opentelemetry_layer = { + let otlp_exporter = opentelemetry_otlp::new_exporter().tonic(); + // TODO: re-add once https://github.com/open-telemetry/opentelemetry-rust/pull/1252 is solved. + // let mut metadata = tonic::metadata::MetadataMap::new(); + // metadata.insert("service.name", "tvix.store".parse()?); + // otlp_exporter.with_metadata(metadata), + + let tracer = opentelemetry_otlp::new_pipeline() + .tracing() + .with_exporter(otlp_exporter) + .install_batch(opentelemetry_sdk::runtime::Tokio)?; + + // Create a tracing layer with the configured tracer + tracing_opentelemetry::layer().with_tracer(tracer) + }; + + let subscriber = subscriber.with(opentelemetry_layer); + subscriber.try_init()?; + } + + // Init the registry (when otlp is not enabled) + #[cfg(not(feature = "otlp"))] + { + subscriber.try_init()?; + } match cli.command { Commands::Daemon { |