Update the rest of the OTEL deps and use the new APIs

This commit is contained in:
Quentin Gliech
2024-12-12 11:52:03 +01:00
parent 5a86aed4f7
commit b5155cc8e4
13 changed files with 205 additions and 265 deletions
Generated
+113 -147
View File
@@ -120,9 +120,9 @@ dependencies = [
[[package]]
name = "allocator-api2"
version = "0.2.18"
version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9"
[[package]]
name = "android-tzdata"
@@ -546,9 +546,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "aws-lc-rs"
version = "1.10.0"
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdd82dba44d209fddb11c190e0a94b78651f95299598e472215667417a03ff1d"
checksum = "fe7c2840b66236045acd2607d5866e274380afd87ef99d6226e961e2cb47df45"
dependencies = [
"aws-lc-sys",
"mirai-annotations",
@@ -558,9 +558,9 @@ dependencies = [
[[package]]
name = "aws-lc-sys"
version = "0.22.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df7a4168111d7eb622a31b214057b8509c0a7e1794f44c546d742330dc793972"
checksum = "ad3a619a9de81e1d7de1f1186dcba4506ed661a0e483d84410fdef0ee87b2f96"
dependencies = [
"bindgen",
"cc",
@@ -874,9 +874,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.1.31"
version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f"
checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc"
dependencies = [
"jobserver",
"libc",
@@ -904,6 +904,12 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cfg_aliases"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "chacha20"
version = "0.9.1"
@@ -1709,9 +1715,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
[[package]]
name = "encoding_rs"
version = "0.8.34"
version = "0.8.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
dependencies = [
"cfg-if",
]
@@ -1783,7 +1789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
dependencies = [
"bit-set",
"regex-automata 0.4.8",
"regex-automata 0.4.9",
"regex-syntax 0.8.5",
]
@@ -2834,9 +2840,9 @@ dependencies = [
[[package]]
name = "itoa"
version = "1.0.11"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
[[package]]
name = "jni"
@@ -2869,10 +2875,11 @@ dependencies = [
[[package]]
name = "js-sys"
version = "0.3.72"
version = "0.3.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9"
checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705"
dependencies = [
"once_cell",
"wasm-bindgen",
]
@@ -3051,9 +3058,9 @@ dependencies = [
[[package]]
name = "litemap"
version = "0.7.3"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"
[[package]]
name = "litrs"
@@ -3171,15 +3178,15 @@ dependencies = [
"mas-templates",
"mas-tower",
"oauth2-types",
"opentelemetry 0.24.0",
"opentelemetry-http 0.13.0",
"opentelemetry",
"opentelemetry-http",
"opentelemetry-jaeger-propagator",
"opentelemetry-otlp",
"opentelemetry-prometheus",
"opentelemetry-resource-detectors",
"opentelemetry-semantic-conventions 0.16.0",
"opentelemetry-semantic-conventions",
"opentelemetry-stdout",
"opentelemetry_sdk 0.27.1",
"opentelemetry_sdk",
"prometheus",
"rand",
"rand_chacha",
@@ -3313,8 +3320,8 @@ dependencies = [
"minijinja-contrib",
"nonzero_ext",
"oauth2-types",
"opentelemetry 0.24.0",
"opentelemetry-semantic-conventions 0.16.0",
"opentelemetry",
"opentelemetry-semantic-conventions",
"pbkdf2",
"pkcs8",
"psl",
@@ -3352,9 +3359,9 @@ dependencies = [
"headers",
"http",
"hyper-util",
"opentelemetry 0.24.0",
"opentelemetry-http 0.13.0",
"opentelemetry-semantic-conventions 0.16.0",
"opentelemetry",
"opentelemetry-http",
"opentelemetry-semantic-conventions",
"reqwest",
"rustls-platform-verifier",
"tokio",
@@ -3629,7 +3636,7 @@ dependencies = [
"mas-iana",
"mas-jose",
"oauth2-types",
"opentelemetry 0.24.0",
"opentelemetry",
"rand_core",
"serde",
"serde_json",
@@ -3652,7 +3659,7 @@ dependencies = [
"mas-jose",
"mas-storage",
"oauth2-types",
"opentelemetry-semantic-conventions 0.16.0",
"opentelemetry-semantic-conventions",
"rand",
"rand_chacha",
"sea-query",
@@ -3687,7 +3694,7 @@ dependencies = [
"mas-storage-pg",
"mas-templates",
"mas-tower",
"opentelemetry 0.24.0",
"opentelemetry",
"rand",
"rand_chacha",
"serde",
@@ -3737,9 +3744,9 @@ name = "mas-tower"
version = "0.12.0"
dependencies = [
"http",
"opentelemetry 0.24.0",
"opentelemetry-http 0.13.0",
"opentelemetry-semantic-conventions 0.16.0",
"opentelemetry",
"opentelemetry-http",
"opentelemetry-semantic-conventions",
"pin-project-lite",
"tower",
"tracing",
@@ -4070,20 +4077,6 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "opentelemetry"
version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96"
dependencies = [
"futures-core",
"futures-sink",
"js-sys",
"once_cell",
"pin-project-lite",
"thiserror 1.0.69",
]
[[package]]
name = "opentelemetry"
version = "0.27.1"
@@ -4098,19 +4091,6 @@ dependencies = [
"tracing",
]
[[package]]
name = "opentelemetry-http"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad31e9de44ee3538fb9d64fe3376c1362f406162434609e79aea2a41a0af78ab"
dependencies = [
"async-trait",
"bytes",
"http",
"opentelemetry 0.24.0",
"reqwest",
]
[[package]]
name = "opentelemetry-http"
version = "0.27.0"
@@ -4120,7 +4100,8 @@ dependencies = [
"async-trait",
"bytes",
"http",
"opentelemetry 0.27.1",
"opentelemetry",
"reqwest",
]
[[package]]
@@ -4129,7 +4110,7 @@ version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e33208695c9d3049c848d2abf32f7336ec05cb5c02af1b710e89a99500edeb0"
dependencies = [
"opentelemetry 0.27.1",
"opentelemetry",
]
[[package]]
@@ -4141,10 +4122,10 @@ dependencies = [
"async-trait",
"futures-core",
"http",
"opentelemetry 0.27.1",
"opentelemetry-http 0.27.0",
"opentelemetry",
"opentelemetry-http",
"opentelemetry-proto",
"opentelemetry_sdk 0.27.1",
"opentelemetry_sdk",
"prost",
"thiserror 1.0.69",
]
@@ -4156,8 +4137,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b834e966ea5e2d03dfe5f2253f03d22cce21403ee940265070eeee96cee0bcc"
dependencies = [
"once_cell",
"opentelemetry 0.27.1",
"opentelemetry_sdk 0.27.1",
"opentelemetry",
"opentelemetry_sdk",
"prometheus",
"protobuf",
"tracing",
@@ -4169,8 +4150,8 @@ version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6"
dependencies = [
"opentelemetry 0.27.1",
"opentelemetry_sdk 0.27.1",
"opentelemetry",
"opentelemetry_sdk",
"prost",
"tonic",
]
@@ -4181,17 +4162,11 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf6e83d3dca8fe93cfac95cd07313721c9e6e9f8655e7b06d061d4924df1a0cd"
dependencies = [
"opentelemetry 0.27.1",
"opentelemetry-semantic-conventions 0.27.0",
"opentelemetry_sdk 0.27.1",
"opentelemetry",
"opentelemetry-semantic-conventions",
"opentelemetry_sdk",
]
[[package]]
name = "opentelemetry-semantic-conventions"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cefe0543875379e47eb5f1e68ff83f45cc41366a92dfd0d073d513bf68e9a05"
[[package]]
name = "opentelemetry-semantic-conventions"
version = "0.27.0"
@@ -4207,31 +4182,14 @@ dependencies = [
"async-trait",
"chrono",
"futures-util",
"opentelemetry 0.27.1",
"opentelemetry_sdk 0.27.1",
"opentelemetry",
"opentelemetry_sdk",
"ordered-float",
"serde",
"serde_json",
"thiserror 1.0.69",
]
[[package]]
name = "opentelemetry_sdk"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df"
dependencies = [
"async-trait",
"futures-channel",
"futures-executor",
"futures-util",
"once_cell",
"opentelemetry 0.24.0",
"percent-encoding",
"rand",
"thiserror 1.0.69",
]
[[package]]
name = "opentelemetry_sdk"
version = "0.27.1"
@@ -4243,7 +4201,7 @@ dependencies = [
"futures-executor",
"futures-util",
"glob",
"opentelemetry 0.27.1",
"opentelemetry",
"percent-encoding",
"rand",
"serde_json",
@@ -4667,9 +4625,9 @@ dependencies = [
[[package]]
name = "prettyplease"
version = "0.2.24"
version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "910d41a655dac3b764f1ade94821093d3610248694320cd072303a8eedcf221d"
checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033"
dependencies = [
"proc-macro2",
"syn",
@@ -4695,9 +4653,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.88"
version = "1.0.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9"
checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
dependencies = [
"unicode-ident",
]
@@ -4811,9 +4769,9 @@ dependencies = [
[[package]]
name = "quinn"
version = "0.11.5"
version = "0.11.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684"
checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef"
dependencies = [
"bytes",
"pin-project-lite",
@@ -4822,34 +4780,38 @@ dependencies = [
"rustc-hash 2.0.0",
"rustls",
"socket2",
"thiserror 1.0.69",
"thiserror 2.0.3",
"tokio",
"tracing",
]
[[package]]
name = "quinn-proto"
version = "0.11.8"
version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6"
checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d"
dependencies = [
"bytes",
"getrandom",
"rand",
"ring",
"rustc-hash 2.0.0",
"rustls",
"rustls-pki-types",
"slab",
"thiserror 1.0.69",
"thiserror 2.0.3",
"tinyvec",
"tracing",
"web-time",
]
[[package]]
name = "quinn-udp"
version = "0.5.5"
version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da"
dependencies = [
"cfg_aliases",
"libc",
"once_cell",
"socket2",
@@ -4961,7 +4923,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata 0.4.8",
"regex-automata 0.4.9",
"regex-syntax 0.8.5",
]
@@ -4985,9 +4947,9 @@ dependencies = [
[[package]]
name = "regex-automata"
version = "0.4.8"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
dependencies = [
"aho-corasick",
"memchr",
@@ -5189,9 +5151,9 @@ dependencies = [
[[package]]
name = "rustix"
version = "0.38.37"
version = "0.38.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6"
dependencies = [
"bitflags 2.6.0",
"errno",
@@ -5243,6 +5205,9 @@ name = "rustls-pki-types"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b"
dependencies = [
"web-time",
]
[[package]]
name = "rustls-platform-verifier"
@@ -6124,9 +6089,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
version = "2.0.87"
version = "2.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
dependencies = [
"proc-macro2",
"quote",
@@ -6561,14 +6526,14 @@ dependencies = [
[[package]]
name = "tracing-opentelemetry"
version = "0.25.0"
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b"
checksum = "97a971f6058498b5c0f1affa23e7ea202057a7301dbff68e968b2d578bcbd053"
dependencies = [
"js-sys",
"once_cell",
"opentelemetry 0.24.0",
"opentelemetry_sdk 0.24.1",
"opentelemetry",
"opentelemetry_sdk",
"tracing",
"tracing-core",
"tracing-subscriber",
@@ -6656,9 +6621,9 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893"
[[package]]
name = "unicode-ident"
version = "1.0.13"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
[[package]]
name = "unicode-normalization"
@@ -6774,9 +6739,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
name = "value-bag"
version = "1.9.0"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101"
checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2"
[[package]]
name = "vcpkg"
@@ -6823,9 +6788,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
[[package]]
name = "wasm-bindgen"
version = "0.2.95"
version = "0.2.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e"
checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c"
dependencies = [
"cfg-if",
"once_cell",
@@ -6834,9 +6799,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.95"
version = "0.2.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358"
checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd"
dependencies = [
"bumpalo",
"log",
@@ -6849,21 +6814,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
version = "0.4.45"
version = "0.4.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b"
checksum = "9dfaf8f50e5f293737ee323940c7d8b08a66a95a419223d9f41610ca08b0833d"
dependencies = [
"cfg-if",
"js-sys",
"once_cell",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.95"
version = "0.2.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56"
checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -6871,9 +6837,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.95"
version = "0.2.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d"
dependencies = [
"proc-macro2",
"quote",
@@ -6884,9 +6850,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.95"
version = "0.2.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d"
checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49"
[[package]]
name = "wasm-encoder"
@@ -7102,9 +7068,9 @@ dependencies = [
[[package]]
name = "web-sys"
version = "0.3.72"
version = "0.3.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112"
checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -7179,7 +7145,7 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
"windows-sys 0.59.0",
"windows-sys 0.48.0",
]
[[package]]
@@ -7466,9 +7432,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
[[package]]
name = "yoke"
version = "0.7.4"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"
dependencies = [
"serde",
"stable_deref_trait",
@@ -7478,9 +7444,9 @@ dependencies = [
[[package]]
name = "yoke-derive"
version = "0.7.4"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
dependencies = [
"proc-macro2",
"quote",
@@ -7511,18 +7477,18 @@ dependencies = [
[[package]]
name = "zerofrom"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e"
dependencies = [
"zerofrom-derive",
]
[[package]]
name = "zerofrom-derive"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
dependencies = [
"proc-macro2",
"quote",
+4 -5
View File
@@ -5,7 +5,6 @@ resolver = "2"
# Updated in the CI with a `sed` command
package.version = "0.12.0"
package.license = "AGPL-3.0-only"
package.authors = ["Element Backend Team"]
package.edition = "2021"
@@ -337,15 +336,15 @@ version = "0.3.19"
# OpenTelemetry
[workspace.dependencies.opentelemetry]
version = "0.24.0"
version = "0.27.1"
features = ["trace", "metrics"]
[workspace.dependencies.opentelemetry-http]
version = "0.13.0"
version = "0.27.0"
features = ["reqwest"]
[workspace.dependencies.opentelemetry-semantic-conventions]
version = "0.16.0"
version = "0.27.0"
[workspace.dependencies.tracing-opentelemetry]
version = "0.25.0"
version = "0.28.0"
default-features = false
# URL manipulation
+24 -32
View File
@@ -25,10 +25,7 @@ use mas_router::UrlBuilder;
use mas_storage::{BoxClock, BoxRepository, BoxRng, SystemClock};
use mas_storage_pg::PgRepository;
use mas_templates::Templates;
use opentelemetry::{
metrics::{Histogram, MetricsError},
KeyValue,
};
use opentelemetry::{metrics::Histogram, KeyValue};
use rand::SeedableRng;
use sqlx::PgPool;
@@ -55,50 +52,45 @@ pub struct AppState {
impl AppState {
/// Init the metrics for the app state.
///
/// # Errors
///
/// Returns an error if the metrics could not be initialized.
pub fn init_metrics(&mut self) -> Result<(), MetricsError> {
pub fn init_metrics(&mut self) {
// XXX: do we want to put that somewhere else?
let meter = opentelemetry::global::meter_with_version(
env!("CARGO_PKG_NAME"),
Some(env!("CARGO_PKG_VERSION")),
Some(opentelemetry_semantic_conventions::SCHEMA_URL),
None,
);
let scope = opentelemetry::InstrumentationScope::builder(env!("CARGO_PKG_NAME"))
.with_version(env!("CARGO_PKG_VERSION"))
.with_schema_url(opentelemetry_semantic_conventions::SCHEMA_URL)
.build();
let meter = opentelemetry::global::meter_with_scope(scope);
let pool = self.pool.clone();
let usage = meter
meter
.i64_observable_up_down_counter("db.connections.usage")
.with_description("The number of connections that are currently in `state` described by the state attribute.")
.with_unit("{connection}")
.init();
.with_callback(move |instrument| {
let idle = u32::try_from(pool.num_idle()).unwrap_or(u32::MAX);
let used = pool.size() - idle;
instrument.observe(i64::from(idle), &[KeyValue::new("state", "idle")]);
instrument.observe(i64::from(used), &[KeyValue::new("state", "used")]);
})
.build();
let max = meter
let pool = self.pool.clone();
meter
.i64_observable_up_down_counter("db.connections.max")
.with_description("The maximum number of open connections allowed.")
.with_unit("{connection}")
.init();
// Observe the number of active and idle connections in the pool
meter.register_callback(&[usage.as_any(), max.as_any()], move |observer| {
let idle = u32::try_from(pool.num_idle()).unwrap_or(u32::MAX);
let used = pool.size() - idle;
let max_conn = pool.options().get_max_connections();
observer.observe_i64(&usage, i64::from(idle), &[KeyValue::new("state", "idle")]);
observer.observe_i64(&usage, i64::from(used), &[KeyValue::new("state", "used")]);
observer.observe_i64(&max, i64::from(max_conn), &[]);
})?;
.with_callback(move |instrument| {
let max_conn = pool.options().get_max_connections();
instrument.observe(i64::from(max_conn), &[]);
})
.build();
// Track the connection acquisition time
let histogram = meter
.u64_histogram("db.client.connections.create_time")
.with_description("The time it took to create a new connection.")
.with_unit("ms")
.init();
.build();
self.conn_acquisition_histogram = Some(histogram);
Ok(())
}
/// Init the metadata cache.
+1 -1
View File
@@ -228,7 +228,7 @@ impl Options {
limiter,
conn_acquisition_histogram: None,
};
s.init_metrics()?;
s.init_metrics();
// XXX: this might panic
s.init_metadata_cache().await;
s
+2 -2
View File
@@ -248,14 +248,14 @@ pub fn build_router(
router
.layer(
InFlightCounterLayer::new("http.server.active_requests").on_request((
name.map(|name| MAS_LISTENER_NAME.string(name.to_owned())),
name.map(|name| KeyValue::new(MAS_LISTENER_NAME, name.to_owned())),
metrics_attributes_fn(on_http_request_labels),
)),
)
.layer(
DurationRecorderLayer::new("http.server.duration")
.on_request((
name.map(|name| MAS_LISTENER_NAME.string(name.to_owned())),
name.map(|name| KeyValue::new(MAS_LISTENER_NAME, name.to_owned())),
metrics_attributes_fn(on_http_request_labels),
))
.on_response_fn(on_http_response_labels),
+24 -45
View File
@@ -18,16 +18,13 @@ use opentelemetry::{
global,
propagation::{TextMapCompositePropagator, TextMapPropagator},
trace::TracerProvider as _,
KeyValue,
InstrumentationScope, KeyValue,
};
use opentelemetry_otlp::MetricsExporterBuilder;
use opentelemetry_otlp::{WithExportConfig, WithHttpConfig};
use opentelemetry_prometheus::PrometheusExporter;
use opentelemetry_sdk::{
self,
metrics::{
reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
ManualReader, PeriodicReader, SdkMeterProvider,
},
metrics::{ManualReader, PeriodicReader, SdkMeterProvider},
propagation::{BaggagePropagator, TraceContextPropagator},
trace::{Sampler, Tracer, TracerProvider},
Resource,
@@ -41,16 +38,6 @@ static METER_PROVIDER: OnceCell<SdkMeterProvider> = OnceCell::const_new();
static PROMETHEUS_REGISTRY: OnceCell<Registry> = OnceCell::const_new();
pub fn setup(config: &TelemetryConfig) -> anyhow::Result<Option<Tracer>> {
global::set_error_handler(|e| {
// Don't log the propagation errors, else we'll log an error on each request if
// the propagation errors aren't there
if matches!(e, opentelemetry::global::Error::Propagation(_)) {
return;
}
tracing::error!(error = &e as &dyn std::error::Error);
})?;
let propagator = propagator(&config.tracing.propagators);
// The CORS filter needs to know what headers it should whitelist for
@@ -96,22 +83,22 @@ fn stdout_tracer_provider() -> TracerProvider {
}
fn otlp_tracer_provider(endpoint: Option<&Url>) -> anyhow::Result<TracerProvider> {
use opentelemetry_otlp::WithExportConfig;
let mut exporter = opentelemetry_otlp::new_exporter()
.http()
let mut exporter = opentelemetry_otlp::SpanExporter::builder()
.with_http()
.with_http_client(mas_http::reqwest_client());
if let Some(endpoint) = endpoint {
exporter = exporter.with_endpoint(endpoint.to_string());
}
let tracer = opentelemetry_otlp::new_pipeline()
.tracing()
.with_exporter(exporter)
.with_trace_config(trace_config())
.install_batch(opentelemetry_sdk::runtime::Tokio)
let exporter = exporter
.build()
.context("Failed to configure OTLP trace exporter")?;
let tracer = opentelemetry_sdk::trace::TracerProvider::builder()
.with_batch_exporter(exporter, opentelemetry_sdk::runtime::Tokio)
.with_resource(resource())
.with_sampler(Sampler::AlwaysOn)
.build();
Ok(tracer)
}
@@ -122,37 +109,35 @@ fn tracer(config: &TracingConfig) -> anyhow::Result<Option<Tracer>> {
TracingExporterKind::Otlp => otlp_tracer_provider(config.endpoint.as_ref())?,
};
let tracer = tracer_provider
.tracer_builder(env!("CARGO_PKG_NAME"))
let scope = InstrumentationScope::builder(env!("CARGO_PKG_NAME"))
.with_version(env!("CARGO_PKG_VERSION"))
.with_schema_url(semcov::SCHEMA_URL)
.build();
let tracer = tracer_provider.tracer_with_scope(scope);
global::set_tracer_provider(tracer_provider);
Ok(Some(tracer))
}
fn otlp_metric_reader(endpoint: Option<&url::Url>) -> anyhow::Result<PeriodicReader> {
use opentelemetry_otlp::WithExportConfig;
let mut exporter = opentelemetry_otlp::new_exporter()
.http()
let mut exporter = opentelemetry_otlp::MetricExporter::builder()
.with_http()
.with_http_client(mas_http::reqwest_client());
if let Some(endpoint) = endpoint {
exporter = exporter.with_endpoint(endpoint.to_string());
}
let exporter = exporter
.build()
.context("Failed to configure OTLP metric exporter")?;
let exporter = MetricsExporterBuilder::from(exporter).build_metrics_exporter(
Box::new(DefaultTemporalitySelector::new()),
Box::new(DefaultAggregationSelector::new()),
)?;
Ok(PeriodicReader::builder(exporter, opentelemetry_sdk::runtime::Tokio).build())
let reader = PeriodicReader::builder(exporter, opentelemetry_sdk::runtime::Tokio).build();
Ok(reader)
}
fn stdout_metric_reader() -> PeriodicReader {
let exporter = opentelemetry_stdout::MetricsExporter::default();
let exporter = opentelemetry_stdout::MetricExporter::builder().build();
PeriodicReader::builder(exporter, opentelemetry_sdk::runtime::Tokio).build()
}
@@ -230,12 +215,6 @@ fn init_meter(config: &MetricsConfig) -> anyhow::Result<()> {
Ok(())
}
fn trace_config() -> opentelemetry_sdk::trace::Config {
opentelemetry_sdk::trace::Config::default()
.with_resource(resource())
.with_sampler(Sampler::AlwaysOn)
}
fn resource() -> Resource {
let resource = Resource::new([
KeyValue::new(semcov::resource::SERVICE_NAME, env!("CARGO_PKG_NAME")),
+21 -16
View File
@@ -10,7 +10,7 @@ use chrono::{DateTime, Utc};
use mas_storage::{user::BrowserSessionRepository, RepositoryAccess};
use opentelemetry::{
metrics::{Counter, Histogram},
Key,
Key, KeyValue,
};
use sqlx::PgPool;
use tokio_util::sync::CancellationToken;
@@ -48,18 +48,17 @@ pub struct Worker {
impl Worker {
pub(crate) fn new(pool: PgPool) -> Self {
let meter = opentelemetry::global::meter_with_version(
env!("CARGO_PKG_NAME"),
Some(env!("CARGO_PKG_VERSION")),
Some(opentelemetry_semantic_conventions::SCHEMA_URL),
None,
);
let scope = opentelemetry::InstrumentationScope::builder(env!("CARGO_PKG_NAME"))
.with_version(env!("CARGO_PKG_VERSION"))
.with_schema_url(opentelemetry_semantic_conventions::SCHEMA_URL)
.build();
let meter = opentelemetry::global::meter_with_scope(scope);
let message_counter = meter
.u64_counter("mas.activity_tracker.messages")
.with_description("The number of messages received by the activity tracker")
.with_unit("{messages}")
.init();
.build();
// Record stuff on the counter so that the metrics are initialized
for kind in &[
@@ -69,17 +68,20 @@ impl Worker {
] {
message_counter.add(
0,
&[TYPE.string("record"), SESSION_KIND.string(kind.as_str())],
&[
KeyValue::new(TYPE, "record"),
KeyValue::new(SESSION_KIND, kind.as_str()),
],
);
}
message_counter.add(0, &[TYPE.string("flush")]);
message_counter.add(0, &[TYPE.string("shutdown")]);
message_counter.add(0, &[KeyValue::new(TYPE, "flush")]);
message_counter.add(0, &[KeyValue::new(TYPE, "shutdown")]);
let flush_time_histogram = meter
.u64_histogram("mas.activity_tracker.flush_time")
.with_description("The time it took to flush the activity tracker")
.with_unit("ms")
.init();
.build();
Self {
pool,
@@ -137,7 +139,10 @@ impl Worker {
self.message_counter.add(
1,
&[TYPE.string("record"), SESSION_KIND.string(kind.as_str())],
&[
KeyValue::new(TYPE, "record"),
KeyValue::new(SESSION_KIND, kind.as_str()),
],
);
let record =
@@ -153,7 +158,7 @@ impl Worker {
}
Message::Flush(tx) => {
self.message_counter.add(1, &[TYPE.string("flush")]);
self.message_counter.add(1, &[KeyValue::new(TYPE, "flush")]);
self.flush().await;
let _ = tx.send(());
@@ -182,11 +187,11 @@ impl Worker {
match res {
Ok(()) => {
self.flush_time_histogram
.record(duration_ms, &[RESULT.string("success")]);
.record(duration_ms, &[KeyValue::new(RESULT, "success")]);
}
Err(e) => {
self.flush_time_histogram
.record(duration_ms, &[RESULT.string("failure")]);
.record(duration_ms, &[KeyValue::new(RESULT, "failure")]);
tracing::error!("Failed to flush activity tracker: {}", e);
}
}
+6 -6
View File
@@ -20,10 +20,10 @@ pub use self::{
};
static METER: LazyLock<opentelemetry::metrics::Meter> = LazyLock::new(|| {
opentelemetry::global::meter_with_version(
env!("CARGO_PKG_NAME"),
Some(env!("CARGO_PKG_VERSION")),
Some(opentelemetry_semantic_conventions::SCHEMA_URL),
None,
)
let scope = opentelemetry::InstrumentationScope::builder(env!("CARGO_PKG_NAME"))
.with_version(env!("CARGO_PKG_VERSION"))
.with_schema_url(opentelemetry_semantic_conventions::SCHEMA_URL)
.build();
opentelemetry::global::meter_with_scope(scope)
});
+2 -2
View File
@@ -44,7 +44,7 @@ static HTTP_REQUESTS_DURATION_HISTOGRAM: LazyLock<Histogram<u64>> = LazyLock::ne
.u64_histogram(HTTP_CLIENT_REQUEST_DURATION)
.with_unit("ms")
.with_description("Duration of HTTP client requests")
.init()
.build()
});
static HTTP_REQUESTS_IN_FLIGHT: LazyLock<UpDownCounter<i64>> = LazyLock::new(|| {
@@ -52,7 +52,7 @@ static HTTP_REQUESTS_IN_FLIGHT: LazyLock<UpDownCounter<i64>> = LazyLock::new(||
.i64_up_down_counter(HTTP_CLIENT_ACTIVE_REQUESTS)
.with_unit("{requests}")
.with_description("Number of HTTP client requests in flight")
.init()
.build()
});
struct TracingResolver {
+6 -6
View File
@@ -14,10 +14,10 @@ mod utils;
pub use self::{metrics::*, trace_context::*, tracing::*, utils::*};
fn meter() -> opentelemetry::metrics::Meter {
opentelemetry::global::meter_with_version(
env!("CARGO_PKG_NAME"),
Some(env!("CARGO_PKG_VERSION")),
Some(opentelemetry_semantic_conventions::SCHEMA_URL),
None,
)
let scope = opentelemetry::InstrumentationScope::builder(env!("CARGO_PKG_NAME"))
.with_version(env!("CARGO_PKG_VERSION"))
.with_schema_url(opentelemetry_semantic_conventions::SCHEMA_URL)
.build();
opentelemetry::global::meter_with_scope(scope)
}
+1 -1
View File
@@ -25,7 +25,7 @@ impl DurationRecorderLayer {
/// Create a new [`DurationRecorderLayer`].
#[must_use]
pub fn new(name: &'static str) -> Self {
let histogram = crate::meter().u64_histogram(name).init();
let histogram = crate::meter().u64_histogram(name).build();
Self {
histogram,
on_request: (),
+1 -1
View File
@@ -31,7 +31,7 @@ impl InFlightCounterLayer {
.i64_up_down_counter(name)
.with_unit("{request}")
.with_description("The number of in-flight requests")
.init();
.build();
Self {
counter,
-1
View File
@@ -30,7 +30,6 @@ allow = [
"MPL-2.0",
"OpenSSL",
"Unicode-3.0",
"Unicode-DFS-2016",
"Zlib",
]