You've already forked authentication-service
mirror of
https://github.com/matrix-org/matrix-authentication-service.git
synced 2025-08-07 17:03:01 +03:00
Update opentelemetry to 0.24.0
This commit is contained in:
182
Cargo.lock
generated
182
Cargo.lock
generated
@@ -171,7 +171,7 @@ dependencies = [
|
|||||||
"chrono",
|
"chrono",
|
||||||
"futures",
|
"futures",
|
||||||
"graceful-shutdown",
|
"graceful-shutdown",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"log",
|
"log",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -319,7 +319,7 @@ dependencies = [
|
|||||||
"fnv",
|
"fnv",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"handlebars",
|
"handlebars",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"indexmap 2.2.6",
|
"indexmap 2.2.6",
|
||||||
"mime",
|
"mime",
|
||||||
"multer",
|
"multer",
|
||||||
@@ -606,8 +606,8 @@ dependencies = [
|
|||||||
"axum-core",
|
"axum-core",
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"hyper",
|
"hyper",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
@@ -639,8 +639,8 @@ dependencies = [
|
|||||||
"async-trait",
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"mime",
|
"mime",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
@@ -663,8 +663,8 @@ dependencies = [
|
|||||||
"cookie",
|
"cookie",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"headers",
|
"headers",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"mime",
|
"mime",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
@@ -862,9 +862,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytes"
|
name = "bytes"
|
||||||
version = "1.6.0"
|
version = "1.6.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
|
checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
@@ -2171,7 +2171,7 @@ dependencies = [
|
|||||||
"fnv",
|
"fnv",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-sink",
|
"futures-sink",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"indexmap 2.2.6",
|
"indexmap 2.2.6",
|
||||||
"slab",
|
"slab",
|
||||||
"tokio",
|
"tokio",
|
||||||
@@ -2237,7 +2237,7 @@ dependencies = [
|
|||||||
"base64 0.21.7",
|
"base64 0.21.7",
|
||||||
"bytes",
|
"bytes",
|
||||||
"headers-core",
|
"headers-core",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"httpdate",
|
"httpdate",
|
||||||
"mime",
|
"mime",
|
||||||
"sha1",
|
"sha1",
|
||||||
@@ -2249,7 +2249,7 @@ version = "0.3.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4"
|
checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"http 1.1.0",
|
"http",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2323,17 +2323,6 @@ dependencies = [
|
|||||||
"windows",
|
"windows",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "http"
|
|
||||||
version = "0.2.12"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
|
|
||||||
dependencies = [
|
|
||||||
"bytes",
|
|
||||||
"fnv",
|
|
||||||
"itoa",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "http"
|
name = "http"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
@@ -2345,17 +2334,6 @@ dependencies = [
|
|||||||
"itoa",
|
"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]]
|
[[package]]
|
||||||
name = "http-body"
|
name = "http-body"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
@@ -2363,7 +2341,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
|
checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2374,8 +2352,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -2407,8 +2385,8 @@ dependencies = [
|
|||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"h2",
|
"h2",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"httparse",
|
"httparse",
|
||||||
"httpdate",
|
"httpdate",
|
||||||
"itoa",
|
"itoa",
|
||||||
@@ -2425,7 +2403,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
|
checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"hyper",
|
"hyper",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
"rustls 0.23.12",
|
"rustls 0.23.12",
|
||||||
@@ -2445,8 +2423,8 @@ dependencies = [
|
|||||||
"bytes",
|
"bytes",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"hyper",
|
"hyper",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"socket2 0.5.7",
|
"socket2 0.5.7",
|
||||||
@@ -3142,8 +3120,8 @@ dependencies = [
|
|||||||
"data-encoding",
|
"data-encoding",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"headers",
|
"headers",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
"icu_locid",
|
"icu_locid",
|
||||||
@@ -3183,8 +3161,8 @@ dependencies = [
|
|||||||
"dialoguer",
|
"dialoguer",
|
||||||
"dotenvy",
|
"dotenvy",
|
||||||
"figment",
|
"figment",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"httpdate",
|
"httpdate",
|
||||||
"hyper",
|
"hyper",
|
||||||
@@ -3375,16 +3353,14 @@ dependencies = [
|
|||||||
"bytes",
|
"bytes",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"headers",
|
"headers",
|
||||||
"http 0.2.12",
|
"http",
|
||||||
"http 1.1.0",
|
"http-body",
|
||||||
"http-body 1.0.0",
|
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"hyper",
|
"hyper",
|
||||||
"hyper-rustls",
|
"hyper-rustls",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
"mas-tower",
|
"mas-tower",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"rustls 0.23.12",
|
"rustls 0.23.12",
|
||||||
@@ -3530,7 +3506,7 @@ dependencies = [
|
|||||||
"bytes",
|
"bytes",
|
||||||
"event-listener 5.3.1",
|
"event-listener 5.3.1",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"hyper",
|
"hyper",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
"libc",
|
"libc",
|
||||||
@@ -3553,7 +3529,7 @@ version = "0.9.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"serde",
|
"serde",
|
||||||
"tokio",
|
"tokio",
|
||||||
"url",
|
"url",
|
||||||
@@ -3565,7 +3541,7 @@ version = "0.9.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"mas-axum-utils",
|
"mas-axum-utils",
|
||||||
"mas-http",
|
"mas-http",
|
||||||
"mas-matrix",
|
"mas-matrix",
|
||||||
@@ -3589,7 +3565,7 @@ dependencies = [
|
|||||||
"form_urlencoded",
|
"form_urlencoded",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"headers",
|
"headers",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"language-tags",
|
"language-tags",
|
||||||
"mas-http",
|
"mas-http",
|
||||||
@@ -3743,7 +3719,7 @@ dependencies = [
|
|||||||
"arc-swap",
|
"arc-swap",
|
||||||
"camino",
|
"camino",
|
||||||
"chrono",
|
"chrono",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"mas-data-model",
|
"mas-data-model",
|
||||||
"mas-i18n",
|
"mas-i18n",
|
||||||
"mas-router",
|
"mas-router",
|
||||||
@@ -3767,7 +3743,7 @@ dependencies = [
|
|||||||
name = "mas-tower"
|
name = "mas-tower"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
"opentelemetry-http",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
@@ -3903,7 +3879,7 @@ dependencies = [
|
|||||||
"bytes",
|
"bytes",
|
||||||
"encoding_rs",
|
"encoding_rs",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"httparse",
|
"httparse",
|
||||||
"memchr",
|
"memchr",
|
||||||
"mime",
|
"mime",
|
||||||
@@ -4011,7 +3987,7 @@ dependencies = [
|
|||||||
"assert_matches",
|
"assert_matches",
|
||||||
"chrono",
|
"chrono",
|
||||||
"data-encoding",
|
"data-encoding",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"language-tags",
|
"language-tags",
|
||||||
"mas-iana",
|
"mas-iana",
|
||||||
"mas-jose",
|
"mas-jose",
|
||||||
@@ -4090,9 +4066,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry"
|
name = "opentelemetry"
|
||||||
version = "0.23.0"
|
version = "0.24.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1b69a91d4893e713e06f724597ad630f1fa76057a5e1026c0ca67054a9032a76"
|
checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-sink",
|
"futures-sink",
|
||||||
@@ -4104,34 +4080,38 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-http"
|
name = "opentelemetry-http"
|
||||||
version = "0.12.0"
|
version = "0.13.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b0ba633e55c5ea6f431875ba55e71664f2fa5d3a90bd34ec9302eecc41c865dd"
|
checksum = "ad31e9de44ee3538fb9d64fe3376c1362f406162434609e79aea2a41a0af78ab"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
"http 0.2.12",
|
"http",
|
||||||
|
"http-body-util",
|
||||||
|
"hyper",
|
||||||
|
"hyper-util",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
|
"tokio",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-jaeger-propagator"
|
name = "opentelemetry-jaeger-propagator"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c190755e0aeec909343896f94670446ac686dd1eaf5e2beb4149a7148cfe1d6c"
|
checksum = "fc0a68a13b92fc708d875ad659b08b35d08b8ef2403e01944b39ca21e5b08b17"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-otlp"
|
name = "opentelemetry-otlp"
|
||||||
version = "0.16.0"
|
version = "0.17.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a94c69209c05319cdf7460c6d4c055ed102be242a0a6245835d7bc42c6ec7f54"
|
checksum = "6b925a602ffb916fb7421276b86756027b37ee708f9dce2dbdcc51739f07e727"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"http 0.2.12",
|
"http",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
"opentelemetry-http",
|
||||||
"opentelemetry-proto",
|
"opentelemetry-proto",
|
||||||
@@ -4142,9 +4122,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-prometheus"
|
name = "opentelemetry-prometheus"
|
||||||
version = "0.16.0"
|
version = "0.17.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5e1a24eafe47b693cb938f8505f240dc26c71db60df9aca376b4f857e9653ec7"
|
checksum = "cc4191ce34aa274621861a7a9d68dbcf618d5b6c66b10081631b61fd81fbc015"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
@@ -4155,9 +4135,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-proto"
|
name = "opentelemetry-proto"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "984806e6cf27f2b49282e2a05e288f30594f3dbc74eb7a6e99422bc48ed78162"
|
checksum = "30ee9f20bff9c984511a02f082dc8ede839e4a9bf15cc2487c8d6fea5ad850d9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry_sdk",
|
"opentelemetry_sdk",
|
||||||
@@ -4167,9 +4147,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-resource-detectors"
|
name = "opentelemetry-resource-detectors"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b5cd98b7277913e22e95b6fd3a5f7413438005471a6e33e8a4ae7b9a20be36ad"
|
checksum = "00a7e965924ad5234917f135243605ef6f2ae3f4da8d3363065d679b2c150f2a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
@@ -4178,15 +4158,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-semantic-conventions"
|
name = "opentelemetry-semantic-conventions"
|
||||||
version = "0.15.0"
|
version = "0.16.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1869fb4bb9b35c5ba8a1e40c9b128a7b4c010d07091e864a29da19e4fe2ca4d7"
|
checksum = "1cefe0543875379e47eb5f1e68ff83f45cc41366a92dfd0d073d513bf68e9a05"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-stdout"
|
name = "opentelemetry-stdout"
|
||||||
version = "0.4.0"
|
version = "0.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d6d080bf06af02b738feb2e6830cf72c30b76ca18b40f555cdf1b53e7b491bfe"
|
checksum = "d408d4345b8be6129a77c46c3bfc75f0d3476f3091909c7dd99c1f3d78582287"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"chrono",
|
"chrono",
|
||||||
@@ -4201,19 +4181,17 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry_sdk"
|
name = "opentelemetry_sdk"
|
||||||
version = "0.23.0"
|
version = "0.24.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ae312d58eaa90a82d2e627fd86e075cf5230b3f11794e2ed74199ebbe572d4fd"
|
checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-executor",
|
"futures-executor",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"glob",
|
"glob",
|
||||||
"lazy_static",
|
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"ordered-float",
|
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"rand",
|
"rand",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@@ -4707,9 +4685,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "prost"
|
name = "prost"
|
||||||
version = "0.12.6"
|
version = "0.13.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
|
checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"prost-derive",
|
"prost-derive",
|
||||||
@@ -4717,12 +4695,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "prost-derive"
|
name = "prost-derive"
|
||||||
version = "0.12.6"
|
version = "0.13.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
|
checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"itertools 0.12.1",
|
"itertools 0.13.0",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.68",
|
"syn 2.0.68",
|
||||||
@@ -4974,8 +4952,8 @@ dependencies = [
|
|||||||
"bytes",
|
"bytes",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"hyper",
|
"hyper",
|
||||||
"hyper-rustls",
|
"hyper-rustls",
|
||||||
@@ -5485,7 +5463,7 @@ version = "0.34.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6c90802b38c899a2c9e557dff25ad186362eddf755d5f5244001b172dd03bead"
|
checksum = "6c90802b38c899a2c9e557dff25ad186362eddf755d5f5244001b172dd03bead"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"pin-project",
|
"pin-project",
|
||||||
"sentry-core",
|
"sentry-core",
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
@@ -6336,19 +6314,19 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tonic"
|
name = "tonic"
|
||||||
version = "0.11.0"
|
version = "0.12.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
|
checksum = "38659f4a91aba8598d27821589f5db7dddd94601e7a01b1e485a50e5484c7401"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"base64 0.21.7",
|
"base64 0.22.1",
|
||||||
"bytes",
|
"bytes",
|
||||||
"http 0.2.12",
|
"http",
|
||||||
"http-body 0.4.6",
|
"http-body",
|
||||||
|
"http-body-util",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"pin-project",
|
"pin-project",
|
||||||
"prost",
|
"prost",
|
||||||
"tokio",
|
|
||||||
"tokio-stream",
|
"tokio-stream",
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
@@ -6381,8 +6359,8 @@ dependencies = [
|
|||||||
"bitflags 2.6.0",
|
"bitflags 2.6.0",
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body 1.0.0",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"http-range-header",
|
"http-range-header",
|
||||||
"httpdate",
|
"httpdate",
|
||||||
@@ -6481,9 +6459,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-opentelemetry"
|
name = "tracing-opentelemetry"
|
||||||
version = "0.24.0"
|
version = "0.25.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f68803492bf28ab40aeccaecc7021096bd256baf7ca77c3d425d89b35a7be4e4"
|
checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
@@ -7316,7 +7294,7 @@ dependencies = [
|
|||||||
"base64 0.21.7",
|
"base64 0.21.7",
|
||||||
"deadpool",
|
"deadpool",
|
||||||
"futures",
|
"futures",
|
||||||
"http 1.1.0",
|
"http",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
"hyper",
|
"hyper",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
|
11
Cargo.toml
11
Cargo.toml
@@ -79,7 +79,7 @@ features = ["cookie-private", "cookie-key-expansion", "typed-header"]
|
|||||||
|
|
||||||
# Bytes
|
# Bytes
|
||||||
[workspace.dependencies.bytes]
|
[workspace.dependencies.bytes]
|
||||||
version = "1.6.0"
|
version = "1.6.1"
|
||||||
|
|
||||||
# UTF-8 paths
|
# UTF-8 paths
|
||||||
[workspace.dependencies.camino]
|
[workspace.dependencies.camino]
|
||||||
@@ -241,14 +241,15 @@ version = "0.3.18"
|
|||||||
|
|
||||||
# OpenTelemetry
|
# OpenTelemetry
|
||||||
[workspace.dependencies.opentelemetry]
|
[workspace.dependencies.opentelemetry]
|
||||||
version = "0.23.0"
|
version = "0.24.0"
|
||||||
features = ["trace", "metrics"]
|
features = ["trace", "metrics"]
|
||||||
[workspace.dependencies.opentelemetry-http]
|
[workspace.dependencies.opentelemetry-http]
|
||||||
version = "0.12.0"
|
version = "0.13.0"
|
||||||
|
features = ["hyper"]
|
||||||
[workspace.dependencies.opentelemetry-semantic-conventions]
|
[workspace.dependencies.opentelemetry-semantic-conventions]
|
||||||
version = "0.15.0"
|
version = "0.16.0"
|
||||||
[workspace.dependencies.tracing-opentelemetry]
|
[workspace.dependencies.tracing-opentelemetry]
|
||||||
version = "0.24.0"
|
version = "0.25.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
|
|
||||||
# URL manipulation
|
# URL manipulation
|
||||||
|
@@ -47,13 +47,13 @@ tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
|||||||
tracing-opentelemetry.workspace = true
|
tracing-opentelemetry.workspace = true
|
||||||
opentelemetry.workspace = true
|
opentelemetry.workspace = true
|
||||||
opentelemetry-http.workspace = true
|
opentelemetry-http.workspace = true
|
||||||
opentelemetry-jaeger-propagator = "0.2.0"
|
opentelemetry-jaeger-propagator = "0.3.0"
|
||||||
opentelemetry-otlp = { version = "0.16.0", default-features = false, features = ["trace", "metrics", "http-proto"] }
|
opentelemetry-otlp = { version = "0.17.0", default-features = false, features = ["trace", "metrics", "http-proto"] }
|
||||||
opentelemetry-prometheus = "0.16.0"
|
opentelemetry-prometheus = "0.17.0"
|
||||||
opentelemetry-resource-detectors = "0.2.0"
|
opentelemetry-resource-detectors = "0.3.0"
|
||||||
opentelemetry-semantic-conventions.workspace = true
|
opentelemetry-semantic-conventions.workspace = true
|
||||||
opentelemetry-stdout = { version = "0.4.0", features = ["trace", "metrics"] }
|
opentelemetry-stdout = { version = "0.5.0", features = ["trace", "metrics"] }
|
||||||
opentelemetry_sdk = { version = "0.23.0", features = ["trace", "metrics", "rt-tokio"] }
|
opentelemetry_sdk = { version = "0.24.1", features = ["trace", "metrics", "rt-tokio"] }
|
||||||
prometheus = "0.13.4"
|
prometheus = "0.13.4"
|
||||||
sentry.workspace = true
|
sentry.workspace = true
|
||||||
sentry-tracing.workspace = true
|
sentry-tracing.workspace = true
|
||||||
|
@@ -34,7 +34,7 @@ use mas_storage::{BoxClock, BoxRepository, BoxRng, Repository, SystemClock};
|
|||||||
use mas_storage_pg::PgRepository;
|
use mas_storage_pg::PgRepository;
|
||||||
use mas_templates::Templates;
|
use mas_templates::Templates;
|
||||||
use opentelemetry::{
|
use opentelemetry::{
|
||||||
metrics::{Histogram, MetricsError, Unit},
|
metrics::{Histogram, MetricsError},
|
||||||
KeyValue,
|
KeyValue,
|
||||||
};
|
};
|
||||||
use rand::SeedableRng;
|
use rand::SeedableRng;
|
||||||
@@ -78,13 +78,13 @@ impl AppState {
|
|||||||
let usage = meter
|
let usage = meter
|
||||||
.i64_observable_up_down_counter("db.connections.usage")
|
.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_description("The number of connections that are currently in `state` described by the state attribute.")
|
||||||
.with_unit(Unit::new("{connection}"))
|
.with_unit("{connection}")
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
let max = meter
|
let max = meter
|
||||||
.i64_observable_up_down_counter("db.connections.max")
|
.i64_observable_up_down_counter("db.connections.max")
|
||||||
.with_description("The maximum number of open connections allowed.")
|
.with_description("The maximum number of open connections allowed.")
|
||||||
.with_unit(Unit::new("{connection}"))
|
.with_unit("{connection}")
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
// Observe the number of active and idle connections in the pool
|
// Observe the number of active and idle connections in the pool
|
||||||
@@ -101,7 +101,7 @@ impl AppState {
|
|||||||
let histogram = meter
|
let histogram = meter
|
||||||
.u64_histogram("db.client.connections.create_time")
|
.u64_histogram("db.client.connections.create_time")
|
||||||
.with_description("The time it took to create a new connection.")
|
.with_description("The time it took to create a new connection.")
|
||||||
.with_unit(Unit::new("ms"))
|
.with_unit("ms")
|
||||||
.init();
|
.init();
|
||||||
self.conn_acquisition_histogram = Some(histogram);
|
self.conn_acquisition_histogram = Some(histogram);
|
||||||
|
|
||||||
|
@@ -22,7 +22,6 @@ use mas_config::{
|
|||||||
MetricsConfig, MetricsExporterKind, Propagator, TelemetryConfig, TracingConfig,
|
MetricsConfig, MetricsExporterKind, Propagator, TelemetryConfig, TracingConfig,
|
||||||
TracingExporterKind,
|
TracingExporterKind,
|
||||||
};
|
};
|
||||||
use mas_http::OtelClient;
|
|
||||||
use opentelemetry::{
|
use opentelemetry::{
|
||||||
global,
|
global,
|
||||||
propagation::{TextMapCompositePropagator, TextMapPropagator},
|
propagation::{TextMapCompositePropagator, TextMapPropagator},
|
||||||
@@ -99,7 +98,7 @@ fn propagator(propagators: &[Propagator]) -> impl TextMapPropagator {
|
|||||||
|
|
||||||
fn http_client() -> impl opentelemetry_http::HttpClient + 'static {
|
fn http_client() -> impl opentelemetry_http::HttpClient + 'static {
|
||||||
let client = mas_http::make_untraced_client();
|
let client = mas_http::make_untraced_client();
|
||||||
OtelClient::new(client)
|
opentelemetry_http::hyper::HyperClient::new_with_timeout(client, Duration::from_secs(30))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn stdout_tracer_provider() -> TracerProvider {
|
fn stdout_tracer_provider() -> TracerProvider {
|
||||||
@@ -109,7 +108,7 @@ fn stdout_tracer_provider() -> TracerProvider {
|
|||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn otlp_tracer(endpoint: Option<&Url>) -> anyhow::Result<Tracer> {
|
fn otlp_tracer_provider(endpoint: Option<&Url>) -> anyhow::Result<TracerProvider> {
|
||||||
use opentelemetry_otlp::WithExportConfig;
|
use opentelemetry_otlp::WithExportConfig;
|
||||||
|
|
||||||
let mut exporter = opentelemetry_otlp::new_exporter()
|
let mut exporter = opentelemetry_otlp::new_exporter()
|
||||||
@@ -133,10 +132,7 @@ fn tracer(config: &TracingConfig) -> anyhow::Result<Option<Tracer>> {
|
|||||||
let tracer_provider = match config.exporter {
|
let tracer_provider = match config.exporter {
|
||||||
TracingExporterKind::None => return Ok(None),
|
TracingExporterKind::None => return Ok(None),
|
||||||
TracingExporterKind::Stdout => stdout_tracer_provider(),
|
TracingExporterKind::Stdout => stdout_tracer_provider(),
|
||||||
TracingExporterKind::Otlp => {
|
TracingExporterKind::Otlp => otlp_tracer_provider(config.endpoint.as_ref())?,
|
||||||
// The OTLP exporter already creates a tracer and installs it
|
|
||||||
return Ok(Some(otlp_tracer(config.endpoint.as_ref())?));
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let tracer = tracer_provider
|
let tracer = tracer_provider
|
||||||
@@ -248,7 +244,7 @@ fn init_meter(config: &MetricsConfig) -> anyhow::Result<()> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn trace_config() -> opentelemetry_sdk::trace::Config {
|
fn trace_config() -> opentelemetry_sdk::trace::Config {
|
||||||
opentelemetry_sdk::trace::config()
|
opentelemetry_sdk::trace::Config::default()
|
||||||
.with_resource(resource())
|
.with_resource(resource())
|
||||||
.with_sampler(Sampler::AlwaysOn)
|
.with_sampler(Sampler::AlwaysOn)
|
||||||
}
|
}
|
||||||
|
@@ -65,7 +65,7 @@ impl Worker {
|
|||||||
let message_counter = meter
|
let message_counter = meter
|
||||||
.u64_counter("mas.activity_tracker.messages")
|
.u64_counter("mas.activity_tracker.messages")
|
||||||
.with_description("The number of messages received by the activity tracker")
|
.with_description("The number of messages received by the activity tracker")
|
||||||
.with_unit(opentelemetry::metrics::Unit::new("{messages}"))
|
.with_unit("{messages}")
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
// Record stuff on the counter so that the metrics are initialized
|
// Record stuff on the counter so that the metrics are initialized
|
||||||
@@ -85,7 +85,7 @@ impl Worker {
|
|||||||
let flush_time_histogram = meter
|
let flush_time_histogram = meter
|
||||||
.u64_histogram("mas.activity_tracker.flush_time")
|
.u64_histogram("mas.activity_tracker.flush_time")
|
||||||
.with_description("The time it took to flush the activity tracker")
|
.with_description("The time it took to flush the activity tracker")
|
||||||
.with_unit(opentelemetry::metrics::Unit::new("ms"))
|
.with_unit("ms")
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
|
@@ -23,7 +23,6 @@ hyper.workspace = true
|
|||||||
hyper-util.workspace = true
|
hyper-util.workspace = true
|
||||||
hyper-rustls = { workspace = true, optional = true }
|
hyper-rustls = { workspace = true, optional = true }
|
||||||
opentelemetry.workspace = true
|
opentelemetry.workspace = true
|
||||||
opentelemetry-http = { workspace = true, optional = true }
|
|
||||||
opentelemetry-semantic-conventions.workspace = true
|
opentelemetry-semantic-conventions.workspace = true
|
||||||
rustls = { workspace = true, optional = true }
|
rustls = { workspace = true, optional = true }
|
||||||
rustls-platform-verifier = { workspace = true, optional = true }
|
rustls-platform-verifier = { workspace = true, optional = true }
|
||||||
@@ -37,9 +36,6 @@ tower-http.workspace = true
|
|||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
tracing-opentelemetry.workspace = true
|
tracing-opentelemetry.workspace = true
|
||||||
|
|
||||||
# opentelemetry-http still requires http 0.2, and we need to convert types
|
|
||||||
http02 = { package = "http", version = "0.2.12", optional = true }
|
|
||||||
|
|
||||||
mas-tower = { workspace = true, optional = true }
|
mas-tower = { workspace = true, optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
@@ -52,8 +48,6 @@ client = [
|
|||||||
"dep:rustls",
|
"dep:rustls",
|
||||||
"dep:hyper-rustls",
|
"dep:hyper-rustls",
|
||||||
"dep:rustls-platform-verifier",
|
"dep:rustls-platform-verifier",
|
||||||
"dep:http02",
|
|
||||||
"dep:opentelemetry-http",
|
|
||||||
"tower/limit",
|
"tower/limit",
|
||||||
"tower-http/timeout",
|
"tower-http/timeout",
|
||||||
"tower-http/follow-redirect",
|
"tower-http/follow-redirect",
|
||||||
|
@@ -12,8 +12,6 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
use bytes::Bytes;
|
|
||||||
use http_body_util::{BodyExt, Full};
|
|
||||||
use hyper_rustls::{HttpsConnector, HttpsConnectorBuilder};
|
use hyper_rustls::{HttpsConnector, HttpsConnectorBuilder};
|
||||||
pub use hyper_util::client::legacy::Client;
|
pub use hyper_util::client::legacy::Client;
|
||||||
use hyper_util::{
|
use hyper_util::{
|
||||||
@@ -27,7 +25,6 @@ use mas_tower::{
|
|||||||
DurationRecorderLayer, DurationRecorderService, FnWrapper, InFlightCounterLayer,
|
DurationRecorderLayer, DurationRecorderService, FnWrapper, InFlightCounterLayer,
|
||||||
InFlightCounterService, TraceLayer, TraceService,
|
InFlightCounterService, TraceLayer, TraceService,
|
||||||
};
|
};
|
||||||
use opentelemetry_http::HttpClient;
|
|
||||||
use opentelemetry_semantic_conventions::trace::SERVER_ADDRESS;
|
use opentelemetry_semantic_conventions::trace::SERVER_ADDRESS;
|
||||||
use tower::Layer;
|
use tower::Layer;
|
||||||
use tracing::Span;
|
use tracing::Span;
|
||||||
@@ -97,76 +94,3 @@ fn make_connector<R>(
|
|||||||
.enable_http2()
|
.enable_http2()
|
||||||
.wrap_connector(http)
|
.wrap_connector(http)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A client which can be used by opentelemetry-http to send request through
|
|
||||||
/// hyper 1.x
|
|
||||||
///
|
|
||||||
/// This is needed until OTEL upgrades to hyper 1.x
|
|
||||||
/// <https://github.com/open-telemetry/opentelemetry-rust/pull/1674>
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct OtelClient {
|
|
||||||
client: UntracedClient<Full<Bytes>>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl OtelClient {
|
|
||||||
/// Create a new [`OtelClient`] from a [`UntracedClient`]
|
|
||||||
#[must_use]
|
|
||||||
pub fn new(client: UntracedClient<Full<Bytes>>) -> Self {
|
|
||||||
Self { client }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
|
||||||
impl HttpClient for OtelClient {
|
|
||||||
async fn send(
|
|
||||||
&self,
|
|
||||||
request: opentelemetry_http::Request<Vec<u8>>,
|
|
||||||
) -> Result<opentelemetry_http::Response<Bytes>, opentelemetry_http::HttpError> {
|
|
||||||
// This is the annoying part: converting the OTEL http0.2 request to a http1
|
|
||||||
// request
|
|
||||||
let (parts, body) = request.into_parts();
|
|
||||||
let body = Full::new(Bytes::from(body));
|
|
||||||
let mut request = http::Request::new(body);
|
|
||||||
|
|
||||||
*request.uri_mut() = parts.uri.to_string().parse().unwrap();
|
|
||||||
*request.method_mut() = match parts.method {
|
|
||||||
http02::Method::GET => http::Method::GET,
|
|
||||||
http02::Method::POST => http::Method::POST,
|
|
||||||
http02::Method::PUT => http::Method::PUT,
|
|
||||||
http02::Method::DELETE => http::Method::DELETE,
|
|
||||||
http02::Method::HEAD => http::Method::HEAD,
|
|
||||||
http02::Method::OPTIONS => http::Method::OPTIONS,
|
|
||||||
http02::Method::CONNECT => http::Method::CONNECT,
|
|
||||||
http02::Method::PATCH => http::Method::PATCH,
|
|
||||||
http02::Method::TRACE => http::Method::TRACE,
|
|
||||||
_ => return Err(opentelemetry_http::HttpError::from("Unsupported method")),
|
|
||||||
};
|
|
||||||
request
|
|
||||||
.headers_mut()
|
|
||||||
.extend(parts.headers.into_iter().map(|(k, v)| {
|
|
||||||
(
|
|
||||||
k.map(|k| http::HeaderName::from_bytes(k.as_ref()).unwrap()),
|
|
||||||
http::HeaderValue::from_bytes(v.as_ref()).unwrap(),
|
|
||||||
)
|
|
||||||
}));
|
|
||||||
|
|
||||||
// Send the request
|
|
||||||
let response = self.client.request(request).await?;
|
|
||||||
|
|
||||||
// Convert back the response
|
|
||||||
let (parts, body) = response.into_parts();
|
|
||||||
let body = body.collect().await?.to_bytes();
|
|
||||||
let mut response = opentelemetry_http::Response::new(body);
|
|
||||||
*response.status_mut() = parts.status.as_u16().try_into().unwrap();
|
|
||||||
response
|
|
||||||
.headers_mut()
|
|
||||||
.extend(parts.headers.into_iter().map(|(k, v)| {
|
|
||||||
(
|
|
||||||
k.map(|k| http02::HeaderName::from_bytes(k.as_ref()).unwrap()),
|
|
||||||
http02::HeaderValue::from_bytes(v.as_ref()).unwrap(),
|
|
||||||
)
|
|
||||||
}));
|
|
||||||
|
|
||||||
Ok(response)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@@ -21,10 +21,13 @@ use mas_tower::{
|
|||||||
TraceLayer, TraceService,
|
TraceLayer, TraceService,
|
||||||
};
|
};
|
||||||
use opentelemetry::KeyValue;
|
use opentelemetry::KeyValue;
|
||||||
use opentelemetry_semantic_conventions::trace::{
|
use opentelemetry_semantic_conventions::{
|
||||||
CLIENT_ADDRESS, CLIENT_PORT, HTTP_REQUEST_BODY_SIZE, HTTP_REQUEST_METHOD,
|
attribute::{HTTP_REQUEST_BODY_SIZE, HTTP_RESPONSE_BODY_SIZE},
|
||||||
HTTP_RESPONSE_BODY_SIZE, HTTP_RESPONSE_STATUS_CODE, NETWORK_PROTOCOL_NAME, NETWORK_TRANSPORT,
|
trace::{
|
||||||
NETWORK_TYPE, SERVER_ADDRESS, SERVER_PORT, URL_FULL, USER_AGENT_ORIGINAL,
|
CLIENT_ADDRESS, CLIENT_PORT, HTTP_REQUEST_METHOD, HTTP_RESPONSE_STATUS_CODE,
|
||||||
|
NETWORK_PROTOCOL_NAME, NETWORK_TRANSPORT, NETWORK_TYPE, SERVER_ADDRESS, SERVER_PORT,
|
||||||
|
URL_FULL, USER_AGENT_ORIGINAL,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
use tower::{
|
use tower::{
|
||||||
limit::{ConcurrencyLimit, GlobalConcurrencyLimitLayer},
|
limit::{ConcurrencyLimit, GlobalConcurrencyLimitLayer},
|
||||||
|
@@ -26,8 +26,8 @@ mod service;
|
|||||||
#[cfg(feature = "client")]
|
#[cfg(feature = "client")]
|
||||||
pub use self::{
|
pub use self::{
|
||||||
client::{
|
client::{
|
||||||
make_traced_connector, make_untraced_client, Client, OtelClient, TracedClient,
|
make_traced_connector, make_untraced_client, Client, TracedClient, TracedConnector,
|
||||||
TracedConnector, UntracedClient, UntracedConnector,
|
UntracedClient, UntracedConnector,
|
||||||
},
|
},
|
||||||
layers::client::{ClientLayer, ClientService},
|
layers::client::{ClientLayer, ClientService},
|
||||||
};
|
};
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"db_name": "PostgreSQL",
|
"db_name": "PostgreSQL",
|
||||||
"query": "\n SELECT oauth2_device_code_grant_id\n , oauth2_client_id\n , scope\n , device_code\n , user_code\n , created_at\n , expires_at\n , fulfilled_at\n , rejected_at\n , exchanged_at\n , user_session_id\n , oauth2_session_id\n , ip_address as \"ip_address: IpAddr\"\n , user_agent\n FROM \n oauth2_device_code_grant\n\n WHERE device_code = $1\n ",
|
"query": "\n SELECT oauth2_device_code_grant_id\n , oauth2_client_id\n , scope\n , device_code\n , user_code\n , created_at\n , expires_at\n , fulfilled_at\n , rejected_at\n , exchanged_at\n , user_session_id\n , oauth2_session_id\n , ip_address as \"ip_address: IpAddr\"\n , user_agent\n FROM\n oauth2_device_code_grant\n\n WHERE device_code = $1\n ",
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
{
|
{
|
||||||
@@ -96,5 +96,5 @@
|
|||||||
true
|
true
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hash": "aabefb019c9195b0588882fef562472d6117ff68f8f37d02b7609c94aefdb5d6"
|
"hash": "75a62d170e4c959a14c5698f1da983113e7d1bc565d01e85c158856abb17ddc6"
|
||||||
}
|
}
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"db_name": "PostgreSQL",
|
"db_name": "PostgreSQL",
|
||||||
"query": "\n SELECT oauth2_device_code_grant_id\n , oauth2_client_id\n , scope\n , device_code\n , user_code\n , created_at\n , expires_at\n , fulfilled_at\n , rejected_at\n , exchanged_at\n , user_session_id\n , oauth2_session_id\n , ip_address as \"ip_address: IpAddr\"\n , user_agent\n FROM \n oauth2_device_code_grant\n\n WHERE oauth2_device_code_grant_id = $1\n ",
|
"query": "\n SELECT oauth2_device_code_grant_id\n , oauth2_client_id\n , scope\n , device_code\n , user_code\n , created_at\n , expires_at\n , fulfilled_at\n , rejected_at\n , exchanged_at\n , user_session_id\n , oauth2_session_id\n , ip_address as \"ip_address: IpAddr\"\n , user_agent\n FROM\n oauth2_device_code_grant\n\n WHERE oauth2_device_code_grant_id = $1\n ",
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
{
|
{
|
||||||
@@ -96,5 +96,5 @@
|
|||||||
true
|
true
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hash": "f0977fee9b3919707e9aa20537d836d741acd5b2426218a2f9f9dab4fb8a2ad0"
|
"hash": "89041298e272d15c21e2b7127bd16c5a4f48e2be87dc26e9d0e3a932c9c49dfb"
|
||||||
}
|
}
|
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"db_name": "PostgreSQL",
|
|
||||||
"query": "\n INSERT INTO \"oauth2_device_code_grant\" \n ( oauth2_device_code_grant_id\n , oauth2_client_id\n , scope\n , device_code\n , user_code\n , created_at\n , expires_at\n , ip_address\n , user_agent\n )\n VALUES\n ($1, $2, $3, $4, $5, $6, $7, $8, $9)\n ",
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"parameters": {
|
|
||||||
"Left": [
|
|
||||||
"Uuid",
|
|
||||||
"Uuid",
|
|
||||||
"Text",
|
|
||||||
"Text",
|
|
||||||
"Text",
|
|
||||||
"Timestamptz",
|
|
||||||
"Timestamptz",
|
|
||||||
"Inet",
|
|
||||||
"Text"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"nullable": []
|
|
||||||
},
|
|
||||||
"hash": "9742df9a34fe64e294cae4fc4a18e261c03b2367adeaec8fd554ca6f52c2015e"
|
|
||||||
}
|
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"db_name": "PostgreSQL",
|
"db_name": "PostgreSQL",
|
||||||
"query": "\n SELECT oauth2_device_code_grant_id\n , oauth2_client_id\n , scope\n , device_code\n , user_code\n , created_at\n , expires_at\n , fulfilled_at\n , rejected_at\n , exchanged_at\n , user_session_id\n , oauth2_session_id\n , ip_address as \"ip_address: IpAddr\"\n , user_agent\n FROM \n oauth2_device_code_grant\n\n WHERE user_code = $1\n ",
|
"query": "\n SELECT oauth2_device_code_grant_id\n , oauth2_client_id\n , scope\n , device_code\n , user_code\n , created_at\n , expires_at\n , fulfilled_at\n , rejected_at\n , exchanged_at\n , user_session_id\n , oauth2_session_id\n , ip_address as \"ip_address: IpAddr\"\n , user_agent\n FROM\n oauth2_device_code_grant\n\n WHERE user_code = $1\n ",
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
{
|
{
|
||||||
@@ -96,5 +96,5 @@
|
|||||||
true
|
true
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hash": "fa5a57505066d03828015f79fdb1079eaea13cf7698073f2d5f74d4c50f7b094"
|
"hash": "bb141d28c0c82244f31d542038c314d05ceb3a7b8f35397c0faef3b36d2d14a7"
|
||||||
}
|
}
|
22
crates/storage-pg/.sqlx/query-c984ae0496d0bd7520ee3d6761ce6a4f61a6a2001b597e4c63ba4588ec5cf530.json
generated
Normal file
22
crates/storage-pg/.sqlx/query-c984ae0496d0bd7520ee3d6761ce6a4f61a6a2001b597e4c63ba4588ec5cf530.json
generated
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"db_name": "PostgreSQL",
|
||||||
|
"query": "\n INSERT INTO \"oauth2_device_code_grant\"\n ( oauth2_device_code_grant_id\n , oauth2_client_id\n , scope\n , device_code\n , user_code\n , created_at\n , expires_at\n , ip_address\n , user_agent\n )\n VALUES\n ($1, $2, $3, $4, $5, $6, $7, $8, $9)\n ",
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Uuid",
|
||||||
|
"Uuid",
|
||||||
|
"Text",
|
||||||
|
"Text",
|
||||||
|
"Text",
|
||||||
|
"Timestamptz",
|
||||||
|
"Timestamptz",
|
||||||
|
"Inet",
|
||||||
|
"Text"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"nullable": []
|
||||||
|
},
|
||||||
|
"hash": "c984ae0496d0bd7520ee3d6761ce6a4f61a6a2001b597e4c63ba4588ec5cf530"
|
||||||
|
}
|
@@ -260,7 +260,7 @@ impl<'c> AppSessionRepository for PgAppSessionRepository<'c> {
|
|||||||
#[tracing::instrument(
|
#[tracing::instrument(
|
||||||
name = "db.app_session.list",
|
name = "db.app_session.list",
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
skip_all,
|
skip_all,
|
||||||
err,
|
err,
|
||||||
@@ -408,7 +408,7 @@ impl<'c> AppSessionRepository for PgAppSessionRepository<'c> {
|
|||||||
#[tracing::instrument(
|
#[tracing::instrument(
|
||||||
name = "db.app_session.count",
|
name = "db.app_session.count",
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
skip_all,
|
skip_all,
|
||||||
err,
|
err,
|
||||||
|
@@ -65,7 +65,7 @@ impl<'c> CompatAccessTokenRepository for PgCompatAccessTokenRepository<'c> {
|
|||||||
name = "db.compat_access_token.lookup",
|
name = "db.compat_access_token.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
compat_session.id = %id,
|
compat_session.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -99,7 +99,7 @@ impl<'c> CompatAccessTokenRepository for PgCompatAccessTokenRepository<'c> {
|
|||||||
name = "db.compat_access_token.find_by_token",
|
name = "db.compat_access_token.find_by_token",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -135,7 +135,7 @@ impl<'c> CompatAccessTokenRepository for PgCompatAccessTokenRepository<'c> {
|
|||||||
name = "db.compat_access_token.add",
|
name = "db.compat_access_token.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
compat_access_token.id,
|
compat_access_token.id,
|
||||||
%compat_session.id,
|
%compat_session.id,
|
||||||
user.id = %compat_session.user_id,
|
user.id = %compat_session.user_id,
|
||||||
@@ -185,7 +185,7 @@ impl<'c> CompatAccessTokenRepository for PgCompatAccessTokenRepository<'c> {
|
|||||||
name = "db.compat_access_token.expire",
|
name = "db.compat_access_token.expire",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%compat_access_token.id,
|
%compat_access_token.id,
|
||||||
compat_session.id = %compat_access_token.session_id,
|
compat_session.id = %compat_access_token.session_id,
|
||||||
),
|
),
|
||||||
|
@@ -74,7 +74,7 @@ impl<'c> CompatRefreshTokenRepository for PgCompatRefreshTokenRepository<'c> {
|
|||||||
name = "db.compat_refresh_token.lookup",
|
name = "db.compat_refresh_token.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
compat_refresh_token.id = %id,
|
compat_refresh_token.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -109,7 +109,7 @@ impl<'c> CompatRefreshTokenRepository for PgCompatRefreshTokenRepository<'c> {
|
|||||||
name = "db.compat_refresh_token.find_by_token",
|
name = "db.compat_refresh_token.find_by_token",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -146,7 +146,7 @@ impl<'c> CompatRefreshTokenRepository for PgCompatRefreshTokenRepository<'c> {
|
|||||||
name = "db.compat_refresh_token.add",
|
name = "db.compat_refresh_token.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
compat_refresh_token.id,
|
compat_refresh_token.id,
|
||||||
%compat_session.id,
|
%compat_session.id,
|
||||||
user.id = %compat_session.user_id,
|
user.id = %compat_session.user_id,
|
||||||
@@ -196,7 +196,7 @@ impl<'c> CompatRefreshTokenRepository for PgCompatRefreshTokenRepository<'c> {
|
|||||||
name = "db.compat_refresh_token.consume",
|
name = "db.compat_refresh_token.consume",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%compat_refresh_token.id,
|
%compat_refresh_token.id,
|
||||||
compat_session.id = %compat_refresh_token.session_id,
|
compat_session.id = %compat_refresh_token.session_id,
|
||||||
),
|
),
|
||||||
|
@@ -275,7 +275,7 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> {
|
|||||||
name = "db.compat_session.lookup",
|
name = "db.compat_session.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
compat_session.id = %id,
|
compat_session.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -312,7 +312,7 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> {
|
|||||||
name = "db.compat_session.add",
|
name = "db.compat_session.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
compat_session.id,
|
compat_session.id,
|
||||||
%user.id,
|
%user.id,
|
||||||
%user.username,
|
%user.username,
|
||||||
@@ -369,7 +369,7 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> {
|
|||||||
name = "db.compat_session.finish",
|
name = "db.compat_session.finish",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%compat_session.id,
|
%compat_session.id,
|
||||||
user.id = %compat_session.user_id,
|
user.id = %compat_session.user_id,
|
||||||
compat_session.device.id = compat_session.device.as_str(),
|
compat_session.device.id = compat_session.device.as_str(),
|
||||||
@@ -408,7 +408,7 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> {
|
|||||||
#[tracing::instrument(
|
#[tracing::instrument(
|
||||||
name = "db.compat_session.finish_bulk",
|
name = "db.compat_session.finish_bulk",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(db.statement),
|
fields(db.query.text),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
async fn finish_bulk(
|
async fn finish_bulk(
|
||||||
@@ -435,7 +435,7 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> {
|
|||||||
name = "db.compat_session.list",
|
name = "db.compat_session.list",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -536,7 +536,7 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> {
|
|||||||
name = "db.compat_session.count",
|
name = "db.compat_session.count",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -561,7 +561,7 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> {
|
|||||||
name = "db.compat_session.record_batch_activity",
|
name = "db.compat_session.record_batch_activity",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -608,7 +608,7 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> {
|
|||||||
name = "db.compat_session.record_user_agent",
|
name = "db.compat_session.record_user_agent",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%compat_session.id,
|
%compat_session.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
|
@@ -143,7 +143,7 @@ impl<'c> CompatSsoLoginRepository for PgCompatSsoLoginRepository<'c> {
|
|||||||
name = "db.compat_sso_login.lookup",
|
name = "db.compat_sso_login.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
compat_sso_login.id = %id,
|
compat_sso_login.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -178,7 +178,7 @@ impl<'c> CompatSsoLoginRepository for PgCompatSsoLoginRepository<'c> {
|
|||||||
name = "db.compat_sso_login.find_for_session",
|
name = "db.compat_sso_login.find_for_session",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%compat_session.id,
|
%compat_session.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -216,7 +216,7 @@ impl<'c> CompatSsoLoginRepository for PgCompatSsoLoginRepository<'c> {
|
|||||||
name = "db.compat_sso_login.find_by_token",
|
name = "db.compat_sso_login.find_by_token",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -253,7 +253,7 @@ impl<'c> CompatSsoLoginRepository for PgCompatSsoLoginRepository<'c> {
|
|||||||
name = "db.compat_sso_login.add",
|
name = "db.compat_sso_login.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
compat_sso_login.id,
|
compat_sso_login.id,
|
||||||
compat_sso_login.redirect_uri = %redirect_uri,
|
compat_sso_login.redirect_uri = %redirect_uri,
|
||||||
),
|
),
|
||||||
@@ -298,7 +298,7 @@ impl<'c> CompatSsoLoginRepository for PgCompatSsoLoginRepository<'c> {
|
|||||||
name = "db.compat_sso_login.fulfill",
|
name = "db.compat_sso_login.fulfill",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%compat_sso_login.id,
|
%compat_sso_login.id,
|
||||||
%compat_session.id,
|
%compat_session.id,
|
||||||
compat_session.device.id = compat_session.device.as_str(),
|
compat_session.device.id = compat_session.device.as_str(),
|
||||||
@@ -343,7 +343,7 @@ impl<'c> CompatSsoLoginRepository for PgCompatSsoLoginRepository<'c> {
|
|||||||
name = "db.compat_sso_login.exchange",
|
name = "db.compat_sso_login.exchange",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%compat_sso_login.id,
|
%compat_sso_login.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -382,7 +382,7 @@ impl<'c> CompatSsoLoginRepository for PgCompatSsoLoginRepository<'c> {
|
|||||||
name = "db.compat_sso_login.list",
|
name = "db.compat_sso_login.list",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err
|
err
|
||||||
)]
|
)]
|
||||||
@@ -442,7 +442,7 @@ impl<'c> CompatSsoLoginRepository for PgCompatSsoLoginRepository<'c> {
|
|||||||
name = "db.compat_sso_login.count",
|
name = "db.compat_sso_login.count",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err
|
err
|
||||||
)]
|
)]
|
||||||
|
@@ -41,7 +41,7 @@ impl<'c> JobRepository for PgJobRepository<'c> {
|
|||||||
name = "db.job.schedule_submission",
|
name = "db.job.schedule_submission",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
job.id,
|
job.id,
|
||||||
job.name = submission.name(),
|
job.name = submission.name(),
|
||||||
),
|
),
|
||||||
|
@@ -86,7 +86,7 @@
|
|||||||
//! name = "db.fake_data.lookup",
|
//! name = "db.fake_data.lookup",
|
||||||
//! skip_all,
|
//! skip_all,
|
||||||
//! fields(
|
//! fields(
|
||||||
//! db.statement,
|
//! db.query.text,
|
||||||
//! fake_data.id = %id,
|
//! fake_data.id = %id,
|
||||||
//! ),
|
//! ),
|
||||||
//! err,
|
//! err,
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
//! name = "db.fake_data.add",
|
//! name = "db.fake_data.add",
|
||||||
//! skip_all,
|
//! skip_all,
|
||||||
//! fields(
|
//! fields(
|
||||||
//! db.statement,
|
//! db.query.text,
|
||||||
//! fake_data.id,
|
//! fake_data.id,
|
||||||
//! ),
|
//! ),
|
||||||
//! err,
|
//! err,
|
||||||
@@ -152,8 +152,9 @@
|
|||||||
//! A few things to note with the implementation:
|
//! A few things to note with the implementation:
|
||||||
//!
|
//!
|
||||||
//! - All methods are traced, with an explicit, somewhat consistent name.
|
//! - All methods are traced, with an explicit, somewhat consistent name.
|
||||||
//! - The SQL statement is included as attribute, by declaring a `db.statement`
|
//! - The SQL statement is included as attribute, by declaring a
|
||||||
//! attribute on the tracing span, and then calling [`ExecuteExt::traced`].
|
//! `db.query.text` attribute on the tracing span, and then calling
|
||||||
|
//! [`ExecuteExt::traced`].
|
||||||
//! - The IDs are all [`Ulid`], and generated from the clock and the random
|
//! - The IDs are all [`Ulid`], and generated from the clock and the random
|
||||||
//! number generated passed as parameters. The generated IDs are recorded in
|
//! number generated passed as parameters. The generated IDs are recorded in
|
||||||
//! the span.
|
//! the span.
|
||||||
|
@@ -97,7 +97,7 @@ impl<'c> OAuth2AccessTokenRepository for PgOAuth2AccessTokenRepository<'c> {
|
|||||||
name = "db.oauth2_access_token.find_by_token",
|
name = "db.oauth2_access_token.find_by_token",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -133,7 +133,7 @@ impl<'c> OAuth2AccessTokenRepository for PgOAuth2AccessTokenRepository<'c> {
|
|||||||
name = "db.oauth2_access_token.add",
|
name = "db.oauth2_access_token.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%session.id,
|
%session.id,
|
||||||
client.id = %session.client_id,
|
client.id = %session.client_id,
|
||||||
access_token.id,
|
access_token.id,
|
||||||
|
@@ -205,7 +205,7 @@ impl<'c> OAuth2AuthorizationGrantRepository for PgOAuth2AuthorizationGrantReposi
|
|||||||
name = "db.oauth2_authorization_grant.add",
|
name = "db.oauth2_authorization_grant.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
grant.id,
|
grant.id,
|
||||||
grant.scope = %scope,
|
grant.scope = %scope,
|
||||||
%client.id,
|
%client.id,
|
||||||
@@ -306,7 +306,7 @@ impl<'c> OAuth2AuthorizationGrantRepository for PgOAuth2AuthorizationGrantReposi
|
|||||||
name = "db.oauth2_authorization_grant.lookup",
|
name = "db.oauth2_authorization_grant.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
grant.id = %id,
|
grant.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -354,7 +354,7 @@ impl<'c> OAuth2AuthorizationGrantRepository for PgOAuth2AuthorizationGrantReposi
|
|||||||
name = "db.oauth2_authorization_grant.find_by_code",
|
name = "db.oauth2_authorization_grant.find_by_code",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -404,7 +404,7 @@ impl<'c> OAuth2AuthorizationGrantRepository for PgOAuth2AuthorizationGrantReposi
|
|||||||
name = "db.oauth2_authorization_grant.fulfill",
|
name = "db.oauth2_authorization_grant.fulfill",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%grant.id,
|
%grant.id,
|
||||||
client.id = %grant.client_id,
|
client.id = %grant.client_id,
|
||||||
%session.id,
|
%session.id,
|
||||||
@@ -447,7 +447,7 @@ impl<'c> OAuth2AuthorizationGrantRepository for PgOAuth2AuthorizationGrantReposi
|
|||||||
name = "db.oauth2_authorization_grant.exchange",
|
name = "db.oauth2_authorization_grant.exchange",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%grant.id,
|
%grant.id,
|
||||||
client.id = %grant.client_id,
|
client.id = %grant.client_id,
|
||||||
),
|
),
|
||||||
@@ -485,7 +485,7 @@ impl<'c> OAuth2AuthorizationGrantRepository for PgOAuth2AuthorizationGrantReposi
|
|||||||
name = "db.oauth2_authorization_grant.give_consent",
|
name = "db.oauth2_authorization_grant.give_consent",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%grant.id,
|
%grant.id,
|
||||||
client.id = %grant.client_id,
|
client.id = %grant.client_id,
|
||||||
),
|
),
|
||||||
|
@@ -31,7 +31,7 @@ use oauth2_types::{
|
|||||||
requests::GrantType,
|
requests::GrantType,
|
||||||
scope::{Scope, ScopeToken},
|
scope::{Scope, ScopeToken},
|
||||||
};
|
};
|
||||||
use opentelemetry_semantic_conventions::trace::DB_STATEMENT;
|
use opentelemetry_semantic_conventions::attribute::DB_QUERY_TEXT;
|
||||||
use rand::RngCore;
|
use rand::RngCore;
|
||||||
use sqlx::PgConnection;
|
use sqlx::PgConnection;
|
||||||
use tracing::{info_span, Instrument};
|
use tracing::{info_span, Instrument};
|
||||||
@@ -288,7 +288,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
name = "db.oauth2_client.lookup",
|
name = "db.oauth2_client.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
oauth2_client.id = %id,
|
oauth2_client.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -337,7 +337,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
name = "db.oauth2_client.load_batch",
|
name = "db.oauth2_client.load_batch",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -393,7 +393,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
name = "db.oauth2_client.add",
|
name = "db.oauth2_client.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
client.id,
|
client.id,
|
||||||
client.name = client_name
|
client.name = client_name
|
||||||
),
|
),
|
||||||
@@ -531,7 +531,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
name = "db.oauth2_client.upsert_static",
|
name = "db.oauth2_client.upsert_static",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
client.id = %client_id,
|
client.id = %client_id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -640,7 +640,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
name = "db.oauth2_client.all_static",
|
name = "db.oauth2_client.all_static",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -686,7 +686,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
name = "db.oauth2_client.get_consent_for_user",
|
name = "db.oauth2_client.get_consent_for_user",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
%client.id,
|
%client.id,
|
||||||
),
|
),
|
||||||
@@ -727,7 +727,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
name = "db.oauth2_client.give_consent_for_user",
|
name = "db.oauth2_client.give_consent_for_user",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
%client.id,
|
%client.id,
|
||||||
%scope,
|
%scope,
|
||||||
@@ -777,7 +777,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
name = "db.oauth2_client.delete_by_id",
|
name = "db.oauth2_client.delete_by_id",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
client.id = %id,
|
client.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -787,7 +787,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
{
|
{
|
||||||
let span = info_span!(
|
let span = info_span!(
|
||||||
"db.oauth2_client.delete_by_id.authorization_grants",
|
"db.oauth2_client.delete_by_id.authorization_grants",
|
||||||
{ DB_STATEMENT } = tracing::field::Empty,
|
{ DB_QUERY_TEXT } = tracing::field::Empty,
|
||||||
);
|
);
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
@@ -807,7 +807,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
{
|
{
|
||||||
let span = info_span!(
|
let span = info_span!(
|
||||||
"db.oauth2_client.delete_by_id.consents",
|
"db.oauth2_client.delete_by_id.consents",
|
||||||
{ DB_STATEMENT } = tracing::field::Empty,
|
{ DB_QUERY_TEXT } = tracing::field::Empty,
|
||||||
);
|
);
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
@@ -827,7 +827,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
{
|
{
|
||||||
let span = info_span!(
|
let span = info_span!(
|
||||||
"db.oauth2_client.delete_by_id.access_tokens",
|
"db.oauth2_client.delete_by_id.access_tokens",
|
||||||
{ DB_STATEMENT } = tracing::field::Empty,
|
{ DB_QUERY_TEXT } = tracing::field::Empty,
|
||||||
);
|
);
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
@@ -850,7 +850,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
{
|
{
|
||||||
let span = info_span!(
|
let span = info_span!(
|
||||||
"db.oauth2_client.delete_by_id.refresh_tokens",
|
"db.oauth2_client.delete_by_id.refresh_tokens",
|
||||||
{ DB_STATEMENT } = tracing::field::Empty,
|
{ DB_QUERY_TEXT } = tracing::field::Empty,
|
||||||
);
|
);
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
@@ -873,7 +873,7 @@ impl<'c> OAuth2ClientRepository for PgOAuth2ClientRepository<'c> {
|
|||||||
{
|
{
|
||||||
let span = info_span!(
|
let span = info_span!(
|
||||||
"db.oauth2_client.delete_by_id.sessions",
|
"db.oauth2_client.delete_by_id.sessions",
|
||||||
{ DB_STATEMENT } = tracing::field::Empty,
|
{ DB_QUERY_TEXT } = tracing::field::Empty,
|
||||||
);
|
);
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
|
@@ -153,7 +153,7 @@ impl<'c> OAuth2DeviceCodeGrantRepository for PgOAuth2DeviceCodeGrantRepository<'
|
|||||||
name = "db.oauth2_device_code_grant.add",
|
name = "db.oauth2_device_code_grant.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
oauth2_device_code.id,
|
oauth2_device_code.id,
|
||||||
oauth2_device_code.scope = %params.scope,
|
oauth2_device_code.scope = %params.scope,
|
||||||
oauth2_client.id = %params.client.id,
|
oauth2_client.id = %params.client.id,
|
||||||
@@ -222,7 +222,7 @@ impl<'c> OAuth2DeviceCodeGrantRepository for PgOAuth2DeviceCodeGrantRepository<'
|
|||||||
name = "db.oauth2_device_code_grant.lookup",
|
name = "db.oauth2_device_code_grant.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
oauth2_device_code.id = %id,
|
oauth2_device_code.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -265,7 +265,7 @@ impl<'c> OAuth2DeviceCodeGrantRepository for PgOAuth2DeviceCodeGrantRepository<'
|
|||||||
name = "db.oauth2_device_code_grant.find_by_user_code",
|
name = "db.oauth2_device_code_grant.find_by_user_code",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
oauth2_device_code.user_code = %user_code,
|
oauth2_device_code.user_code = %user_code,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -311,7 +311,7 @@ impl<'c> OAuth2DeviceCodeGrantRepository for PgOAuth2DeviceCodeGrantRepository<'
|
|||||||
name = "db.oauth2_device_code_grant.find_by_device_code",
|
name = "db.oauth2_device_code_grant.find_by_device_code",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
oauth2_device_code.device_code = %device_code,
|
oauth2_device_code.device_code = %device_code,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -357,7 +357,7 @@ impl<'c> OAuth2DeviceCodeGrantRepository for PgOAuth2DeviceCodeGrantRepository<'
|
|||||||
name = "db.oauth2_device_code_grant.fulfill",
|
name = "db.oauth2_device_code_grant.fulfill",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
oauth2_device_code.id = %device_code_grant.id,
|
oauth2_device_code.id = %device_code_grant.id,
|
||||||
oauth2_client.id = %device_code_grant.client_id,
|
oauth2_client.id = %device_code_grant.client_id,
|
||||||
browser_session.id = %browser_session.id,
|
browser_session.id = %browser_session.id,
|
||||||
@@ -400,7 +400,7 @@ impl<'c> OAuth2DeviceCodeGrantRepository for PgOAuth2DeviceCodeGrantRepository<'
|
|||||||
name = "db.oauth2_device_code_grant.reject",
|
name = "db.oauth2_device_code_grant.reject",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
oauth2_device_code.id = %device_code_grant.id,
|
oauth2_device_code.id = %device_code_grant.id,
|
||||||
oauth2_client.id = %device_code_grant.client_id,
|
oauth2_client.id = %device_code_grant.client_id,
|
||||||
browser_session.id = %browser_session.id,
|
browser_session.id = %browser_session.id,
|
||||||
@@ -443,7 +443,7 @@ impl<'c> OAuth2DeviceCodeGrantRepository for PgOAuth2DeviceCodeGrantRepository<'
|
|||||||
name = "db.oauth2_device_code_grant.exchange",
|
name = "db.oauth2_device_code_grant.exchange",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
oauth2_device_code.id = %device_code_grant.id,
|
oauth2_device_code.id = %device_code_grant.id,
|
||||||
oauth2_client.id = %device_code_grant.client_id,
|
oauth2_client.id = %device_code_grant.client_id,
|
||||||
oauth2_session.id = %session.id,
|
oauth2_session.id = %session.id,
|
||||||
|
@@ -72,7 +72,7 @@ impl<'c> OAuth2RefreshTokenRepository for PgOAuth2RefreshTokenRepository<'c> {
|
|||||||
name = "db.oauth2_refresh_token.lookup",
|
name = "db.oauth2_refresh_token.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
refresh_token.id = %id,
|
refresh_token.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -105,7 +105,7 @@ impl<'c> OAuth2RefreshTokenRepository for PgOAuth2RefreshTokenRepository<'c> {
|
|||||||
name = "db.oauth2_refresh_token.find_by_token",
|
name = "db.oauth2_refresh_token.find_by_token",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -141,7 +141,7 @@ impl<'c> OAuth2RefreshTokenRepository for PgOAuth2RefreshTokenRepository<'c> {
|
|||||||
name = "db.oauth2_refresh_token.add",
|
name = "db.oauth2_refresh_token.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%session.id,
|
%session.id,
|
||||||
client.id = %session.client_id,
|
client.id = %session.client_id,
|
||||||
refresh_token.id,
|
refresh_token.id,
|
||||||
@@ -192,7 +192,7 @@ impl<'c> OAuth2RefreshTokenRepository for PgOAuth2RefreshTokenRepository<'c> {
|
|||||||
name = "db.oauth2_refresh_token.consume",
|
name = "db.oauth2_refresh_token.consume",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%refresh_token.id,
|
%refresh_token.id,
|
||||||
session.id = %refresh_token.session_id,
|
session.id = %refresh_token.session_id,
|
||||||
),
|
),
|
||||||
|
@@ -152,7 +152,7 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> {
|
|||||||
name = "db.oauth2_session.lookup",
|
name = "db.oauth2_session.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
session.id = %id,
|
session.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -190,7 +190,7 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> {
|
|||||||
name = "db.oauth2_session.add",
|
name = "db.oauth2_session.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%client.id,
|
%client.id,
|
||||||
session.id,
|
session.id,
|
||||||
session.scope = %scope,
|
session.scope = %scope,
|
||||||
@@ -253,7 +253,7 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> {
|
|||||||
name = "db.oauth2_session.finish_bulk",
|
name = "db.oauth2_session.finish_bulk",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -281,7 +281,7 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> {
|
|||||||
name = "db.oauth2_session.finish",
|
name = "db.oauth2_session.finish",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%session.id,
|
%session.id,
|
||||||
%session.scope,
|
%session.scope,
|
||||||
client.id = %session.client_id,
|
client.id = %session.client_id,
|
||||||
@@ -318,7 +318,7 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> {
|
|||||||
name = "db.oauth2_session.list",
|
name = "db.oauth2_session.list",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -390,7 +390,7 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> {
|
|||||||
name = "db.oauth2_session.count",
|
name = "db.oauth2_session.count",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -415,7 +415,7 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> {
|
|||||||
name = "db.oauth2_session.record_batch_activity",
|
name = "db.oauth2_session.record_batch_activity",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -462,7 +462,7 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> {
|
|||||||
name = "db.oauth2_session.record_user_agent",
|
name = "db.oauth2_session.record_user_agent",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%session.id,
|
%session.id,
|
||||||
%session.scope,
|
%session.scope,
|
||||||
client.id = %session.client_id,
|
client.id = %session.client_id,
|
||||||
|
@@ -12,19 +12,19 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
use opentelemetry_semantic_conventions::trace::DB_STATEMENT;
|
use opentelemetry_semantic_conventions::attribute::DB_QUERY_TEXT;
|
||||||
use tracing::Span;
|
use tracing::Span;
|
||||||
|
|
||||||
/// An extension trait for [`sqlx::Execute`] that records the SQL statement as
|
/// An extension trait for [`sqlx::Execute`] that records the SQL statement as
|
||||||
/// `db.statement` in a tracing span
|
/// `db.query.text` in a tracing span
|
||||||
pub trait ExecuteExt<'q, DB>: Sized {
|
pub trait ExecuteExt<'q, DB>: Sized {
|
||||||
/// Records the statement as `db.statement` in the current span
|
/// Records the statement as `db.query.text` in the current span
|
||||||
#[must_use]
|
#[must_use]
|
||||||
fn traced(self) -> Self {
|
fn traced(self) -> Self {
|
||||||
self.record(&Span::current())
|
self.record(&Span::current())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Records the statement as `db.statement` in the given span
|
/// Records the statement as `db.query.text` in the given span
|
||||||
#[must_use]
|
#[must_use]
|
||||||
fn record(self, span: &Span) -> Self;
|
fn record(self, span: &Span) -> Self;
|
||||||
}
|
}
|
||||||
@@ -35,7 +35,7 @@ where
|
|||||||
DB: sqlx::Database,
|
DB: sqlx::Database,
|
||||||
{
|
{
|
||||||
fn record(self, span: &Span) -> Self {
|
fn record(self, span: &Span) -> Self {
|
||||||
span.record(DB_STATEMENT, self.sql());
|
span.record(DB_QUERY_TEXT, self.sql());
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -118,7 +118,7 @@ impl<'c> UpstreamOAuthLinkRepository for PgUpstreamOAuthLinkRepository<'c> {
|
|||||||
name = "db.upstream_oauth_link.lookup",
|
name = "db.upstream_oauth_link.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
upstream_oauth_link.id = %id,
|
upstream_oauth_link.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -150,7 +150,7 @@ impl<'c> UpstreamOAuthLinkRepository for PgUpstreamOAuthLinkRepository<'c> {
|
|||||||
name = "db.upstream_oauth_link.find_by_subject",
|
name = "db.upstream_oauth_link.find_by_subject",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
upstream_oauth_link.subject = subject,
|
upstream_oauth_link.subject = subject,
|
||||||
%upstream_oauth_provider.id,
|
%upstream_oauth_provider.id,
|
||||||
%upstream_oauth_provider.issuer,
|
%upstream_oauth_provider.issuer,
|
||||||
@@ -191,7 +191,7 @@ impl<'c> UpstreamOAuthLinkRepository for PgUpstreamOAuthLinkRepository<'c> {
|
|||||||
name = "db.upstream_oauth_link.add",
|
name = "db.upstream_oauth_link.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
upstream_oauth_link.id,
|
upstream_oauth_link.id,
|
||||||
upstream_oauth_link.subject = subject,
|
upstream_oauth_link.subject = subject,
|
||||||
%upstream_oauth_provider.id,
|
%upstream_oauth_provider.id,
|
||||||
@@ -243,7 +243,7 @@ impl<'c> UpstreamOAuthLinkRepository for PgUpstreamOAuthLinkRepository<'c> {
|
|||||||
name = "db.upstream_oauth_link.associate_to_user",
|
name = "db.upstream_oauth_link.associate_to_user",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%upstream_oauth_link.id,
|
%upstream_oauth_link.id,
|
||||||
%upstream_oauth_link.subject,
|
%upstream_oauth_link.subject,
|
||||||
%user.id,
|
%user.id,
|
||||||
@@ -276,7 +276,7 @@ impl<'c> UpstreamOAuthLinkRepository for PgUpstreamOAuthLinkRepository<'c> {
|
|||||||
name = "db.upstream_oauth_link.list",
|
name = "db.upstream_oauth_link.list",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -337,7 +337,7 @@ impl<'c> UpstreamOAuthLinkRepository for PgUpstreamOAuthLinkRepository<'c> {
|
|||||||
name = "db.upstream_oauth_link.count",
|
name = "db.upstream_oauth_link.count",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
|
@@ -21,7 +21,7 @@ use mas_storage::{
|
|||||||
},
|
},
|
||||||
Clock, Page, Pagination,
|
Clock, Page, Pagination,
|
||||||
};
|
};
|
||||||
use opentelemetry_semantic_conventions::trace::DB_STATEMENT;
|
use opentelemetry_semantic_conventions::attribute::DB_QUERY_TEXT;
|
||||||
use rand::RngCore;
|
use rand::RngCore;
|
||||||
use sea_query::{enum_def, Expr, PostgresQueryBuilder, Query};
|
use sea_query::{enum_def, Expr, PostgresQueryBuilder, Query};
|
||||||
use sea_query_binder::SqlxBinder;
|
use sea_query_binder::SqlxBinder;
|
||||||
@@ -198,7 +198,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
name = "db.upstream_oauth_provider.lookup",
|
name = "db.upstream_oauth_provider.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
upstream_oauth_provider.id = %id,
|
upstream_oauth_provider.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -247,7 +247,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
name = "db.upstream_oauth_provider.add",
|
name = "db.upstream_oauth_provider.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
upstream_oauth_provider.id,
|
upstream_oauth_provider.id,
|
||||||
upstream_oauth_provider.issuer = %params.issuer,
|
upstream_oauth_provider.issuer = %params.issuer,
|
||||||
upstream_oauth_provider.client_id = %params.client_id,
|
upstream_oauth_provider.client_id = %params.client_id,
|
||||||
@@ -342,7 +342,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
name = "db.upstream_oauth_provider.delete_by_id",
|
name = "db.upstream_oauth_provider.delete_by_id",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
upstream_oauth_provider.id = %id,
|
upstream_oauth_provider.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -354,7 +354,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
let span = info_span!(
|
let span = info_span!(
|
||||||
"db.oauth2_client.delete_by_id.authorization_sessions",
|
"db.oauth2_client.delete_by_id.authorization_sessions",
|
||||||
upstream_oauth_provider.id = %id,
|
upstream_oauth_provider.id = %id,
|
||||||
{ DB_STATEMENT } = tracing::field::Empty,
|
{ DB_QUERY_TEXT } = tracing::field::Empty,
|
||||||
);
|
);
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
r#"
|
r#"
|
||||||
@@ -375,7 +375,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
let span = info_span!(
|
let span = info_span!(
|
||||||
"db.oauth2_client.delete_by_id.links",
|
"db.oauth2_client.delete_by_id.links",
|
||||||
upstream_oauth_provider.id = %id,
|
upstream_oauth_provider.id = %id,
|
||||||
{ DB_STATEMENT } = tracing::field::Empty,
|
{ DB_QUERY_TEXT } = tracing::field::Empty,
|
||||||
);
|
);
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
r#"
|
r#"
|
||||||
@@ -408,7 +408,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
name = "db.upstream_oauth_provider.add",
|
name = "db.upstream_oauth_provider.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
upstream_oauth_provider.id = %id,
|
upstream_oauth_provider.id = %id,
|
||||||
upstream_oauth_provider.issuer = %params.issuer,
|
upstream_oauth_provider.issuer = %params.issuer,
|
||||||
upstream_oauth_provider.client_id = %params.client_id,
|
upstream_oauth_provider.client_id = %params.client_id,
|
||||||
@@ -523,7 +523,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
name = "db.upstream_oauth_provider.disable",
|
name = "db.upstream_oauth_provider.disable",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%upstream_oauth_provider.id,
|
%upstream_oauth_provider.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -558,7 +558,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
name = "db.upstream_oauth_provider.list",
|
name = "db.upstream_oauth_provider.list",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -718,7 +718,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
name = "db.upstream_oauth_provider.count",
|
name = "db.upstream_oauth_provider.count",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -752,7 +752,7 @@ impl<'c> UpstreamOAuthProviderRepository for PgUpstreamOAuthProviderRepository<'
|
|||||||
name = "db.upstream_oauth_provider.all_enabled",
|
name = "db.upstream_oauth_provider.all_enabled",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
|
@@ -107,7 +107,7 @@ impl<'c> UpstreamOAuthSessionRepository for PgUpstreamOAuthSessionRepository<'c>
|
|||||||
name = "db.upstream_oauth_authorization_session.lookup",
|
name = "db.upstream_oauth_authorization_session.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
upstream_oauth_provider.id = %id,
|
upstream_oauth_provider.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -148,7 +148,7 @@ impl<'c> UpstreamOAuthSessionRepository for PgUpstreamOAuthSessionRepository<'c>
|
|||||||
name = "db.upstream_oauth_authorization_session.add",
|
name = "db.upstream_oauth_authorization_session.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%upstream_oauth_provider.id,
|
%upstream_oauth_provider.id,
|
||||||
%upstream_oauth_provider.issuer,
|
%upstream_oauth_provider.issuer,
|
||||||
%upstream_oauth_provider.client_id,
|
%upstream_oauth_provider.client_id,
|
||||||
@@ -212,7 +212,7 @@ impl<'c> UpstreamOAuthSessionRepository for PgUpstreamOAuthSessionRepository<'c>
|
|||||||
name = "db.upstream_oauth_authorization_session.complete_with_link",
|
name = "db.upstream_oauth_authorization_session.complete_with_link",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%upstream_oauth_authorization_session.id,
|
%upstream_oauth_authorization_session.id,
|
||||||
%upstream_oauth_link.id,
|
%upstream_oauth_link.id,
|
||||||
),
|
),
|
||||||
@@ -256,7 +256,7 @@ impl<'c> UpstreamOAuthSessionRepository for PgUpstreamOAuthSessionRepository<'c>
|
|||||||
name = "db.upstream_oauth_authorization_session.consume",
|
name = "db.upstream_oauth_authorization_session.consume",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%upstream_oauth_authorization_session.id,
|
%upstream_oauth_authorization_session.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
|
@@ -19,7 +19,7 @@ use mas_storage::{
|
|||||||
user::{UserEmailFilter, UserEmailRepository},
|
user::{UserEmailFilter, UserEmailRepository},
|
||||||
Clock, Page, Pagination,
|
Clock, Page, Pagination,
|
||||||
};
|
};
|
||||||
use opentelemetry_semantic_conventions::trace::DB_STATEMENT;
|
use opentelemetry_semantic_conventions::attribute::DB_QUERY_TEXT;
|
||||||
use rand::RngCore;
|
use rand::RngCore;
|
||||||
use sea_query::{enum_def, Expr, PostgresQueryBuilder, Query};
|
use sea_query::{enum_def, Expr, PostgresQueryBuilder, Query};
|
||||||
use sea_query_binder::SqlxBinder;
|
use sea_query_binder::SqlxBinder;
|
||||||
@@ -131,7 +131,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.lookup",
|
name = "db.user_email.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user_email.id = %id,
|
user_email.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -166,7 +166,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.find",
|
name = "db.user_email.find",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
user_email.email = email,
|
user_email.email = email,
|
||||||
),
|
),
|
||||||
@@ -203,7 +203,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.get_primary",
|
name = "db.user_email.get_primary",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -226,7 +226,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.all",
|
name = "db.user_email.all",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -259,7 +259,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.list",
|
name = "db.user_email.list",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -308,7 +308,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.count",
|
name = "db.user_email.count",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -333,7 +333,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.add",
|
name = "db.user_email.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
user_email.id,
|
user_email.id,
|
||||||
user_email.email = email,
|
user_email.email = email,
|
||||||
@@ -378,7 +378,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.remove",
|
name = "db.user_email.remove",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user.id = %user_email.user_id,
|
user.id = %user_email.user_id,
|
||||||
%user_email.id,
|
%user_email.id,
|
||||||
%user_email.email,
|
%user_email.email,
|
||||||
@@ -388,7 +388,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
async fn remove(&mut self, user_email: UserEmail) -> Result<(), Self::Error> {
|
async fn remove(&mut self, user_email: UserEmail) -> Result<(), Self::Error> {
|
||||||
let span = info_span!(
|
let span = info_span!(
|
||||||
"db.user_email.remove.codes",
|
"db.user_email.remove.codes",
|
||||||
{ DB_STATEMENT } = tracing::field::Empty
|
{ DB_QUERY_TEXT } = tracing::field::Empty
|
||||||
);
|
);
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
r#"
|
r#"
|
||||||
@@ -461,7 +461,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.add_verification_code",
|
name = "db.user_email.add_verification_code",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user_email.id,
|
%user_email.id,
|
||||||
%user_email.email,
|
%user_email.email,
|
||||||
user_email_verification.id,
|
user_email_verification.id,
|
||||||
@@ -513,7 +513,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.find_verification_code",
|
name = "db.user_email.find_verification_code",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user_email.id,
|
%user_email.id,
|
||||||
user.id = %user_email.user_id,
|
user.id = %user_email.user_id,
|
||||||
),
|
),
|
||||||
@@ -554,7 +554,7 @@ impl<'c> UserEmailRepository for PgUserEmailRepository<'c> {
|
|||||||
name = "db.user_email.consume_verification_code",
|
name = "db.user_email.consume_verification_code",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user_email_verification.id,
|
%user_email_verification.id,
|
||||||
user_email.id = %user_email_verification.user_email_id,
|
user_email.id = %user_email_verification.user_email_id,
|
||||||
),
|
),
|
||||||
|
@@ -125,7 +125,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.lookup",
|
name = "db.user.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user.id = %id,
|
user.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -158,7 +158,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.find_by_username",
|
name = "db.user.find_by_username",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user.username = username,
|
user.username = username,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -191,7 +191,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.add",
|
name = "db.user.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user.username = username,
|
user.username = username,
|
||||||
user.id,
|
user.id,
|
||||||
),
|
),
|
||||||
@@ -240,7 +240,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.exists",
|
name = "db.user.exists",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user.username = username,
|
user.username = username,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -265,7 +265,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.lock",
|
name = "db.user.lock",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -300,7 +300,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.unlock",
|
name = "db.user.unlock",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -333,7 +333,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.set_can_request_admin",
|
name = "db.user.set_can_request_admin",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
user.can_request_admin = can_request_admin,
|
user.can_request_admin = can_request_admin,
|
||||||
),
|
),
|
||||||
@@ -368,7 +368,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.list",
|
name = "db.user.list",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -421,7 +421,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.count",
|
name = "db.user.count",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -446,7 +446,7 @@ impl<'c> UserRepository for PgUserRepository<'c> {
|
|||||||
name = "db.user.acquire_lock_for_sync",
|
name = "db.user.acquire_lock_for_sync",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user.id = %user.id,
|
user.id = %user.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
|
@@ -52,7 +52,7 @@ impl<'c> UserPasswordRepository for PgUserPasswordRepository<'c> {
|
|||||||
name = "db.user_password.active",
|
name = "db.user_password.active",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
%user.username,
|
%user.username,
|
||||||
),
|
),
|
||||||
@@ -106,7 +106,7 @@ impl<'c> UserPasswordRepository for PgUserPasswordRepository<'c> {
|
|||||||
name = "db.user_password.add",
|
name = "db.user_password.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
%user.username,
|
%user.username,
|
||||||
user_password.id,
|
user_password.id,
|
||||||
|
@@ -92,7 +92,7 @@ impl<'c> UserRecoveryRepository for PgUserRecoveryRepository<'c> {
|
|||||||
name = "db.user_recovery.lookup_session",
|
name = "db.user_recovery.lookup_session",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user_recovery_session.id = %id,
|
user_recovery_session.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -132,7 +132,7 @@ impl<'c> UserRecoveryRepository for PgUserRecoveryRepository<'c> {
|
|||||||
name = "db.user_recovery.add_session",
|
name = "db.user_recovery.add_session",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user_recovery_session.id,
|
user_recovery_session.id,
|
||||||
user_recovery_session.email = email,
|
user_recovery_session.email = email,
|
||||||
user_recovery_session.user_agent = &*user_agent,
|
user_recovery_session.user_agent = &*user_agent,
|
||||||
@@ -191,7 +191,7 @@ impl<'c> UserRecoveryRepository for PgUserRecoveryRepository<'c> {
|
|||||||
name = "db.user_recovery.find_ticket",
|
name = "db.user_recovery.find_ticket",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user_recovery_ticket.id = ticket,
|
user_recovery_ticket.id = ticket,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -230,7 +230,7 @@ impl<'c> UserRecoveryRepository for PgUserRecoveryRepository<'c> {
|
|||||||
name = "db.user_recovery.add_ticket",
|
name = "db.user_recovery.add_ticket",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user_recovery_ticket.id,
|
user_recovery_ticket.id,
|
||||||
user_recovery_ticket.id = ticket,
|
user_recovery_ticket.id = ticket,
|
||||||
%user_recovery_session.id,
|
%user_recovery_session.id,
|
||||||
@@ -291,7 +291,7 @@ impl<'c> UserRecoveryRepository for PgUserRecoveryRepository<'c> {
|
|||||||
name = "db.user_recovery.consume_ticket",
|
name = "db.user_recovery.consume_ticket",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user_recovery_ticket.id,
|
%user_recovery_ticket.id,
|
||||||
user_email.id = %user_recovery_ticket.user_email_id,
|
user_email.id = %user_recovery_ticket.user_email_id,
|
||||||
%user_recovery_session.id,
|
%user_recovery_session.id,
|
||||||
|
@@ -164,7 +164,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.lookup",
|
name = "db.browser_session.lookup",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
user_session.id = %id,
|
user_session.id = %id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -205,7 +205,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.add",
|
name = "db.browser_session.add",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
user_session.id,
|
user_session.id,
|
||||||
),
|
),
|
||||||
@@ -254,7 +254,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.finish",
|
name = "db.browser_session.finish",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user_session.id,
|
%user_session.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -289,7 +289,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.finish_bulk",
|
name = "db.browser_session.finish_bulk",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -317,7 +317,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.list",
|
name = "db.browser_session.list",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -404,7 +404,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.count",
|
name = "db.browser_session.count",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
@@ -429,7 +429,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.authenticate_with_password",
|
name = "db.browser_session.authenticate_with_password",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user_session.id,
|
%user_session.id,
|
||||||
%user_password.id,
|
%user_password.id,
|
||||||
user_session_authentication.id,
|
user_session_authentication.id,
|
||||||
@@ -478,7 +478,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.authenticate_with_upstream",
|
name = "db.browser_session.authenticate_with_upstream",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user_session.id,
|
%user_session.id,
|
||||||
%upstream_oauth_session.id,
|
%upstream_oauth_session.id,
|
||||||
user_session_authentication.id,
|
user_session_authentication.id,
|
||||||
@@ -527,7 +527,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.get_last_authentication",
|
name = "db.browser_session.get_last_authentication",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user_session.id,
|
%user_session.id,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
@@ -566,7 +566,7 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> {
|
|||||||
name = "db.browser_session.record_batch_activity",
|
name = "db.browser_session.record_batch_activity",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
),
|
),
|
||||||
err,
|
err,
|
||||||
)]
|
)]
|
||||||
|
@@ -44,7 +44,7 @@ impl<'c> UserTermsRepository for PgUserTermsRepository<'c> {
|
|||||||
name = "db.user_terms.accept_terms",
|
name = "db.user_terms.accept_terms",
|
||||||
skip_all,
|
skip_all,
|
||||||
fields(
|
fields(
|
||||||
db.statement,
|
db.query.text,
|
||||||
%user.id,
|
%user.id,
|
||||||
user_terms.id,
|
user_terms.id,
|
||||||
%user_terms.url = terms_url.as_str(),
|
%user_terms.url = terms_url.as_str(),
|
||||||
|
@@ -14,10 +14,7 @@
|
|||||||
|
|
||||||
use std::future::Future;
|
use std::future::Future;
|
||||||
|
|
||||||
use opentelemetry::{
|
use opentelemetry::{metrics::UpDownCounter, KeyValue};
|
||||||
metrics::{Unit, UpDownCounter},
|
|
||||||
KeyValue,
|
|
||||||
};
|
|
||||||
use pin_project_lite::pin_project;
|
use pin_project_lite::pin_project;
|
||||||
use tower::{Layer, Service};
|
use tower::{Layer, Service};
|
||||||
|
|
||||||
@@ -40,7 +37,7 @@ impl InFlightCounterLayer {
|
|||||||
pub fn new(name: &'static str) -> Self {
|
pub fn new(name: &'static str) -> Self {
|
||||||
let counter = crate::meter()
|
let counter = crate::meter()
|
||||||
.i64_up_down_counter(name)
|
.i64_up_down_counter(name)
|
||||||
.with_unit(Unit::new("{request}"))
|
.with_unit("{request}")
|
||||||
.with_description("The number of in-flight requests")
|
.with_description("The number of in-flight requests")
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
|
10
deny.toml
10
deny.toml
@@ -53,8 +53,8 @@ multiple-versions = "deny"
|
|||||||
|
|
||||||
skip = [
|
skip = [
|
||||||
{ name = "base64", version = "0.21.7" }, # many dependencies depends on this old version
|
{ name = "base64", version = "0.21.7" }, # many dependencies depends on this old version
|
||||||
{ name = "syn", version = "1.0.109" }, # sea-query, sqlx, schemars depend on the old version
|
{ name = "syn", version = "1.0.109" }, # sea-query, sqlx depend on the old version
|
||||||
{ name = "event-listener", version = "2.5.3" }, # async-channel (wiremock) and sqlx-core depend on the old version
|
{ name = "event-listener", version = "2.5.3" }, # sqlx-core depend on the old version
|
||||||
{ name = "regex-syntax", version = "0.6.29" }, # tracing-subscriber[env-filter] -> matchers depends on the old version
|
{ name = "regex-syntax", version = "0.6.29" }, # tracing-subscriber[env-filter] -> matchers depends on the old version
|
||||||
{ name = "regex-automata", version = "0.1.10" }, # ^
|
{ name = "regex-automata", version = "0.1.10" }, # ^
|
||||||
{ name = "regex-automata", version = "0.2.0" }, # icu_list depends on this old version
|
{ name = "regex-automata", version = "0.2.0" }, # icu_list depends on this old version
|
||||||
@@ -67,20 +67,16 @@ skip = [
|
|||||||
{ name = "webpki-roots", version = "0.25.3" },
|
{ name = "webpki-roots", version = "0.25.3" },
|
||||||
# axum-macros, sqlx-macros and sea-query-attr use an old version
|
# axum-macros, sqlx-macros and sea-query-attr use an old version
|
||||||
{ name = "heck", version = "0.4.1" },
|
{ name = "heck", version = "0.4.1" },
|
||||||
# opentelemetry-http needs this
|
|
||||||
{ name = "http", version = "0.2.12" },
|
|
||||||
# sea-query-attr uses an old version of darling
|
# sea-query-attr uses an old version of darling
|
||||||
{ name = "darling", version = "0.14.4" },
|
{ name = "darling", version = "0.14.4" },
|
||||||
{ name = "darling_core", version = "0.14.4" },
|
{ name = "darling_core", version = "0.14.4" },
|
||||||
{ name = "darling_macro", version = "0.14.4" },
|
{ name = "darling_macro", version = "0.14.4" },
|
||||||
# async-graphql -> toml_edit depends on this old version
|
# async-graphql -> toml_edit depends on this old version
|
||||||
{ name = "winnow", version = "0.5.40" },
|
{ name = "winnow", version = "0.5.40" },
|
||||||
# wasmtime, prost and sqlformat depend on this old version
|
# wasmtime -> cranelift is depending on this old version
|
||||||
{ name = "itertools", version = "0.12.1" },
|
{ name = "itertools", version = "0.12.1" },
|
||||||
# wasmtime -> cranelift is depending on this old version
|
# wasmtime -> cranelift is depending on this old version
|
||||||
{ name = "gimli", version = "0.28.1" },
|
{ name = "gimli", version = "0.28.1" },
|
||||||
# opentelemetry-otlp -> -proto -> tonic is depending on this old version
|
|
||||||
{ name = "http-body", version = "0.4.6" },
|
|
||||||
# apalis-core depends on this old version
|
# apalis-core depends on this old version
|
||||||
{ name = "strum", version = "0.25.0" },
|
{ name = "strum", version = "0.25.0" },
|
||||||
{ name = "strum_macros", version = "0.25.0" },
|
{ name = "strum_macros", version = "0.25.0" },
|
||||||
|
Reference in New Issue
Block a user