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 opentelemetry to 0.21.0
This commit is contained in:
123
Cargo.lock
generated
123
Cargo.lock
generated
@@ -1180,9 +1180,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crc-catalog"
|
name = "crc-catalog"
|
||||||
version = "2.3.0"
|
version = "2.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4939f9ed1444bd8c896d37f3090012fa6e7834fe84ef8c9daa166109515732f9"
|
checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crc32fast"
|
name = "crc32fast"
|
||||||
@@ -2825,7 +2825,7 @@ dependencies = [
|
|||||||
"mas-templates",
|
"mas-templates",
|
||||||
"mas-tower",
|
"mas-tower",
|
||||||
"oauth2-types",
|
"oauth2-types",
|
||||||
"opentelemetry 0.20.0",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
"opentelemetry-http",
|
||||||
"opentelemetry-jaeger",
|
"opentelemetry-jaeger",
|
||||||
"opentelemetry-otlp",
|
"opentelemetry-otlp",
|
||||||
@@ -2833,6 +2833,7 @@ dependencies = [
|
|||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"opentelemetry-stdout",
|
"opentelemetry-stdout",
|
||||||
"opentelemetry-zipkin",
|
"opentelemetry-zipkin",
|
||||||
|
"opentelemetry_sdk",
|
||||||
"prometheus",
|
"prometheus",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
"rand_chacha 0.3.1",
|
"rand_chacha 0.3.1",
|
||||||
@@ -2972,7 +2973,7 @@ dependencies = [
|
|||||||
"mas-templates",
|
"mas-templates",
|
||||||
"mime",
|
"mime",
|
||||||
"oauth2-types",
|
"oauth2-types",
|
||||||
"opentelemetry 0.20.0",
|
"opentelemetry",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"pbkdf2",
|
"pbkdf2",
|
||||||
"psl",
|
"psl",
|
||||||
@@ -3011,7 +3012,7 @@ dependencies = [
|
|||||||
"hyper-rustls",
|
"hyper-rustls",
|
||||||
"mas-tower",
|
"mas-tower",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry 0.20.0",
|
"opentelemetry",
|
||||||
"rustls",
|
"rustls",
|
||||||
"rustls-native-certs",
|
"rustls-native-certs",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -3286,7 +3287,7 @@ dependencies = [
|
|||||||
"mas-iana",
|
"mas-iana",
|
||||||
"mas-jose",
|
"mas-jose",
|
||||||
"oauth2-types",
|
"oauth2-types",
|
||||||
"opentelemetry 0.20.0",
|
"opentelemetry",
|
||||||
"rand_core 0.6.4",
|
"rand_core 0.6.4",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@@ -3343,7 +3344,7 @@ dependencies = [
|
|||||||
"mas-storage-pg",
|
"mas-storage-pg",
|
||||||
"mas-templates",
|
"mas-templates",
|
||||||
"mas-tower",
|
"mas-tower",
|
||||||
"opentelemetry 0.20.0",
|
"opentelemetry",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
"rand_chacha 0.3.1",
|
"rand_chacha 0.3.1",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -3391,7 +3392,7 @@ name = "mas-tower"
|
|||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"http",
|
"http",
|
||||||
"opentelemetry 0.20.0",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
"opentelemetry-http",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
@@ -3697,16 +3698,6 @@ version = "0.1.5"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "opentelemetry"
|
|
||||||
version = "0.20.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54"
|
|
||||||
dependencies = [
|
|
||||||
"opentelemetry_api",
|
|
||||||
"opentelemetry_sdk 0.20.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry"
|
name = "opentelemetry"
|
||||||
version = "0.21.0"
|
version = "0.21.0"
|
||||||
@@ -3733,7 +3724,7 @@ dependencies = [
|
|||||||
"bytes",
|
"bytes",
|
||||||
"http",
|
"http",
|
||||||
"hyper",
|
"hyper",
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"tokio",
|
"tokio",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -3747,10 +3738,10 @@ dependencies = [
|
|||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http",
|
"http",
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
"opentelemetry-http",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"opentelemetry_sdk 0.21.0",
|
"opentelemetry_sdk",
|
||||||
"thrift",
|
"thrift",
|
||||||
"tokio",
|
"tokio",
|
||||||
]
|
]
|
||||||
@@ -3764,10 +3755,10 @@ dependencies = [
|
|||||||
"async-trait",
|
"async-trait",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"http",
|
"http",
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"opentelemetry-proto",
|
"opentelemetry-proto",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"opentelemetry_sdk 0.21.0",
|
"opentelemetry_sdk",
|
||||||
"prost",
|
"prost",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tokio",
|
"tokio",
|
||||||
@@ -3781,8 +3772,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "6cd37c9261414d49ed7bd7689ffdf77a01c8c95bc29c35dfc8c7435713149baa"
|
checksum = "6cd37c9261414d49ed7bd7689ffdf77a01c8c95bc29c35dfc8c7435713149baa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"opentelemetry_sdk 0.21.0",
|
"opentelemetry_sdk",
|
||||||
"prometheus",
|
"prometheus",
|
||||||
"protobuf",
|
"protobuf",
|
||||||
]
|
]
|
||||||
@@ -3793,8 +3784,8 @@ version = "0.4.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1"
|
checksum = "a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"opentelemetry_sdk 0.21.0",
|
"opentelemetry_sdk",
|
||||||
"prost",
|
"prost",
|
||||||
"tonic",
|
"tonic",
|
||||||
]
|
]
|
||||||
@@ -3805,7 +3796,7 @@ version = "0.13.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
|
checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3817,8 +3808,8 @@ dependencies = [
|
|||||||
"async-trait",
|
"async-trait",
|
||||||
"chrono",
|
"chrono",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"opentelemetry_sdk 0.21.0",
|
"opentelemetry_sdk",
|
||||||
"ordered-float 4.1.1",
|
"ordered-float 4.1.1",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@@ -3834,54 +3825,16 @@ dependencies = [
|
|||||||
"futures-core",
|
"futures-core",
|
||||||
"http",
|
"http",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
"opentelemetry-http",
|
||||||
"opentelemetry-semantic-conventions",
|
"opentelemetry-semantic-conventions",
|
||||||
"opentelemetry_sdk 0.21.0",
|
"opentelemetry_sdk",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"typed-builder",
|
"typed-builder",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "opentelemetry_api"
|
|
||||||
version = "0.20.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b"
|
|
||||||
dependencies = [
|
|
||||||
"futures-channel",
|
|
||||||
"futures-util",
|
|
||||||
"indexmap 1.9.3",
|
|
||||||
"js-sys",
|
|
||||||
"once_cell",
|
|
||||||
"pin-project-lite",
|
|
||||||
"thiserror",
|
|
||||||
"urlencoding",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "opentelemetry_sdk"
|
|
||||||
version = "0.20.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026"
|
|
||||||
dependencies = [
|
|
||||||
"async-trait",
|
|
||||||
"crossbeam-channel",
|
|
||||||
"futures-channel",
|
|
||||||
"futures-executor",
|
|
||||||
"futures-util",
|
|
||||||
"once_cell",
|
|
||||||
"opentelemetry_api",
|
|
||||||
"ordered-float 3.9.2",
|
|
||||||
"percent-encoding",
|
|
||||||
"rand 0.8.5",
|
|
||||||
"regex",
|
|
||||||
"thiserror",
|
|
||||||
"tokio",
|
|
||||||
"tokio-stream",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry_sdk"
|
name = "opentelemetry_sdk"
|
||||||
version = "0.21.0"
|
version = "0.21.0"
|
||||||
@@ -3895,7 +3848,7 @@ dependencies = [
|
|||||||
"futures-util",
|
"futures-util",
|
||||||
"glob",
|
"glob",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"ordered-float 4.1.1",
|
"ordered-float 4.1.1",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
@@ -3913,15 +3866,6 @@ dependencies = [
|
|||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ordered-float"
|
|
||||||
version = "3.9.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
|
|
||||||
dependencies = [
|
|
||||||
"num-traits",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ordered-float"
|
name = "ordered-float"
|
||||||
version = "4.1.1"
|
version = "4.1.1"
|
||||||
@@ -6131,17 +6075,6 @@ dependencies = [
|
|||||||
"tracing-core",
|
"tracing-core",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "tracing-log"
|
|
||||||
version = "0.2.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
|
|
||||||
dependencies = [
|
|
||||||
"log",
|
|
||||||
"once_cell",
|
|
||||||
"tracing-core",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-opentelemetry"
|
name = "tracing-opentelemetry"
|
||||||
version = "0.22.0"
|
version = "0.22.0"
|
||||||
@@ -6150,12 +6083,10 @@ checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"opentelemetry 0.21.0",
|
"opentelemetry",
|
||||||
"opentelemetry_sdk 0.21.0",
|
"opentelemetry_sdk",
|
||||||
"smallvec",
|
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-core",
|
"tracing-core",
|
||||||
"tracing-log 0.2.0",
|
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
"web-time",
|
"web-time",
|
||||||
]
|
]
|
||||||
@@ -6175,7 +6106,7 @@ dependencies = [
|
|||||||
"thread_local",
|
"thread_local",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-core",
|
"tracing-core",
|
||||||
"tracing-log 0.1.4",
|
"tracing-log",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
10
Cargo.toml
10
Cargo.toml
@@ -63,6 +63,16 @@ version = "0.1.40"
|
|||||||
[workspace.dependencies.tracing-subscriber]
|
[workspace.dependencies.tracing-subscriber]
|
||||||
version = "0.3.17"
|
version = "0.3.17"
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
default-features = false
|
||||||
|
|
||||||
# URL manipulation
|
# URL manipulation
|
||||||
[workspace.dependencies.url]
|
[workspace.dependencies.url]
|
||||||
version = "2.4.1"
|
version = "2.4.1"
|
||||||
|
@@ -33,14 +33,15 @@ zeroize = "1.6.0"
|
|||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
tracing-appender = "0.2.2"
|
tracing-appender = "0.2.2"
|
||||||
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
||||||
tracing-opentelemetry = "0.22.0"
|
tracing-opentelemetry.workspace = true
|
||||||
opentelemetry = { version = "0.20.0", features = ["trace", "metrics", "rt-tokio"] }
|
opentelemetry.workspace = true
|
||||||
opentelemetry-http = { version = "0.10.0", features = ["tokio", "hyper"] }
|
opentelemetry-http = { version = "0.10.0", features = ["tokio", "hyper"] }
|
||||||
opentelemetry-jaeger = { version = "0.20.0", features = ["rt-tokio", "collector_client"] }
|
opentelemetry-jaeger = { version = "0.20.0", features = ["rt-tokio", "collector_client"] }
|
||||||
opentelemetry-otlp = { version = "0.14.0", features = ["trace", "metrics"] }
|
opentelemetry-otlp = { version = "0.14.0", features = ["trace", "metrics"] }
|
||||||
opentelemetry-prometheus = "0.14.0"
|
opentelemetry-prometheus = "0.14.0"
|
||||||
opentelemetry-semantic-conventions = "0.13.0"
|
opentelemetry-semantic-conventions.workspace = true
|
||||||
opentelemetry-stdout = { version = "0.2.0", features = ["trace", "metrics"] }
|
opentelemetry-stdout = { version = "0.2.0", features = ["trace", "metrics"] }
|
||||||
|
opentelemetry_sdk = { version = "0.21.0", features = ["trace", "metrics", "rt-tokio"] }
|
||||||
opentelemetry-zipkin = { version = "0.19.0", default-features = false }
|
opentelemetry-zipkin = { version = "0.19.0", default-features = false }
|
||||||
prometheus = "0.13.3"
|
prometheus = "0.13.3"
|
||||||
sentry = { version = "0.31.7", default-features = false, features = ["backtrace", "contexts", "panic", "tower"] }
|
sentry = { version = "0.31.7", default-features = false, features = ["backtrace", "contexts", "panic", "tower"] }
|
||||||
|
@@ -109,7 +109,6 @@ async fn try_main() -> anyhow::Result<()> {
|
|||||||
tracing_opentelemetry::layer()
|
tracing_opentelemetry::layer()
|
||||||
.with_tracer(tracer)
|
.with_tracer(tracer)
|
||||||
.with_tracked_inactivity(false)
|
.with_tracked_inactivity(false)
|
||||||
.with_exception_fields(true)
|
|
||||||
.with_filter(LevelFilter::INFO)
|
.with_filter(LevelFilter::INFO)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -20,24 +20,20 @@ use mas_config::{
|
|||||||
JaegerExporterProtocolConfig, MetricsExporterConfig, Propagator, TelemetryConfig,
|
JaegerExporterProtocolConfig, MetricsExporterConfig, Propagator, TelemetryConfig,
|
||||||
TracingExporterConfig,
|
TracingExporterConfig,
|
||||||
};
|
};
|
||||||
use opentelemetry::{
|
use opentelemetry::{global, propagation::TextMapPropagator, trace::TracerProvider as _};
|
||||||
global,
|
|
||||||
propagation::TextMapPropagator,
|
|
||||||
sdk::{
|
|
||||||
self,
|
|
||||||
metrics::{
|
|
||||||
reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
|
|
||||||
ManualReader, MeterProvider, PeriodicReader,
|
|
||||||
},
|
|
||||||
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
|
|
||||||
trace::{Sampler, Tracer, TracerProvider},
|
|
||||||
Resource,
|
|
||||||
},
|
|
||||||
trace::TracerProvider as _,
|
|
||||||
};
|
|
||||||
use opentelemetry_jaeger::Propagator as JaegerPropagator;
|
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::{
|
||||||
|
self,
|
||||||
|
metrics::{
|
||||||
|
reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
|
||||||
|
ManualReader, MeterProvider, PeriodicReader,
|
||||||
|
},
|
||||||
|
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
|
||||||
|
trace::{Sampler, Tracer, TracerProvider},
|
||||||
|
Resource,
|
||||||
|
};
|
||||||
use opentelemetry_semantic_conventions as semcov;
|
use opentelemetry_semantic_conventions as semcov;
|
||||||
use opentelemetry_zipkin::{B3Encoding, Propagator as ZipkinPropagator};
|
use opentelemetry_zipkin::{B3Encoding, Propagator as ZipkinPropagator};
|
||||||
use prometheus::Registry;
|
use prometheus::Registry;
|
||||||
@@ -118,7 +114,7 @@ fn otlp_tracer(endpoint: Option<&Url>) -> anyhow::Result<Tracer> {
|
|||||||
.tracing()
|
.tracing()
|
||||||
.with_exporter(exporter)
|
.with_exporter(exporter)
|
||||||
.with_trace_config(trace_config())
|
.with_trace_config(trace_config())
|
||||||
.install_batch(opentelemetry::runtime::Tokio)
|
.install_batch(opentelemetry_sdk::runtime::Tokio)
|
||||||
.context("Failed to configure OTLP trace exporter")?;
|
.context("Failed to configure OTLP trace exporter")?;
|
||||||
|
|
||||||
Ok(tracer)
|
Ok(tracer)
|
||||||
@@ -128,10 +124,10 @@ fn jaeger_agent_tracer_provider(host: &str, port: u16) -> anyhow::Result<TracerP
|
|||||||
let pipeline = opentelemetry_jaeger::new_agent_pipeline()
|
let pipeline = opentelemetry_jaeger::new_agent_pipeline()
|
||||||
.with_service_name(env!("CARGO_PKG_NAME"))
|
.with_service_name(env!("CARGO_PKG_NAME"))
|
||||||
.with_trace_config(trace_config())
|
.with_trace_config(trace_config())
|
||||||
.with_endpoint((host, port));
|
.with_endpoint(format!("{host}:{port}"));
|
||||||
|
|
||||||
let tracer_provider = pipeline
|
let tracer_provider = pipeline
|
||||||
.build_batch(opentelemetry::runtime::Tokio)
|
.build_batch(opentelemetry_sdk::runtime::Tokio)
|
||||||
.context("Failed to configure Jaeger agent exporter")?;
|
.context("Failed to configure Jaeger agent exporter")?;
|
||||||
|
|
||||||
Ok(tracer_provider)
|
Ok(tracer_provider)
|
||||||
@@ -158,7 +154,7 @@ async fn jaeger_collector_tracer_provider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let tracer_provider = pipeline
|
let tracer_provider = pipeline
|
||||||
.build_batch(opentelemetry::runtime::Tokio)
|
.build_batch(opentelemetry_sdk::runtime::Tokio)
|
||||||
.context("Failed to configure Jaeger collector exporter")?;
|
.context("Failed to configure Jaeger collector exporter")?;
|
||||||
|
|
||||||
Ok(tracer_provider)
|
Ok(tracer_provider)
|
||||||
@@ -177,7 +173,7 @@ async fn zipkin_tracer(collector_endpoint: &Option<Url>) -> anyhow::Result<Trace
|
|||||||
}
|
}
|
||||||
|
|
||||||
let tracer = pipeline
|
let tracer = pipeline
|
||||||
.install_batch(opentelemetry::runtime::Tokio)
|
.install_batch(opentelemetry_sdk::runtime::Tokio)
|
||||||
.context("Failed to configure Zipkin exporter")?;
|
.context("Failed to configure Zipkin exporter")?;
|
||||||
|
|
||||||
Ok(tracer)
|
Ok(tracer)
|
||||||
@@ -233,47 +229,50 @@ fn otlp_metric_reader(endpoint: Option<&url::Url>) -> anyhow::Result<PeriodicRea
|
|||||||
Box::new(DefaultAggregationSelector::new()),
|
Box::new(DefaultAggregationSelector::new()),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
Ok(PeriodicReader::builder(exporter, opentelemetry::runtime::Tokio).build())
|
Ok(PeriodicReader::builder(exporter, opentelemetry_sdk::runtime::Tokio).build())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn stdout_metric_reader() -> PeriodicReader {
|
fn stdout_metric_reader() -> PeriodicReader {
|
||||||
let exporter = opentelemetry_stdout::MetricsExporter::default();
|
let exporter = opentelemetry_stdout::MetricsExporter::default();
|
||||||
PeriodicReader::builder(exporter, opentelemetry::runtime::Tokio).build()
|
PeriodicReader::builder(exporter, opentelemetry_sdk::runtime::Tokio).build()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn prometheus_service<T>() -> tower::util::ServiceFn<
|
type PromServiceFuture = std::future::Ready<Result<Response<Body>, std::convert::Infallible>>;
|
||||||
impl FnMut(T) -> std::future::Ready<Result<Response<Body>, std::convert::Infallible>> + Clone,
|
|
||||||
> {
|
#[allow(clippy::needless_pass_by_value)]
|
||||||
|
fn prometheus_service_fn<T>(_req: T) -> PromServiceFuture {
|
||||||
use prometheus::{Encoder, TextEncoder};
|
use prometheus::{Encoder, TextEncoder};
|
||||||
|
|
||||||
|
let response = if let Some(registry) = PROMETHEUS_REGISTRY.get() {
|
||||||
|
let mut buffer = vec![];
|
||||||
|
let encoder = TextEncoder::new();
|
||||||
|
let metric_families = registry.gather();
|
||||||
|
|
||||||
|
// That shouldn't panic, unless we're constructing invalid labels
|
||||||
|
encoder.encode(&metric_families, &mut buffer).unwrap();
|
||||||
|
|
||||||
|
Response::builder()
|
||||||
|
.status(200)
|
||||||
|
.header(CONTENT_TYPE, encoder.format_type())
|
||||||
|
.body(Body::from(buffer))
|
||||||
|
.unwrap()
|
||||||
|
} else {
|
||||||
|
Response::builder()
|
||||||
|
.status(500)
|
||||||
|
.header(CONTENT_TYPE, "text/plain")
|
||||||
|
.body(Body::from("Prometheus exporter was not enabled in config"))
|
||||||
|
.unwrap()
|
||||||
|
};
|
||||||
|
|
||||||
|
std::future::ready(Ok(response))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn prometheus_service<T>() -> tower::util::ServiceFn<fn(T) -> PromServiceFuture> {
|
||||||
if !PROMETHEUS_REGISTRY.initialized() {
|
if !PROMETHEUS_REGISTRY.initialized() {
|
||||||
tracing::warn!("A Prometheus resource was mounted on a listener, but the Prometheus exporter was not setup in the config");
|
tracing::warn!("A Prometheus resource was mounted on a listener, but the Prometheus exporter was not setup in the config");
|
||||||
}
|
}
|
||||||
|
|
||||||
tower::service_fn(move |_req| {
|
tower::service_fn(prometheus_service_fn as _)
|
||||||
let response = if let Some(registry) = PROMETHEUS_REGISTRY.get() {
|
|
||||||
let mut buffer = vec![];
|
|
||||||
let encoder = TextEncoder::new();
|
|
||||||
let metric_families = registry.gather();
|
|
||||||
|
|
||||||
// That shouldn't panic, unless we're constructing invalid labels
|
|
||||||
encoder.encode(&metric_families, &mut buffer).unwrap();
|
|
||||||
|
|
||||||
Response::builder()
|
|
||||||
.status(200)
|
|
||||||
.header(CONTENT_TYPE, encoder.format_type())
|
|
||||||
.body(Body::from(buffer))
|
|
||||||
.unwrap()
|
|
||||||
} else {
|
|
||||||
Response::builder()
|
|
||||||
.status(500)
|
|
||||||
.header(CONTENT_TYPE, "text/plain")
|
|
||||||
.body(Body::from("Prometheus exporter was not enabled in config"))
|
|
||||||
.unwrap()
|
|
||||||
};
|
|
||||||
|
|
||||||
std::future::ready(Ok(response))
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn prometheus_metric_reader() -> anyhow::Result<PrometheusExporter> {
|
fn prometheus_metric_reader() -> anyhow::Result<PrometheusExporter> {
|
||||||
@@ -309,8 +308,8 @@ fn init_meter(config: &MetricsExporterConfig) -> anyhow::Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn trace_config() -> sdk::trace::Config {
|
fn trace_config() -> opentelemetry_sdk::trace::Config {
|
||||||
sdk::trace::config()
|
opentelemetry_sdk::trace::config()
|
||||||
.with_resource(resource())
|
.with_resource(resource())
|
||||||
.with_sampler(Sampler::AlwaysOn)
|
.with_sampler(Sampler::AlwaysOn)
|
||||||
}
|
}
|
||||||
@@ -324,10 +323,10 @@ fn resource() -> Resource {
|
|||||||
let detected = Resource::from_detectors(
|
let detected = Resource::from_detectors(
|
||||||
Duration::from_secs(5),
|
Duration::from_secs(5),
|
||||||
vec![
|
vec![
|
||||||
Box::new(sdk::resource::EnvResourceDetector::new()),
|
Box::new(opentelemetry_sdk::resource::EnvResourceDetector::new()),
|
||||||
Box::new(sdk::resource::OsResourceDetector),
|
Box::new(opentelemetry_sdk::resource::OsResourceDetector),
|
||||||
Box::new(sdk::resource::ProcessResourceDetector),
|
Box::new(opentelemetry_sdk::resource::ProcessResourceDetector),
|
||||||
Box::new(sdk::resource::TelemetryResourceDetector),
|
Box::new(opentelemetry_sdk::resource::TelemetryResourceDetector),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -14,8 +14,8 @@ futures-util = "0.3.28"
|
|||||||
|
|
||||||
# Logging and tracing
|
# Logging and tracing
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
opentelemetry = "0.20.0"
|
opentelemetry.workspace = true
|
||||||
opentelemetry-semantic-conventions = "0.13.0"
|
opentelemetry-semantic-conventions.workspace = true
|
||||||
|
|
||||||
# Error management
|
# Error management
|
||||||
thiserror.workspace = true
|
thiserror.workspace = true
|
||||||
|
@@ -17,7 +17,7 @@ http-body = "0.4.5"
|
|||||||
hyper = "0.14.27"
|
hyper = "0.14.27"
|
||||||
hyper-rustls = { version = "0.24.1", features = ["http1", "http2"], default-features = false, optional = true }
|
hyper-rustls = { version = "0.24.1", features = ["http1", "http2"], default-features = false, optional = true }
|
||||||
once_cell = "1.18.0"
|
once_cell = "1.18.0"
|
||||||
opentelemetry = "0.20.0"
|
opentelemetry.workspace = true
|
||||||
rustls = { version = "0.21.8", optional = true }
|
rustls = { version = "0.21.8", optional = true }
|
||||||
rustls-native-certs = { version = "0.6.3", optional = true }
|
rustls-native-certs = { version = "0.6.3", optional = true }
|
||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
@@ -28,7 +28,7 @@ tokio = { version = "1.33.0", features = ["sync", "parking_lot"], optional = tru
|
|||||||
tower = { version = "0.4.13", features = [] }
|
tower = { version = "0.4.13", features = [] }
|
||||||
tower-http = { version = "0.4.4", features = ["cors"] }
|
tower-http = { version = "0.4.4", features = ["cors"] }
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
tracing-opentelemetry = "0.22.0"
|
tracing-opentelemetry.workspace = true
|
||||||
webpki-roots = { version = "0.25.2", optional = true }
|
webpki-roots = { version = "0.25.2", optional = true }
|
||||||
|
|
||||||
mas-tower = { path = "../tower" }
|
mas-tower = { path = "../tower" }
|
||||||
|
@@ -14,12 +14,12 @@ thiserror.workspace = true
|
|||||||
futures-util = "0.3.28"
|
futures-util = "0.3.28"
|
||||||
|
|
||||||
apalis-core = { version = "0.4.5", features = ["tokio-comp"] }
|
apalis-core = { version = "0.4.5", features = ["tokio-comp"] }
|
||||||
opentelemetry = "0.20.0"
|
opentelemetry.workspace = true
|
||||||
rand_core = "0.6.4"
|
rand_core = "0.6.4"
|
||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
serde_json.workspace = true
|
serde_json.workspace = true
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
tracing-opentelemetry = "0.22.0"
|
tracing-opentelemetry.workspace = true
|
||||||
url.workspace = true
|
url.workspace = true
|
||||||
ulid.workspace = true
|
ulid.workspace = true
|
||||||
|
|
||||||
|
@@ -23,8 +23,8 @@ thiserror.workspace = true
|
|||||||
tokio = { version = "1.33.0", features = ["rt"] }
|
tokio = { version = "1.33.0", features = ["rt"] }
|
||||||
tower = "0.4.13"
|
tower = "0.4.13"
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
tracing-opentelemetry = "0.22.0"
|
tracing-opentelemetry.workspace = true
|
||||||
opentelemetry = "0.20.0"
|
opentelemetry.workspace = true
|
||||||
ulid.workspace = true
|
ulid.workspace = true
|
||||||
url.workspace = true
|
url.workspace = true
|
||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
|
@@ -10,10 +10,10 @@ repository.workspace = true
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
http.workspace = true
|
http.workspace = true
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
tracing-opentelemetry = "0.22.0"
|
tracing-opentelemetry.workspace = true
|
||||||
tower = "0.4.13"
|
tower = "0.4.13"
|
||||||
tokio = { version = "1.33.0", features = ["time"] }
|
tokio = { version = "1.33.0", features = ["time"] }
|
||||||
opentelemetry = { version = "0.20.0", features = ["metrics"] }
|
opentelemetry.workspace = true
|
||||||
opentelemetry-http = "0.10.0"
|
opentelemetry-http = "0.10.0"
|
||||||
opentelemetry-semantic-conventions = "0.13.0"
|
opentelemetry-semantic-conventions.workspace = true
|
||||||
pin-project-lite = "0.2.13"
|
pin-project-lite = "0.2.13"
|
||||||
|
Reference in New Issue
Block a user