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
Upgrade OTEL and remove support for Jaeger and Zipkin exporters
This commit is contained in:
193
Cargo.lock
generated
193
Cargo.lock
generated
@@ -2282,18 +2282,6 @@ dependencies = [
|
|||||||
"tokio-rustls",
|
"tokio-rustls",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "hyper-timeout"
|
|
||||||
version = "0.4.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
|
|
||||||
dependencies = [
|
|
||||||
"hyper",
|
|
||||||
"pin-project-lite",
|
|
||||||
"tokio",
|
|
||||||
"tokio-io-timeout",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "iana-time-zone"
|
name = "iana-time-zone"
|
||||||
version = "0.1.60"
|
version = "0.1.60"
|
||||||
@@ -2666,12 +2654,6 @@ dependencies = [
|
|||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "integer-encoding"
|
|
||||||
version = "3.0.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "io-lifetimes"
|
name = "io-lifetimes"
|
||||||
version = "1.0.11"
|
version = "1.0.11"
|
||||||
@@ -3026,12 +3008,11 @@ dependencies = [
|
|||||||
"oauth2-types",
|
"oauth2-types",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
"opentelemetry-http",
|
||||||
"opentelemetry-jaeger",
|
"opentelemetry-jaeger-propagator",
|
||||||
"opentelemetry-otlp",
|
"opentelemetry-otlp",
|
||||||
"opentelemetry-prometheus",
|
"opentelemetry-prometheus",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"opentelemetry-stdout",
|
"opentelemetry-stdout",
|
||||||
"opentelemetry-zipkin",
|
|
||||||
"opentelemetry_sdk",
|
"opentelemetry_sdk",
|
||||||
"prometheus",
|
"prometheus",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
@@ -3933,13 +3914,12 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry"
|
name = "opentelemetry"
|
||||||
version = "0.21.0"
|
version = "0.22.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
|
checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-sink",
|
"futures-sink",
|
||||||
"indexmap 2.2.2",
|
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
@@ -3949,9 +3929,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-http"
|
name = "opentelemetry-http"
|
||||||
version = "0.10.0"
|
version = "0.11.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e"
|
checksum = "7cbfa5308166ca861434f0b0913569579b8e587430a3d6bcd7fd671921ec145a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
@@ -3962,47 +3942,37 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-jaeger"
|
name = "opentelemetry-jaeger-propagator"
|
||||||
version = "0.20.0"
|
version = "0.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e617c66fd588e40e0dbbd66932fdc87393095b125d4459b1a3a10feb1712f8a1"
|
checksum = "beb4ec62efc537b60aaa89b92624f986f2523d3a609079f3511cc8ee73490826"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
|
||||||
"futures-core",
|
|
||||||
"futures-util",
|
|
||||||
"http 0.2.11",
|
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
|
||||||
"opentelemetry-semantic-conventions",
|
|
||||||
"opentelemetry_sdk",
|
|
||||||
"thrift",
|
|
||||||
"tokio",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-otlp"
|
name = "opentelemetry-otlp"
|
||||||
version = "0.14.0"
|
version = "0.15.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930"
|
checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"http 0.2.11",
|
"http 0.2.11",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
|
"opentelemetry-http",
|
||||||
"opentelemetry-proto",
|
"opentelemetry-proto",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"opentelemetry_sdk",
|
"opentelemetry_sdk",
|
||||||
"prost",
|
"prost",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tokio",
|
|
||||||
"tonic",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-prometheus"
|
name = "opentelemetry-prometheus"
|
||||||
version = "0.14.1"
|
version = "0.15.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6f8f082da115b0dcb250829e3ed0b8792b8f963a1ad42466e48422fbe6a079bd"
|
checksum = "30bbcf6341cab7e2193e5843f0ac36c446a5b3fccb28747afaeda17996dcd02e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
@@ -4013,9 +3983,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-proto"
|
name = "opentelemetry-proto"
|
||||||
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 = "a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1"
|
checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry_sdk",
|
"opentelemetry_sdk",
|
||||||
@@ -4025,54 +3995,31 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-semantic-conventions"
|
name = "opentelemetry-semantic-conventions"
|
||||||
version = "0.13.0"
|
version = "0.14.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
|
checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910"
|
||||||
dependencies = [
|
|
||||||
"opentelemetry",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-stdout"
|
name = "opentelemetry-stdout"
|
||||||
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 = "c13b2df4cd59c176099ac82806725ba340c8fa7b1a7004c0912daad30470f63e"
|
checksum = "4bdf28b381f23afcd150afc0b38a4183dd321fc96320c1554752b6b761648f78"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"chrono",
|
"chrono",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry_sdk",
|
"opentelemetry_sdk",
|
||||||
"ordered-float 4.2.0",
|
"ordered-float",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "opentelemetry-zipkin"
|
|
||||||
version = "0.19.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9c2bee3ec1be4d0088378e0eb1dd54c113cbd7ec5622cc4f26181debf1d4d7b5"
|
|
||||||
dependencies = [
|
|
||||||
"async-trait",
|
|
||||||
"futures-core",
|
|
||||||
"http 0.2.11",
|
|
||||||
"once_cell",
|
|
||||||
"opentelemetry",
|
|
||||||
"opentelemetry-http",
|
|
||||||
"opentelemetry-semantic-conventions",
|
|
||||||
"opentelemetry_sdk",
|
|
||||||
"serde",
|
|
||||||
"serde_json",
|
|
||||||
"thiserror",
|
|
||||||
"typed-builder",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry_sdk"
|
name = "opentelemetry_sdk"
|
||||||
version = "0.21.2"
|
version = "0.22.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4"
|
checksum = "9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"crossbeam-channel",
|
"crossbeam-channel",
|
||||||
@@ -4082,7 +4029,7 @@ dependencies = [
|
|||||||
"glob",
|
"glob",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"ordered-float 4.2.0",
|
"ordered-float",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
@@ -4090,15 +4037,6 @@ dependencies = [
|
|||||||
"tokio-stream",
|
"tokio-stream",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ordered-float"
|
|
||||||
version = "2.10.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
|
|
||||||
dependencies = [
|
|
||||||
"num-traits",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ordered-float"
|
name = "ordered-float"
|
||||||
version = "4.2.0"
|
version = "4.2.0"
|
||||||
@@ -4589,9 +4527,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "prost"
|
name = "prost"
|
||||||
version = "0.11.9"
|
version = "0.12.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
|
checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"prost-derive",
|
"prost-derive",
|
||||||
@@ -4599,15 +4537,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "prost-derive"
|
name = "prost-derive"
|
||||||
version = "0.11.9"
|
version = "0.12.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
|
checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"itertools 0.10.5",
|
"itertools 0.10.5",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 1.0.109",
|
"syn 2.0.48",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -6026,28 +5964,6 @@ dependencies = [
|
|||||||
"once_cell",
|
"once_cell",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "threadpool"
|
|
||||||
version = "1.8.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
|
|
||||||
dependencies = [
|
|
||||||
"num_cpus",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "thrift"
|
|
||||||
version = "0.17.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7e54bc85fc7faa8bc175c4bab5b92ba8d9a3ce893d0e9f42cc455c8ab16a9e09"
|
|
||||||
dependencies = [
|
|
||||||
"byteorder",
|
|
||||||
"integer-encoding",
|
|
||||||
"log",
|
|
||||||
"ordered-float 2.10.1",
|
|
||||||
"threadpool",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time"
|
name = "time"
|
||||||
version = "0.3.34"
|
version = "0.3.34"
|
||||||
@@ -6123,16 +6039,6 @@ dependencies = [
|
|||||||
"windows-sys 0.48.0",
|
"windows-sys 0.48.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "tokio-io-timeout"
|
|
||||||
version = "1.2.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
|
|
||||||
dependencies = [
|
|
||||||
"pin-project-lite",
|
|
||||||
"tokio",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio-macros"
|
name = "tokio-macros"
|
||||||
version = "2.2.0"
|
version = "2.2.0"
|
||||||
@@ -6221,27 +6127,20 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tonic"
|
name = "tonic"
|
||||||
version = "0.9.2"
|
version = "0.11.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
|
checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"axum",
|
|
||||||
"base64 0.21.7",
|
"base64 0.21.7",
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures-core",
|
|
||||||
"futures-util",
|
|
||||||
"h2",
|
|
||||||
"http 0.2.11",
|
"http 0.2.11",
|
||||||
"http-body",
|
"http-body",
|
||||||
"hyper",
|
|
||||||
"hyper-timeout",
|
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"pin-project",
|
"pin-project",
|
||||||
"prost",
|
"prost",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-stream",
|
"tokio-stream",
|
||||||
"tower",
|
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
"tracing",
|
"tracing",
|
||||||
@@ -6255,11 +6154,8 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"indexmap 1.9.3",
|
|
||||||
"pin-project",
|
"pin-project",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"rand 0.8.5",
|
|
||||||
"slab",
|
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
@@ -6376,9 +6272,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-opentelemetry"
|
name = "tracing-opentelemetry"
|
||||||
version = "0.22.0"
|
version = "0.23.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596"
|
checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
@@ -6387,7 +6283,7 @@ dependencies = [
|
|||||||
"tracing",
|
"tracing",
|
||||||
"tracing-core",
|
"tracing-core",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
"web-time 0.2.4",
|
"web-time",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -6414,17 +6310,6 @@ version = "0.2.5"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "typed-builder"
|
|
||||||
version = "0.12.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6179333b981641242a768f30f371c9baccbfcc03749627000c500ab88bf4528b"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn 1.0.109",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typenum"
|
name = "typenum"
|
||||||
version = "1.17.0"
|
version = "1.17.0"
|
||||||
@@ -6447,7 +6332,7 @@ dependencies = [
|
|||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
"serde",
|
"serde",
|
||||||
"uuid",
|
"uuid",
|
||||||
"web-time 1.0.0",
|
"web-time",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -7006,16 +6891,6 @@ dependencies = [
|
|||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "web-time"
|
|
||||||
version = "0.2.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
|
|
||||||
dependencies = [
|
|
||||||
"js-sys",
|
|
||||||
"wasm-bindgen",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "web-time"
|
name = "web-time"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
|
17
Cargo.toml
17
Cargo.toml
@@ -55,6 +55,10 @@ mas-templates = { path = "./crates/templates/", version = "=0.8.0" }
|
|||||||
mas-tower = { path = "./crates/tower/", version = "=0.8.0" }
|
mas-tower = { path = "./crates/tower/", version = "=0.8.0" }
|
||||||
oauth2-types = { path = "./crates/oauth2-types/", version = "=0.8.0" }
|
oauth2-types = { path = "./crates/oauth2-types/", version = "=0.8.0" }
|
||||||
|
|
||||||
|
# Utility to write and implement async traits
|
||||||
|
[workspace.dependencies.async-trait]
|
||||||
|
version = "0.1.77"
|
||||||
|
|
||||||
# High-level error handling
|
# High-level error handling
|
||||||
[workspace.dependencies.anyhow]
|
[workspace.dependencies.anyhow]
|
||||||
version = "1.0.79"
|
version = "1.0.79"
|
||||||
@@ -132,12 +136,15 @@ version = "0.3.18"
|
|||||||
|
|
||||||
# OpenTelemetry
|
# OpenTelemetry
|
||||||
[workspace.dependencies.opentelemetry]
|
[workspace.dependencies.opentelemetry]
|
||||||
version = "0.21.0"
|
|
||||||
features = ["trace", "metrics"]
|
|
||||||
[workspace.dependencies.opentelemetry-semantic-conventions]
|
|
||||||
version = "0.13.0"
|
|
||||||
[workspace.dependencies.tracing-opentelemetry]
|
|
||||||
version = "0.22.0"
|
version = "0.22.0"
|
||||||
|
features = ["trace", "metrics"]
|
||||||
|
[workspace.dependencies.opentelemetry-http]
|
||||||
|
version = "0.11.0"
|
||||||
|
features = ["hyper", "tokio"]
|
||||||
|
[workspace.dependencies.opentelemetry-semantic-conventions]
|
||||||
|
version = "0.14.0"
|
||||||
|
[workspace.dependencies.tracing-opentelemetry]
|
||||||
|
version = "0.23.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
|
|
||||||
# URL manipulation
|
# URL manipulation
|
||||||
|
@@ -12,7 +12,7 @@ publish = false
|
|||||||
workspace = true
|
workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
axum = { version = "0.6.20", features = ["headers"] }
|
axum = { version = "0.6.20", features = ["headers"] }
|
||||||
axum-extra = { version = "0.8.0", features = ["cookie-private", "cookie-key-expansion"] }
|
axum-extra = { version = "0.8.0", features = ["cookie-private", "cookie-key-expansion"] }
|
||||||
chrono.workspace = true
|
chrono.workspace = true
|
||||||
|
@@ -39,14 +39,13 @@ tracing-appender = "0.2.3"
|
|||||||
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
||||||
tracing-opentelemetry.workspace = true
|
tracing-opentelemetry.workspace = true
|
||||||
opentelemetry.workspace = true
|
opentelemetry.workspace = true
|
||||||
opentelemetry-http = { version = "0.10.0", features = ["tokio", "hyper"] }
|
opentelemetry-http.workspace = true
|
||||||
opentelemetry-jaeger = { version = "0.20.0", features = ["rt-tokio", "collector_client"] }
|
opentelemetry-jaeger-propagator = "0.1.0"
|
||||||
opentelemetry-otlp = { version = "0.14.0", features = ["trace", "metrics"] }
|
opentelemetry-otlp = { version = "0.15.0", default-features = false, features = ["trace", "metrics", "http-proto"] }
|
||||||
opentelemetry-prometheus = "0.14.1"
|
opentelemetry-prometheus = "0.15.0"
|
||||||
opentelemetry-semantic-conventions.workspace = true
|
opentelemetry-semantic-conventions.workspace = true
|
||||||
opentelemetry-stdout = { version = "0.2.0", features = ["trace", "metrics"] }
|
opentelemetry-stdout = { version = "0.3.0", features = ["trace", "metrics"] }
|
||||||
opentelemetry_sdk = { version = "0.21.2", features = ["trace", "metrics", "rt-tokio"] }
|
opentelemetry_sdk = { version = "0.22.1", features = ["trace", "metrics", "rt-tokio"] }
|
||||||
opentelemetry-zipkin = { version = "0.19.0", default-features = false }
|
|
||||||
prometheus = "0.13.3"
|
prometheus = "0.13.3"
|
||||||
sentry = { version = "0.31.8", default-features = false, features = ["backtrace", "contexts", "panic", "tower"] }
|
sentry = { version = "0.31.8", default-features = false, features = ["backtrace", "contexts", "panic", "tower"] }
|
||||||
sentry-tracing = "0.31.8"
|
sentry-tracing = "0.31.8"
|
||||||
|
@@ -160,16 +160,22 @@ fn make_http_span<B>(req: &Request<B>) -> Span {
|
|||||||
|
|
||||||
fn on_http_request_labels<B>(request: &Request<B>) -> Vec<KeyValue> {
|
fn on_http_request_labels<B>(request: &Request<B>) -> Vec<KeyValue> {
|
||||||
vec![
|
vec![
|
||||||
NETWORK_PROTOCOL_NAME.string("http"),
|
KeyValue::new(NETWORK_PROTOCOL_NAME, "http"),
|
||||||
NETWORK_PROTOCOL_VERSION.string(otel_net_protocol_version(request)),
|
KeyValue::new(NETWORK_PROTOCOL_VERSION, otel_net_protocol_version(request)),
|
||||||
HTTP_REQUEST_METHOD.string(otel_http_method(request)),
|
KeyValue::new(HTTP_REQUEST_METHOD, otel_http_method(request)),
|
||||||
HTTP_ROUTE.string(otel_http_route(request).unwrap_or("FALLBACK").to_owned()),
|
KeyValue::new(
|
||||||
URL_SCHEME.string(otel_url_scheme(request).as_ref()),
|
HTTP_ROUTE,
|
||||||
|
otel_http_route(request).unwrap_or("FALLBACK").to_owned(),
|
||||||
|
),
|
||||||
|
KeyValue::new(URL_SCHEME, otel_url_scheme(request)),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_http_response_labels<B>(res: &Response<B>) -> Vec<KeyValue> {
|
fn on_http_response_labels<B>(res: &Response<B>) -> Vec<KeyValue> {
|
||||||
vec![HTTP_RESPONSE_STATUS_CODE.i64(res.status().as_u16().into())]
|
vec![KeyValue::new(
|
||||||
|
HTTP_RESPONSE_STATUS_CODE,
|
||||||
|
i64::from(res.status().as_u16()),
|
||||||
|
)]
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn build_router<B>(
|
pub fn build_router<B>(
|
||||||
|
@@ -16,31 +16,31 @@ use std::time::Duration;
|
|||||||
|
|
||||||
use anyhow::Context as _;
|
use anyhow::Context as _;
|
||||||
use hyper::{header::CONTENT_TYPE, Body, Response};
|
use hyper::{header::CONTENT_TYPE, Body, Response};
|
||||||
use mas_config::{
|
use mas_config::{MetricsExporterConfig, Propagator, TelemetryConfig, TracingExporterConfig};
|
||||||
JaegerExporterProtocolConfig, MetricsExporterConfig, Propagator, TelemetryConfig,
|
use opentelemetry::{
|
||||||
TracingExporterConfig,
|
global,
|
||||||
|
propagation::{TextMapCompositePropagator, TextMapPropagator},
|
||||||
|
trace::TracerProvider as _,
|
||||||
|
KeyValue,
|
||||||
};
|
};
|
||||||
use opentelemetry::{global, propagation::TextMapPropagator, trace::TracerProvider as _};
|
|
||||||
use opentelemetry_jaeger::Propagator as JaegerPropagator;
|
|
||||||
use opentelemetry_otlp::MetricsExporterBuilder;
|
use opentelemetry_otlp::MetricsExporterBuilder;
|
||||||
use opentelemetry_prometheus::PrometheusExporter;
|
use opentelemetry_prometheus::PrometheusExporter;
|
||||||
use opentelemetry_sdk::{
|
use opentelemetry_sdk::{
|
||||||
self,
|
self,
|
||||||
metrics::{
|
metrics::{
|
||||||
reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
|
reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
|
||||||
ManualReader, MeterProvider, PeriodicReader,
|
ManualReader, PeriodicReader, SdkMeterProvider,
|
||||||
},
|
},
|
||||||
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
|
propagation::{BaggagePropagator, TraceContextPropagator},
|
||||||
trace::{Sampler, Tracer, TracerProvider},
|
trace::{Sampler, Tracer, TracerProvider},
|
||||||
Resource,
|
Resource,
|
||||||
};
|
};
|
||||||
use opentelemetry_semantic_conventions as semcov;
|
use opentelemetry_semantic_conventions as semcov;
|
||||||
use opentelemetry_zipkin::{B3Encoding, Propagator as ZipkinPropagator};
|
|
||||||
use prometheus::Registry;
|
use prometheus::Registry;
|
||||||
use tokio::sync::OnceCell;
|
use tokio::sync::OnceCell;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
static METER_PROVIDER: OnceCell<MeterProvider> = OnceCell::const_new();
|
static METER_PROVIDER: OnceCell<SdkMeterProvider> = OnceCell::const_new();
|
||||||
static PROMETHEUS_REGISTRY: OnceCell<Registry> = OnceCell::const_new();
|
static PROMETHEUS_REGISTRY: OnceCell<Registry> = OnceCell::const_new();
|
||||||
|
|
||||||
pub fn setup(config: &TelemetryConfig) -> anyhow::Result<Option<Tracer>> {
|
pub fn setup(config: &TelemetryConfig) -> anyhow::Result<Option<Tracer>> {
|
||||||
@@ -72,9 +72,7 @@ fn match_propagator(propagator: Propagator) -> Box<dyn TextMapPropagator + Send
|
|||||||
match propagator {
|
match propagator {
|
||||||
P::TraceContext => Box::new(TraceContextPropagator::new()),
|
P::TraceContext => Box::new(TraceContextPropagator::new()),
|
||||||
P::Baggage => Box::new(BaggagePropagator::new()),
|
P::Baggage => Box::new(BaggagePropagator::new()),
|
||||||
P::Jaeger => Box::new(JaegerPropagator::new()),
|
P::Jaeger => Box::new(opentelemetry_jaeger_propagator::Propagator::new()),
|
||||||
P::B3 => Box::new(ZipkinPropagator::with_encoding(B3Encoding::SingleHeader)),
|
|
||||||
P::B3Multi => Box::new(ZipkinPropagator::with_encoding(B3Encoding::MultipleHeader)),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,7 +97,9 @@ fn stdout_tracer_provider() -> TracerProvider {
|
|||||||
fn otlp_tracer(endpoint: Option<&Url>) -> anyhow::Result<Tracer> {
|
fn otlp_tracer(endpoint: Option<&Url>) -> anyhow::Result<Tracer> {
|
||||||
use opentelemetry_otlp::WithExportConfig;
|
use opentelemetry_otlp::WithExportConfig;
|
||||||
|
|
||||||
let mut exporter = opentelemetry_otlp::new_exporter().tonic();
|
let mut exporter = opentelemetry_otlp::new_exporter()
|
||||||
|
.http()
|
||||||
|
.with_http_client(http_client());
|
||||||
if let Some(endpoint) = endpoint {
|
if let Some(endpoint) = endpoint {
|
||||||
exporter = exporter.with_endpoint(endpoint.to_string());
|
exporter = exporter.with_endpoint(endpoint.to_string());
|
||||||
}
|
}
|
||||||
@@ -114,65 +114,6 @@ fn otlp_tracer(endpoint: Option<&Url>) -> anyhow::Result<Tracer> {
|
|||||||
Ok(tracer)
|
Ok(tracer)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn jaeger_agent_tracer_provider(host: &str, port: u16) -> anyhow::Result<TracerProvider> {
|
|
||||||
let pipeline = opentelemetry_jaeger::new_agent_pipeline()
|
|
||||||
.with_service_name(env!("CARGO_PKG_NAME"))
|
|
||||||
.with_trace_config(trace_config())
|
|
||||||
.with_endpoint(format!("{host}:{port}"));
|
|
||||||
|
|
||||||
let tracer_provider = pipeline
|
|
||||||
.build_batch(opentelemetry_sdk::runtime::Tokio)
|
|
||||||
.context("Failed to configure Jaeger agent exporter")?;
|
|
||||||
|
|
||||||
Ok(tracer_provider)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn jaeger_collector_tracer_provider(
|
|
||||||
endpoint: &str,
|
|
||||||
username: Option<&str>,
|
|
||||||
password: Option<&str>,
|
|
||||||
) -> anyhow::Result<TracerProvider> {
|
|
||||||
let http_client = http_client();
|
|
||||||
let mut pipeline = opentelemetry_jaeger::new_collector_pipeline()
|
|
||||||
.with_service_name(env!("CARGO_PKG_NAME"))
|
|
||||||
.with_trace_config(trace_config())
|
|
||||||
.with_http_client(http_client)
|
|
||||||
.with_endpoint(endpoint);
|
|
||||||
|
|
||||||
if let Some(username) = username {
|
|
||||||
pipeline = pipeline.with_username(username);
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(password) = password {
|
|
||||||
pipeline = pipeline.with_password(password);
|
|
||||||
}
|
|
||||||
|
|
||||||
let tracer_provider = pipeline
|
|
||||||
.build_batch(opentelemetry_sdk::runtime::Tokio)
|
|
||||||
.context("Failed to configure Jaeger collector exporter")?;
|
|
||||||
|
|
||||||
Ok(tracer_provider)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn zipkin_tracer(collector_endpoint: &Option<Url>) -> anyhow::Result<Tracer> {
|
|
||||||
let http_client = http_client();
|
|
||||||
|
|
||||||
let mut pipeline = opentelemetry_zipkin::new_pipeline()
|
|
||||||
.with_http_client(http_client)
|
|
||||||
.with_service_name(env!("CARGO_PKG_NAME"))
|
|
||||||
.with_trace_config(trace_config());
|
|
||||||
|
|
||||||
if let Some(collector_endpoint) = collector_endpoint {
|
|
||||||
pipeline = pipeline.with_collector_endpoint(collector_endpoint.as_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
let tracer = pipeline
|
|
||||||
.install_batch(opentelemetry_sdk::runtime::Tokio)
|
|
||||||
.context("Failed to configure Zipkin exporter")?;
|
|
||||||
|
|
||||||
Ok(tracer)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn tracer(config: &TracingExporterConfig) -> anyhow::Result<Option<Tracer>> {
|
fn tracer(config: &TracingExporterConfig) -> anyhow::Result<Option<Tracer>> {
|
||||||
let tracer_provider = match config {
|
let tracer_provider = match config {
|
||||||
TracingExporterConfig::None => return Ok(None),
|
TracingExporterConfig::None => return Ok(None),
|
||||||
@@ -181,19 +122,6 @@ fn tracer(config: &TracingExporterConfig) -> anyhow::Result<Option<Tracer>> {
|
|||||||
// The OTLP exporter already creates a tracer and installs it
|
// The OTLP exporter already creates a tracer and installs it
|
||||||
return Ok(Some(otlp_tracer(endpoint.as_ref())?));
|
return Ok(Some(otlp_tracer(endpoint.as_ref())?));
|
||||||
}
|
}
|
||||||
TracingExporterConfig::Jaeger(JaegerExporterProtocolConfig::UdpThriftCompact {
|
|
||||||
agent_host,
|
|
||||||
agent_port,
|
|
||||||
}) => jaeger_agent_tracer_provider(agent_host, *agent_port)?,
|
|
||||||
TracingExporterConfig::Jaeger(JaegerExporterProtocolConfig::HttpThriftBinary {
|
|
||||||
endpoint,
|
|
||||||
username,
|
|
||||||
password,
|
|
||||||
}) => jaeger_collector_tracer_provider(endpoint, username.as_deref(), password.as_deref())?,
|
|
||||||
TracingExporterConfig::Zipkin { collector_endpoint } => {
|
|
||||||
// The Zipkin exporter already creates a tracer and installs it
|
|
||||||
return Ok(Some(zipkin_tracer(collector_endpoint)?));
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let tracer = tracer_provider.versioned_tracer(
|
let tracer = tracer_provider.versioned_tracer(
|
||||||
@@ -210,7 +138,9 @@ fn tracer(config: &TracingExporterConfig) -> anyhow::Result<Option<Tracer>> {
|
|||||||
fn otlp_metric_reader(endpoint: Option<&url::Url>) -> anyhow::Result<PeriodicReader> {
|
fn otlp_metric_reader(endpoint: Option<&url::Url>) -> anyhow::Result<PeriodicReader> {
|
||||||
use opentelemetry_otlp::WithExportConfig;
|
use opentelemetry_otlp::WithExportConfig;
|
||||||
|
|
||||||
let mut exporter = opentelemetry_otlp::new_exporter().tonic();
|
let mut exporter = opentelemetry_otlp::new_exporter()
|
||||||
|
.http()
|
||||||
|
.with_http_client(http_client());
|
||||||
if let Some(endpoint) = endpoint {
|
if let Some(endpoint) = endpoint {
|
||||||
exporter = exporter.with_endpoint(endpoint.to_string());
|
exporter = exporter.with_endpoint(endpoint.to_string());
|
||||||
}
|
}
|
||||||
@@ -279,7 +209,7 @@ fn prometheus_metric_reader() -> anyhow::Result<PrometheusExporter> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn init_meter(config: &MetricsExporterConfig) -> anyhow::Result<()> {
|
fn init_meter(config: &MetricsExporterConfig) -> anyhow::Result<()> {
|
||||||
let meter_provider_builder = MeterProvider::builder();
|
let meter_provider_builder = SdkMeterProvider::builder();
|
||||||
let meter_provider_builder = match config {
|
let meter_provider_builder = match config {
|
||||||
MetricsExporterConfig::None => meter_provider_builder.with_reader(ManualReader::default()),
|
MetricsExporterConfig::None => meter_provider_builder.with_reader(ManualReader::default()),
|
||||||
MetricsExporterConfig::Stdout => meter_provider_builder.with_reader(stdout_metric_reader()),
|
MetricsExporterConfig::Stdout => meter_provider_builder.with_reader(stdout_metric_reader()),
|
||||||
@@ -306,9 +236,9 @@ fn trace_config() -> opentelemetry_sdk::trace::Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn resource() -> Resource {
|
fn resource() -> Resource {
|
||||||
let resource = Resource::new(vec![
|
let resource = Resource::new([
|
||||||
semcov::resource::SERVICE_NAME.string(env!("CARGO_PKG_NAME")),
|
KeyValue::new(semcov::resource::SERVICE_NAME, env!("CARGO_PKG_NAME")),
|
||||||
semcov::resource::SERVICE_VERSION.string(env!("CARGO_PKG_VERSION")),
|
KeyValue::new(semcov::resource::SERVICE_VERSION, env!("CARGO_PKG_VERSION")),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let detected = Resource::from_detectors(
|
let detected = Resource::from_detectors(
|
||||||
|
@@ -14,7 +14,7 @@ workspace = true
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
tokio = { version = "1.35.1", features = ["fs", "rt"] }
|
tokio = { version = "1.35.1", features = ["fs", "rt"] }
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
|
|
||||||
thiserror.workspace = true
|
thiserror.workspace = true
|
||||||
anyhow.workspace = true
|
anyhow.workspace = true
|
||||||
|
@@ -46,8 +46,8 @@ pub use self::{
|
|||||||
policy::PolicyConfig,
|
policy::PolicyConfig,
|
||||||
secrets::SecretsConfig,
|
secrets::SecretsConfig,
|
||||||
telemetry::{
|
telemetry::{
|
||||||
JaegerExporterProtocolConfig, MetricsConfig, MetricsExporterConfig, Propagator,
|
MetricsConfig, MetricsExporterConfig, Propagator, TelemetryConfig, TracingConfig,
|
||||||
TelemetryConfig, TracingConfig, TracingExporterConfig,
|
TracingExporterConfig,
|
||||||
},
|
},
|
||||||
templates::TemplatesConfig,
|
templates::TemplatesConfig,
|
||||||
upstream_oauth2::{
|
upstream_oauth2::{
|
||||||
|
@@ -12,14 +12,11 @@
|
|||||||
// 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 std::num::NonZeroU16;
|
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
use schemars::JsonSchema;
|
use schemars::JsonSchema;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_with::skip_serializing_none;
|
use serde_with::skip_serializing_none;
|
||||||
use thiserror::Error;
|
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use super::ConfigurationSection;
|
use super::ConfigurationSection;
|
||||||
@@ -36,138 +33,10 @@ pub enum Propagator {
|
|||||||
|
|
||||||
/// Propagate trace context with Jaeger compatible headers
|
/// Propagate trace context with Jaeger compatible headers
|
||||||
Jaeger,
|
Jaeger,
|
||||||
|
|
||||||
/// Propagate trace context with Zipkin compatible headers (single `b3`
|
|
||||||
/// header variant)
|
|
||||||
B3,
|
|
||||||
|
|
||||||
/// Propagate trace context with Zipkin compatible headers (multiple
|
|
||||||
/// `x-b3-*` headers variant)
|
|
||||||
B3Multi,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn otlp_endpoint_example() -> &'static str {
|
fn otlp_endpoint_example() -> &'static str {
|
||||||
"https://localhost:4317"
|
"https://localhost:4318"
|
||||||
}
|
|
||||||
|
|
||||||
fn zipkin_collector_endpoint_example() -> &'static str {
|
|
||||||
"http://127.0.0.1:9411/api/v2/spans"
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The protocol to use by the Jaeger exporter
|
|
||||||
///
|
|
||||||
/// Defaults to `udp/thrift.compact`
|
|
||||||
#[derive(Clone, Debug, Serialize, Deserialize, JsonSchema)]
|
|
||||||
#[serde(tag = "protocol", try_from = "JaegerExporterKitchenSink")]
|
|
||||||
pub enum JaegerExporterProtocolConfig {
|
|
||||||
/// Thrift over HTTP
|
|
||||||
#[serde(rename = "http/thrift.binary")]
|
|
||||||
HttpThriftBinary {
|
|
||||||
/// Full URL of the Jaeger HTTP endpoint
|
|
||||||
///
|
|
||||||
/// Defaults to `http://localhost:14268/api/traces`
|
|
||||||
endpoint: String,
|
|
||||||
|
|
||||||
/// Username to be used for HTTP basic authentication
|
|
||||||
username: Option<String>,
|
|
||||||
|
|
||||||
/// Password to be used for HTTP basic authentication
|
|
||||||
password: Option<String>,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// Thrift with compact encoding over UDP
|
|
||||||
#[serde(rename = "udp/thrift.compact")]
|
|
||||||
UdpThriftCompact {
|
|
||||||
/// Hostname of the Jaeger agent
|
|
||||||
///
|
|
||||||
/// Defaults to `localhost`
|
|
||||||
agent_host: String,
|
|
||||||
|
|
||||||
/// `udp/thrift.compact` port of the Jaeger agent
|
|
||||||
///
|
|
||||||
/// Defaults to `6831`
|
|
||||||
agent_port: u16,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize)]
|
|
||||||
enum JaegerProtocol {
|
|
||||||
#[serde(rename = "http/thrift.binary")]
|
|
||||||
HttpThriftBinary,
|
|
||||||
|
|
||||||
#[serde(rename = "grpc")]
|
|
||||||
Grpc,
|
|
||||||
|
|
||||||
#[serde(rename = "udp/thrift.compact")]
|
|
||||||
UdpThriftCompact,
|
|
||||||
|
|
||||||
#[serde(rename = "udp/thrift.binary")]
|
|
||||||
UdpThriftBinary,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize)]
|
|
||||||
#[serde(deny_unknown_fields)]
|
|
||||||
struct JaegerExporterKitchenSink {
|
|
||||||
protocol: Option<JaegerProtocol>,
|
|
||||||
endpoint: Option<Url>,
|
|
||||||
username: Option<String>,
|
|
||||||
password: Option<String>,
|
|
||||||
agent_host: Option<String>,
|
|
||||||
agent_port: Option<NonZeroU16>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Error, Debug)]
|
|
||||||
#[error("Invalid Jaeger exporter config")]
|
|
||||||
enum InvalidJaegerConfig {
|
|
||||||
UnsupportedProtocol,
|
|
||||||
UnsupportedField,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TryFrom<JaegerExporterKitchenSink> for JaegerExporterProtocolConfig {
|
|
||||||
type Error = InvalidJaegerConfig;
|
|
||||||
|
|
||||||
fn try_from(value: JaegerExporterKitchenSink) -> Result<Self, Self::Error> {
|
|
||||||
match value {
|
|
||||||
JaegerExporterKitchenSink {
|
|
||||||
protocol: Some(JaegerProtocol::UdpThriftCompact) | None,
|
|
||||||
endpoint: None,
|
|
||||||
username: None,
|
|
||||||
password: None,
|
|
||||||
agent_host: host,
|
|
||||||
agent_port: port,
|
|
||||||
} => Ok(Self::UdpThriftCompact {
|
|
||||||
agent_host: host.unwrap_or_else(|| "localhost".into()),
|
|
||||||
agent_port: port.map_or(6831, u16::from),
|
|
||||||
}),
|
|
||||||
|
|
||||||
JaegerExporterKitchenSink {
|
|
||||||
protocol: Some(JaegerProtocol::HttpThriftBinary),
|
|
||||||
endpoint,
|
|
||||||
username,
|
|
||||||
password,
|
|
||||||
agent_host: None,
|
|
||||||
agent_port: None,
|
|
||||||
} => Ok(Self::HttpThriftBinary {
|
|
||||||
endpoint: endpoint.map_or_else(
|
|
||||||
|| "http://localhost:14268/api/traces".into(),
|
|
||||||
|u| u.to_string(),
|
|
||||||
),
|
|
||||||
username,
|
|
||||||
password,
|
|
||||||
}),
|
|
||||||
|
|
||||||
JaegerExporterKitchenSink {
|
|
||||||
protocol:
|
|
||||||
Some(JaegerProtocol::HttpThriftBinary | JaegerProtocol::UdpThriftCompact) | None,
|
|
||||||
..
|
|
||||||
} => Err(InvalidJaegerConfig::UnsupportedField),
|
|
||||||
|
|
||||||
JaegerExporterKitchenSink {
|
|
||||||
protocol: Some(JaegerProtocol::Grpc | JaegerProtocol::UdpThriftBinary),
|
|
||||||
..
|
|
||||||
} => Err(InvalidJaegerConfig::UnsupportedProtocol),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Exporter to use when exporting traces
|
/// Exporter to use when exporting traces
|
||||||
@@ -188,17 +57,6 @@ pub enum TracingExporterConfig {
|
|||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
endpoint: Option<Url>,
|
endpoint: Option<Url>,
|
||||||
},
|
},
|
||||||
|
|
||||||
/// Export traces to a Jaeger agent
|
|
||||||
Jaeger(JaegerExporterProtocolConfig),
|
|
||||||
|
|
||||||
/// Export traces to a Zipkin collector
|
|
||||||
Zipkin {
|
|
||||||
/// Zipkin collector endpoint
|
|
||||||
#[schemars(url, example = "zipkin_collector_endpoint_example")]
|
|
||||||
#[serde(default)]
|
|
||||||
collector_endpoint: Option<Url>,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for TracingExporterConfig {
|
impl Default for TracingExporterConfig {
|
||||||
|
@@ -12,7 +12,7 @@ publish = false
|
|||||||
workspace = true
|
workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
thiserror.workspace = true
|
thiserror.workspace = true
|
||||||
headers = "0.3.9"
|
headers = "0.3.9"
|
||||||
|
@@ -14,7 +14,7 @@ workspace = true
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow.workspace = true
|
anyhow.workspace = true
|
||||||
async-graphql = { version = "6.0.11", features = ["chrono", "url"] }
|
async-graphql = { version = "6.0.11", features = ["chrono", "url"] }
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
chrono.workspace = true
|
chrono.workspace = true
|
||||||
lettre = { version = "0.11.4", default-features = false }
|
lettre = { version = "0.11.4", default-features = false }
|
||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
|
@@ -13,7 +13,7 @@ workspace = true
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow.workspace = true
|
anyhow.workspace = true
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
camino.workspace = true
|
camino.workspace = true
|
||||||
convert_case = "0.6.0"
|
convert_case = "0.6.0"
|
||||||
csv = "1.3.0"
|
csv = "1.3.0"
|
||||||
|
@@ -13,7 +13,7 @@ workspace = true
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow.workspace = true
|
anyhow.workspace = true
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
http.workspace = true
|
http.workspace = true
|
||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
tower.workspace = true
|
tower.workspace = true
|
||||||
|
@@ -14,7 +14,7 @@ workspace = true
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow.workspace = true
|
anyhow.workspace = true
|
||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
http.workspace = true
|
http.workspace = true
|
||||||
tokio = { version = "1.35.1", features = ["sync", "macros", "rt"] }
|
tokio = { version = "1.35.1", features = ["sync", "macros", "rt"] }
|
||||||
url.workspace = true
|
url.workspace = true
|
||||||
|
@@ -12,7 +12,7 @@ publish = false
|
|||||||
workspace = true
|
workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
sqlx = { version = "0.7.3", features = ["runtime-tokio-rustls", "postgres", "migrate", "chrono", "json", "uuid", "ipnetwork"] }
|
sqlx = { version = "0.7.3", features = ["runtime-tokio-rustls", "postgres", "migrate", "chrono", "json", "uuid", "ipnetwork"] }
|
||||||
sea-query = { version = "0.30.7", features = ["derive", "attr", "with-uuid", "with-chrono", "postgres-array"] }
|
sea-query = { version = "0.30.7", features = ["derive", "attr", "with-uuid", "with-chrono", "postgres-array"] }
|
||||||
sea-query-binder = { version = "0.5.0", features = ["sqlx-postgres", "with-uuid", "with-chrono", "postgres-array"] }
|
sea-query-binder = { version = "0.5.0", features = ["sqlx-postgres", "with-uuid", "with-chrono", "postgres-array"] }
|
||||||
|
@@ -12,7 +12,7 @@ publish = false
|
|||||||
workspace = true
|
workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
chrono.workspace = true
|
chrono.workspace = true
|
||||||
thiserror.workspace = true
|
thiserror.workspace = true
|
||||||
futures-util = "0.3.30"
|
futures-util = "0.3.30"
|
||||||
|
@@ -16,7 +16,7 @@ anyhow.workspace = true
|
|||||||
apalis-core = { version = "0.4.9", features = ["extensions", "tokio-comp", "storage"] }
|
apalis-core = { version = "0.4.9", features = ["extensions", "tokio-comp", "storage"] }
|
||||||
apalis-cron = "0.4.9"
|
apalis-cron = "0.4.9"
|
||||||
async-stream = "0.3.5"
|
async-stream = "0.3.5"
|
||||||
async-trait = "0.1.77"
|
async-trait.workspace = true
|
||||||
chrono.workspace = true
|
chrono.workspace = true
|
||||||
event-listener = "4.0.3"
|
event-listener = "4.0.3"
|
||||||
futures-lite = "2.2.0"
|
futures-lite = "2.2.0"
|
||||||
|
@@ -18,6 +18,6 @@ tracing-opentelemetry.workspace = true
|
|||||||
tower.workspace = true
|
tower.workspace = true
|
||||||
tokio = { version = "1.35.1", features = ["time"] }
|
tokio = { version = "1.35.1", features = ["time"] }
|
||||||
opentelemetry.workspace = true
|
opentelemetry.workspace = true
|
||||||
opentelemetry-http = "0.10.0"
|
opentelemetry-http.workspace = true
|
||||||
opentelemetry-semantic-conventions.workspace = true
|
opentelemetry-semantic-conventions.workspace = true
|
||||||
pin-project-lite = "0.2.13"
|
pin-project-lite = "0.2.13"
|
||||||
|
@@ -64,7 +64,6 @@ skip = [
|
|||||||
{ 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" }, # async-channel (wiremock) and 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 = "ordered-float", version = "2.10.0" }, # opentelemetry-jaeger -> thrift depends on the old version
|
|
||||||
{ name = "itertools", version = "0.10.5" }, # wasmtime & others depends on the old version
|
{ name = "itertools", version = "0.10.5" }, # wasmtime & others depends on the old version
|
||||||
{ name = "bitflags", version = "1.3.2" }, # axum depends on an old version
|
{ name = "bitflags", version = "1.3.2" }, # axum depends on an old version
|
||||||
{ name = "hashbrown" }, # Too many versions :(
|
{ name = "hashbrown" }, # Too many versions :(
|
||||||
|
@@ -1253,104 +1253,7 @@
|
|||||||
"endpoint": {
|
"endpoint": {
|
||||||
"description": "OTLP compatible endpoint",
|
"description": "OTLP compatible endpoint",
|
||||||
"examples": [
|
"examples": [
|
||||||
"https://localhost:4317"
|
"https://localhost:4318"
|
||||||
],
|
|
||||||
"type": "string",
|
|
||||||
"format": "uri"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"additionalProperties": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Export traces to a Jaeger agent",
|
|
||||||
"type": "object",
|
|
||||||
"oneOf": [
|
|
||||||
{
|
|
||||||
"description": "Thrift over HTTP",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"endpoint",
|
|
||||||
"protocol"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"protocol": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"http/thrift.binary"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"endpoint": {
|
|
||||||
"description": "Full URL of the Jaeger HTTP endpoint\n\nDefaults to `http://localhost:14268/api/traces`",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"username": {
|
|
||||||
"description": "Username to be used for HTTP basic authentication",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"password": {
|
|
||||||
"description": "Password to be used for HTTP basic authentication",
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Thrift with compact encoding over UDP",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"agent_host",
|
|
||||||
"agent_port",
|
|
||||||
"protocol"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"protocol": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"udp/thrift.compact"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"agent_host": {
|
|
||||||
"description": "Hostname of the Jaeger agent\n\nDefaults to `localhost`",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"agent_port": {
|
|
||||||
"description": "`udp/thrift.compact` port of the Jaeger agent\n\nDefaults to `6831`",
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint16",
|
|
||||||
"minimum": 0.0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"required": [
|
|
||||||
"exporter"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"exporter": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"jaeger"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"additionalProperties": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Export traces to a Zipkin collector",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"exporter"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"exporter": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"zipkin"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"collector_endpoint": {
|
|
||||||
"description": "Zipkin collector endpoint",
|
|
||||||
"examples": [
|
|
||||||
"http://127.0.0.1:9411/api/v2/spans"
|
|
||||||
],
|
],
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "uri"
|
"format": "uri"
|
||||||
@@ -1395,20 +1298,6 @@
|
|||||||
"enum": [
|
"enum": [
|
||||||
"jaeger"
|
"jaeger"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Propagate trace context with Zipkin compatible headers (single `b3` header variant)",
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"b3"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "Propagate trace context with Zipkin compatible headers (multiple `x-b3-*` headers variant)",
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"b3multi"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1462,7 +1351,7 @@
|
|||||||
"endpoint": {
|
"endpoint": {
|
||||||
"description": "OTLP compatible endpoint",
|
"description": "OTLP compatible endpoint",
|
||||||
"examples": [
|
"examples": [
|
||||||
"https://localhost:4317"
|
"https://localhost:4318"
|
||||||
],
|
],
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "uri"
|
"format": "uri"
|
||||||
|
@@ -293,30 +293,13 @@ telemetry:
|
|||||||
- baggage
|
- baggage
|
||||||
# Propagate trace context with Jaeger compatible headers
|
# Propagate trace context with Jaeger compatible headers
|
||||||
- jaeger
|
- jaeger
|
||||||
# Propagate trace context with Zipkin compatible headers (single `b3` header variant)
|
|
||||||
- b3
|
|
||||||
# Propagate trace context with Zipkin compatible headers (multiple `x-b3-*` headers variant)
|
|
||||||
- b3multi
|
|
||||||
|
|
||||||
# The default: don't export traces
|
# The default: don't export traces
|
||||||
exporter: none
|
exporter: none
|
||||||
|
|
||||||
# Export traces to an OTLP-compatible endpoint
|
# Export traces to an OTLP-compatible endpoint
|
||||||
#exporter: otlp
|
#exporter: otlp
|
||||||
#endpoint: https://localhost:4317
|
#endpoint: https://localhost:4318
|
||||||
|
|
||||||
# Export traces to a Jaeger endpoint
|
|
||||||
#exporter: jaeger
|
|
||||||
#protocol: http/thrift.binary | udp/thrift.compact
|
|
||||||
#endpoint: http://localhost:14268/api/traces # for http/thrift.binary
|
|
||||||
#username: username # for http/thrift.binary
|
|
||||||
#password: password # for http/thrift.binary
|
|
||||||
#agent_host: localhost # for udp/thrift.compact
|
|
||||||
#agent_port: 6831 # for udp/thrift.compact
|
|
||||||
|
|
||||||
# Export traces to a Zipkin endpoint
|
|
||||||
#exporter: zipkin
|
|
||||||
#collector_endpoint: http://localhost:9411/api/v2/spans
|
|
||||||
|
|
||||||
metrics:
|
metrics:
|
||||||
# The default: don't export metrics
|
# The default: don't export metrics
|
||||||
|
Reference in New Issue
Block a user