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",
|
||||
]
|
||||
|
||||
[[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]]
|
||||
name = "iana-time-zone"
|
||||
version = "0.1.60"
|
||||
@@ -2666,12 +2654,6 @@ dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "integer-encoding"
|
||||
version = "3.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02"
|
||||
|
||||
[[package]]
|
||||
name = "io-lifetimes"
|
||||
version = "1.0.11"
|
||||
@@ -3026,12 +3008,11 @@ dependencies = [
|
||||
"oauth2-types",
|
||||
"opentelemetry",
|
||||
"opentelemetry-http",
|
||||
"opentelemetry-jaeger",
|
||||
"opentelemetry-jaeger-propagator",
|
||||
"opentelemetry-otlp",
|
||||
"opentelemetry-prometheus",
|
||||
"opentelemetry-semantic-conventions",
|
||||
"opentelemetry-stdout",
|
||||
"opentelemetry-zipkin",
|
||||
"opentelemetry_sdk",
|
||||
"prometheus",
|
||||
"rand 0.8.5",
|
||||
@@ -3933,13 +3914,12 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
||||
|
||||
[[package]]
|
||||
name = "opentelemetry"
|
||||
version = "0.21.0"
|
||||
version = "0.22.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
|
||||
checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
"indexmap 2.2.2",
|
||||
"js-sys",
|
||||
"once_cell",
|
||||
"pin-project-lite",
|
||||
@@ -3949,9 +3929,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "opentelemetry-http"
|
||||
version = "0.10.0"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e"
|
||||
checksum = "7cbfa5308166ca861434f0b0913569579b8e587430a3d6bcd7fd671921ec145a"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"bytes",
|
||||
@@ -3962,47 +3942,37 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "opentelemetry-jaeger"
|
||||
version = "0.20.0"
|
||||
name = "opentelemetry-jaeger-propagator"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e617c66fd588e40e0dbbd66932fdc87393095b125d4459b1a3a10feb1712f8a1"
|
||||
checksum = "beb4ec62efc537b60aaa89b92624f986f2523d3a609079f3511cc8ee73490826"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
"http 0.2.11",
|
||||
"opentelemetry",
|
||||
"opentelemetry-http",
|
||||
"opentelemetry-semantic-conventions",
|
||||
"opentelemetry_sdk",
|
||||
"thrift",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "opentelemetry-otlp"
|
||||
version = "0.14.0"
|
||||
version = "0.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930"
|
||||
checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"futures-core",
|
||||
"http 0.2.11",
|
||||
"opentelemetry",
|
||||
"opentelemetry-http",
|
||||
"opentelemetry-proto",
|
||||
"opentelemetry-semantic-conventions",
|
||||
"opentelemetry_sdk",
|
||||
"prost",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tonic",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "opentelemetry-prometheus"
|
||||
version = "0.14.1"
|
||||
version = "0.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6f8f082da115b0dcb250829e3ed0b8792b8f963a1ad42466e48422fbe6a079bd"
|
||||
checksum = "30bbcf6341cab7e2193e5843f0ac36c446a5b3fccb28747afaeda17996dcd02e"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"opentelemetry",
|
||||
@@ -4013,9 +3983,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "opentelemetry-proto"
|
||||
version = "0.4.0"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1"
|
||||
checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4"
|
||||
dependencies = [
|
||||
"opentelemetry",
|
||||
"opentelemetry_sdk",
|
||||
@@ -4025,54 +3995,31 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "opentelemetry-semantic-conventions"
|
||||
version = "0.13.0"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
|
||||
dependencies = [
|
||||
"opentelemetry",
|
||||
]
|
||||
checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910"
|
||||
|
||||
[[package]]
|
||||
name = "opentelemetry-stdout"
|
||||
version = "0.2.0"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c13b2df4cd59c176099ac82806725ba340c8fa7b1a7004c0912daad30470f63e"
|
||||
checksum = "4bdf28b381f23afcd150afc0b38a4183dd321fc96320c1554752b6b761648f78"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"chrono",
|
||||
"futures-util",
|
||||
"opentelemetry",
|
||||
"opentelemetry_sdk",
|
||||
"ordered-float 4.2.0",
|
||||
"ordered-float",
|
||||
"serde",
|
||||
"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]]
|
||||
name = "opentelemetry_sdk"
|
||||
version = "0.21.2"
|
||||
version = "0.22.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4"
|
||||
checksum = "9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"crossbeam-channel",
|
||||
@@ -4082,7 +4029,7 @@ dependencies = [
|
||||
"glob",
|
||||
"once_cell",
|
||||
"opentelemetry",
|
||||
"ordered-float 4.2.0",
|
||||
"ordered-float",
|
||||
"percent-encoding",
|
||||
"rand 0.8.5",
|
||||
"thiserror",
|
||||
@@ -4090,15 +4037,6 @@ dependencies = [
|
||||
"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]]
|
||||
name = "ordered-float"
|
||||
version = "4.2.0"
|
||||
@@ -4589,9 +4527,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "prost"
|
||||
version = "0.11.9"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
|
||||
checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"prost-derive",
|
||||
@@ -4599,15 +4537,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "prost-derive"
|
||||
version = "0.11.9"
|
||||
version = "0.12.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
|
||||
checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"itertools 0.10.5",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
"syn 2.0.48",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -6026,28 +5964,6 @@ dependencies = [
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "threadpool"
|
||||
version = "1.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
|
||||
dependencies = [
|
||||
"num_cpus",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thrift"
|
||||
version = "0.17.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7e54bc85fc7faa8bc175c4bab5b92ba8d9a3ce893d0e9f42cc455c8ab16a9e09"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"integer-encoding",
|
||||
"log",
|
||||
"ordered-float 2.10.1",
|
||||
"threadpool",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "time"
|
||||
version = "0.3.34"
|
||||
@@ -6123,16 +6039,6 @@ dependencies = [
|
||||
"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]]
|
||||
name = "tokio-macros"
|
||||
version = "2.2.0"
|
||||
@@ -6221,27 +6127,20 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tonic"
|
||||
version = "0.9.2"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
|
||||
checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"axum",
|
||||
"base64 0.21.7",
|
||||
"bytes",
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
"h2",
|
||||
"http 0.2.11",
|
||||
"http-body",
|
||||
"hyper",
|
||||
"hyper-timeout",
|
||||
"percent-encoding",
|
||||
"pin-project",
|
||||
"prost",
|
||||
"tokio",
|
||||
"tokio-stream",
|
||||
"tower",
|
||||
"tower-layer",
|
||||
"tower-service",
|
||||
"tracing",
|
||||
@@ -6255,11 +6154,8 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
"indexmap 1.9.3",
|
||||
"pin-project",
|
||||
"pin-project-lite",
|
||||
"rand 0.8.5",
|
||||
"slab",
|
||||
"tokio",
|
||||
"tokio-util",
|
||||
"tower-layer",
|
||||
@@ -6376,9 +6272,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tracing-opentelemetry"
|
||||
version = "0.22.0"
|
||||
version = "0.23.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596"
|
||||
checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"once_cell",
|
||||
@@ -6387,7 +6283,7 @@ dependencies = [
|
||||
"tracing",
|
||||
"tracing-core",
|
||||
"tracing-subscriber",
|
||||
"web-time 0.2.4",
|
||||
"web-time",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -6414,17 +6310,6 @@ version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
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]]
|
||||
name = "typenum"
|
||||
version = "1.17.0"
|
||||
@@ -6447,7 +6332,7 @@ dependencies = [
|
||||
"rand 0.8.5",
|
||||
"serde",
|
||||
"uuid",
|
||||
"web-time 1.0.0",
|
||||
"web-time",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -7006,16 +6891,6 @@ dependencies = [
|
||||
"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]]
|
||||
name = "web-time"
|
||||
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" }
|
||||
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
|
||||
[workspace.dependencies.anyhow]
|
||||
version = "1.0.79"
|
||||
@@ -132,12 +136,15 @@ version = "0.3.18"
|
||||
|
||||
# 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"
|
||||
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
|
||||
|
||||
# URL manipulation
|
||||
|
@@ -12,7 +12,7 @@ publish = false
|
||||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
axum = { version = "0.6.20", features = ["headers"] }
|
||||
axum-extra = { version = "0.8.0", features = ["cookie-private", "cookie-key-expansion"] }
|
||||
chrono.workspace = true
|
||||
|
@@ -39,14 +39,13 @@ tracing-appender = "0.2.3"
|
||||
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
||||
tracing-opentelemetry.workspace = true
|
||||
opentelemetry.workspace = true
|
||||
opentelemetry-http = { version = "0.10.0", features = ["tokio", "hyper"] }
|
||||
opentelemetry-jaeger = { version = "0.20.0", features = ["rt-tokio", "collector_client"] }
|
||||
opentelemetry-otlp = { version = "0.14.0", features = ["trace", "metrics"] }
|
||||
opentelemetry-prometheus = "0.14.1"
|
||||
opentelemetry-http.workspace = true
|
||||
opentelemetry-jaeger-propagator = "0.1.0"
|
||||
opentelemetry-otlp = { version = "0.15.0", default-features = false, features = ["trace", "metrics", "http-proto"] }
|
||||
opentelemetry-prometheus = "0.15.0"
|
||||
opentelemetry-semantic-conventions.workspace = true
|
||||
opentelemetry-stdout = { version = "0.2.0", features = ["trace", "metrics"] }
|
||||
opentelemetry_sdk = { version = "0.21.2", features = ["trace", "metrics", "rt-tokio"] }
|
||||
opentelemetry-zipkin = { version = "0.19.0", default-features = false }
|
||||
opentelemetry-stdout = { version = "0.3.0", features = ["trace", "metrics"] }
|
||||
opentelemetry_sdk = { version = "0.22.1", features = ["trace", "metrics", "rt-tokio"] }
|
||||
prometheus = "0.13.3"
|
||||
sentry = { version = "0.31.8", default-features = false, features = ["backtrace", "contexts", "panic", "tower"] }
|
||||
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> {
|
||||
vec![
|
||||
NETWORK_PROTOCOL_NAME.string("http"),
|
||||
NETWORK_PROTOCOL_VERSION.string(otel_net_protocol_version(request)),
|
||||
HTTP_REQUEST_METHOD.string(otel_http_method(request)),
|
||||
HTTP_ROUTE.string(otel_http_route(request).unwrap_or("FALLBACK").to_owned()),
|
||||
URL_SCHEME.string(otel_url_scheme(request).as_ref()),
|
||||
KeyValue::new(NETWORK_PROTOCOL_NAME, "http"),
|
||||
KeyValue::new(NETWORK_PROTOCOL_VERSION, otel_net_protocol_version(request)),
|
||||
KeyValue::new(HTTP_REQUEST_METHOD, otel_http_method(request)),
|
||||
KeyValue::new(
|
||||
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> {
|
||||
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>(
|
||||
|
@@ -16,31 +16,31 @@ use std::time::Duration;
|
||||
|
||||
use anyhow::Context as _;
|
||||
use hyper::{header::CONTENT_TYPE, Body, Response};
|
||||
use mas_config::{
|
||||
JaegerExporterProtocolConfig, MetricsExporterConfig, Propagator, TelemetryConfig,
|
||||
TracingExporterConfig,
|
||||
use mas_config::{MetricsExporterConfig, Propagator, TelemetryConfig, TracingExporterConfig};
|
||||
use opentelemetry::{
|
||||
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_prometheus::PrometheusExporter;
|
||||
use opentelemetry_sdk::{
|
||||
self,
|
||||
metrics::{
|
||||
reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
|
||||
ManualReader, MeterProvider, PeriodicReader,
|
||||
ManualReader, PeriodicReader, SdkMeterProvider,
|
||||
},
|
||||
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
|
||||
propagation::{BaggagePropagator, TraceContextPropagator},
|
||||
trace::{Sampler, Tracer, TracerProvider},
|
||||
Resource,
|
||||
};
|
||||
use opentelemetry_semantic_conventions as semcov;
|
||||
use opentelemetry_zipkin::{B3Encoding, Propagator as ZipkinPropagator};
|
||||
use prometheus::Registry;
|
||||
use tokio::sync::OnceCell;
|
||||
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();
|
||||
|
||||
pub fn setup(config: &TelemetryConfig) -> anyhow::Result<Option<Tracer>> {
|
||||
@@ -72,9 +72,7 @@ fn match_propagator(propagator: Propagator) -> Box<dyn TextMapPropagator + Send
|
||||
match propagator {
|
||||
P::TraceContext => Box::new(TraceContextPropagator::new()),
|
||||
P::Baggage => Box::new(BaggagePropagator::new()),
|
||||
P::Jaeger => Box::new(JaegerPropagator::new()),
|
||||
P::B3 => Box::new(ZipkinPropagator::with_encoding(B3Encoding::SingleHeader)),
|
||||
P::B3Multi => Box::new(ZipkinPropagator::with_encoding(B3Encoding::MultipleHeader)),
|
||||
P::Jaeger => Box::new(opentelemetry_jaeger_propagator::Propagator::new()),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +97,9 @@ fn stdout_tracer_provider() -> TracerProvider {
|
||||
fn otlp_tracer(endpoint: Option<&Url>) -> anyhow::Result<Tracer> {
|
||||
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 {
|
||||
exporter = exporter.with_endpoint(endpoint.to_string());
|
||||
}
|
||||
@@ -114,65 +114,6 @@ fn otlp_tracer(endpoint: Option<&Url>) -> anyhow::Result<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>> {
|
||||
let tracer_provider = match config {
|
||||
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
|
||||
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(
|
||||
@@ -210,7 +138,9 @@ fn tracer(config: &TracingExporterConfig) -> anyhow::Result<Option<Tracer>> {
|
||||
fn otlp_metric_reader(endpoint: Option<&url::Url>) -> anyhow::Result<PeriodicReader> {
|
||||
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 {
|
||||
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<()> {
|
||||
let meter_provider_builder = MeterProvider::builder();
|
||||
let meter_provider_builder = SdkMeterProvider::builder();
|
||||
let meter_provider_builder = match config {
|
||||
MetricsExporterConfig::None => meter_provider_builder.with_reader(ManualReader::default()),
|
||||
MetricsExporterConfig::Stdout => meter_provider_builder.with_reader(stdout_metric_reader()),
|
||||
@@ -306,9 +236,9 @@ fn trace_config() -> opentelemetry_sdk::trace::Config {
|
||||
}
|
||||
|
||||
fn resource() -> Resource {
|
||||
let resource = Resource::new(vec![
|
||||
semcov::resource::SERVICE_NAME.string(env!("CARGO_PKG_NAME")),
|
||||
semcov::resource::SERVICE_VERSION.string(env!("CARGO_PKG_VERSION")),
|
||||
let resource = Resource::new([
|
||||
KeyValue::new(semcov::resource::SERVICE_NAME, env!("CARGO_PKG_NAME")),
|
||||
KeyValue::new(semcov::resource::SERVICE_VERSION, env!("CARGO_PKG_VERSION")),
|
||||
]);
|
||||
|
||||
let detected = Resource::from_detectors(
|
||||
|
@@ -14,7 +14,7 @@ workspace = true
|
||||
[dependencies]
|
||||
tokio = { version = "1.35.1", features = ["fs", "rt"] }
|
||||
tracing.workspace = true
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
|
||||
thiserror.workspace = true
|
||||
anyhow.workspace = true
|
||||
|
@@ -46,8 +46,8 @@ pub use self::{
|
||||
policy::PolicyConfig,
|
||||
secrets::SecretsConfig,
|
||||
telemetry::{
|
||||
JaegerExporterProtocolConfig, MetricsConfig, MetricsExporterConfig, Propagator,
|
||||
TelemetryConfig, TracingConfig, TracingExporterConfig,
|
||||
MetricsConfig, MetricsExporterConfig, Propagator, TelemetryConfig, TracingConfig,
|
||||
TracingExporterConfig,
|
||||
},
|
||||
templates::TemplatesConfig,
|
||||
upstream_oauth2::{
|
||||
|
@@ -12,14 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use std::num::NonZeroU16;
|
||||
|
||||
use async_trait::async_trait;
|
||||
use rand::Rng;
|
||||
use schemars::JsonSchema;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_with::skip_serializing_none;
|
||||
use thiserror::Error;
|
||||
use url::Url;
|
||||
|
||||
use super::ConfigurationSection;
|
||||
@@ -36,138 +33,10 @@ pub enum Propagator {
|
||||
|
||||
/// Propagate trace context with Jaeger compatible headers
|
||||
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 {
|
||||
"https://localhost:4317"
|
||||
}
|
||||
|
||||
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),
|
||||
}
|
||||
}
|
||||
"https://localhost:4318"
|
||||
}
|
||||
|
||||
/// Exporter to use when exporting traces
|
||||
@@ -188,17 +57,6 @@ pub enum TracingExporterConfig {
|
||||
#[serde(default)]
|
||||
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 {
|
||||
|
@@ -12,7 +12,7 @@ publish = false
|
||||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
tracing.workspace = true
|
||||
thiserror.workspace = true
|
||||
headers = "0.3.9"
|
||||
|
@@ -14,7 +14,7 @@ workspace = true
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
async-graphql = { version = "6.0.11", features = ["chrono", "url"] }
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
chrono.workspace = true
|
||||
lettre = { version = "0.11.4", default-features = false }
|
||||
serde.workspace = true
|
||||
|
@@ -13,7 +13,7 @@ workspace = true
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
camino.workspace = true
|
||||
convert_case = "0.6.0"
|
||||
csv = "1.3.0"
|
||||
|
@@ -13,7 +13,7 @@ workspace = true
|
||||
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
http.workspace = true
|
||||
serde.workspace = true
|
||||
tower.workspace = true
|
||||
|
@@ -14,7 +14,7 @@ workspace = true
|
||||
[dependencies]
|
||||
anyhow.workspace = true
|
||||
serde.workspace = true
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
http.workspace = true
|
||||
tokio = { version = "1.35.1", features = ["sync", "macros", "rt"] }
|
||||
url.workspace = true
|
||||
|
@@ -12,7 +12,7 @@ publish = false
|
||||
workspace = true
|
||||
|
||||
[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"] }
|
||||
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"] }
|
||||
|
@@ -12,7 +12,7 @@ publish = false
|
||||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
chrono.workspace = true
|
||||
thiserror.workspace = true
|
||||
futures-util = "0.3.30"
|
||||
|
@@ -16,7 +16,7 @@ anyhow.workspace = true
|
||||
apalis-core = { version = "0.4.9", features = ["extensions", "tokio-comp", "storage"] }
|
||||
apalis-cron = "0.4.9"
|
||||
async-stream = "0.3.5"
|
||||
async-trait = "0.1.77"
|
||||
async-trait.workspace = true
|
||||
chrono.workspace = true
|
||||
event-listener = "4.0.3"
|
||||
futures-lite = "2.2.0"
|
||||
|
@@ -18,6 +18,6 @@ tracing-opentelemetry.workspace = true
|
||||
tower.workspace = true
|
||||
tokio = { version = "1.35.1", features = ["time"] }
|
||||
opentelemetry.workspace = true
|
||||
opentelemetry-http = "0.10.0"
|
||||
opentelemetry-http.workspace = true
|
||||
opentelemetry-semantic-conventions.workspace = true
|
||||
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 = "regex-syntax", version = "0.6.29" }, # tracing-subscriber[env-filter] -> matchers depends on the old version
|
||||
{ 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 = "bitflags", version = "1.3.2" }, # axum depends on an old version
|
||||
{ name = "hashbrown" }, # Too many versions :(
|
||||
|
@@ -1253,104 +1253,7 @@
|
||||
"endpoint": {
|
||||
"description": "OTLP compatible endpoint",
|
||||
"examples": [
|
||||
"https://localhost:4317"
|
||||
],
|
||||
"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"
|
||||
"https://localhost:4318"
|
||||
],
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
@@ -1395,20 +1298,6 @@
|
||||
"enum": [
|
||||
"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": {
|
||||
"description": "OTLP compatible endpoint",
|
||||
"examples": [
|
||||
"https://localhost:4317"
|
||||
"https://localhost:4318"
|
||||
],
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
|
@@ -293,30 +293,13 @@ telemetry:
|
||||
- baggage
|
||||
# Propagate trace context with Jaeger compatible headers
|
||||
- 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
|
||||
exporter: none
|
||||
|
||||
# Export traces to an OTLP-compatible endpoint
|
||||
#exporter: otlp
|
||||
#endpoint: https://localhost:4317
|
||||
|
||||
# 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
|
||||
#endpoint: https://localhost:4318
|
||||
|
||||
metrics:
|
||||
# The default: don't export metrics
|
||||
|
Reference in New Issue
Block a user