Bump to opentelemetry 0.31
This commit is contained in:
130
Cargo.lock
generated
130
Cargo.lock
generated
@@ -566,9 +566,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "biscuit"
|
name = "biscuit"
|
||||||
version = "0.7.0"
|
version = "0.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7e28fc7c56c61743a01d0d1b73e4fed68b8a4f032ea3a2d4bb8c6520a33fc05a"
|
checksum = "2dbfddc8cc5cc927876d9f138e7ded44c6116c544d3cca2c3a2759e46ba916c7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"data-encoding",
|
"data-encoding",
|
||||||
@@ -3130,7 +3130,6 @@ dependencies = [
|
|||||||
"hyper",
|
"hyper",
|
||||||
"hyper-util",
|
"hyper-util",
|
||||||
"rustls 0.23.37",
|
"rustls 0.23.37",
|
||||||
"rustls-native-certs",
|
|
||||||
"rustls-pki-types",
|
"rustls-pki-types",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls",
|
||||||
@@ -4736,9 +4735,8 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry"
|
name = "opentelemetry"
|
||||||
version = "0.29.1"
|
version = "0.31.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/stalwartlabs/opentelemetry-rust#f32f79ee7f0c7c5403f20d878fa05f3181fbfeb0"
|
||||||
checksum = "9e87237e2775f74896f9ad219d26a2081751187eb7c9f5c58dde20a23b95d16c"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-sink",
|
"futures-sink",
|
||||||
@@ -4750,72 +4748,64 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-http"
|
name = "opentelemetry-http"
|
||||||
version = "0.29.0"
|
version = "0.31.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/stalwartlabs/opentelemetry-rust#f32f79ee7f0c7c5403f20d878fa05f3181fbfeb0"
|
||||||
checksum = "46d7ab32b827b5b495bd90fa95a6cb65ccc293555dcc3199ae2937d2d237c8ed"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
"http 1.4.0",
|
"http 1.4.0",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"reqwest 0.12.28",
|
"reqwest 0.13.2",
|
||||||
"tracing",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-otlp"
|
name = "opentelemetry-otlp"
|
||||||
version = "0.29.0"
|
version = "0.31.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/stalwartlabs/opentelemetry-rust#f32f79ee7f0c7c5403f20d878fa05f3181fbfeb0"
|
||||||
checksum = "d899720fe06916ccba71c01d04ecd77312734e2de3467fd30d9d580c8ce85656"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-core",
|
|
||||||
"http 1.4.0",
|
"http 1.4.0",
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry-http",
|
"opentelemetry-http",
|
||||||
"opentelemetry-proto",
|
"opentelemetry-proto",
|
||||||
"opentelemetry_sdk",
|
"opentelemetry_sdk",
|
||||||
"prost",
|
"prost",
|
||||||
"reqwest 0.12.28",
|
"reqwest 0.13.2",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tonic",
|
"tonic",
|
||||||
"tracing",
|
"tonic-types",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-proto"
|
name = "opentelemetry-proto"
|
||||||
version = "0.29.0"
|
version = "0.31.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/stalwartlabs/opentelemetry-rust#f32f79ee7f0c7c5403f20d878fa05f3181fbfeb0"
|
||||||
checksum = "8c40da242381435e18570d5b9d50aca2a4f4f4d8e146231adb4e7768023309b3"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"opentelemetry_sdk",
|
"opentelemetry_sdk",
|
||||||
"prost",
|
"prost",
|
||||||
"tonic",
|
"tonic",
|
||||||
|
"tonic-prost",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry-semantic-conventions"
|
name = "opentelemetry-semantic-conventions"
|
||||||
version = "0.29.0"
|
version = "0.31.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/stalwartlabs/opentelemetry-rust#f32f79ee7f0c7c5403f20d878fa05f3181fbfeb0"
|
||||||
checksum = "84b29a9f89f1a954936d5aa92f19b2feec3c8f3971d3e96206640db7f9706ae3"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "opentelemetry_sdk"
|
name = "opentelemetry_sdk"
|
||||||
version = "0.29.0"
|
version = "0.31.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/stalwartlabs/opentelemetry-rust#f32f79ee7f0c7c5403f20d878fa05f3181fbfeb0"
|
||||||
checksum = "afdefb21d1d47394abc1ba6c57363ab141be19e27cc70d0e422b7f303e4d290b"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-executor",
|
"futures-executor",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"glob",
|
|
||||||
"opentelemetry",
|
"opentelemetry",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
|
"portable-atomic",
|
||||||
"rand 0.9.2",
|
"rand 0.9.2",
|
||||||
"serde_json",
|
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
"tracing",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -5383,9 +5373,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "prost"
|
name = "prost"
|
||||||
version = "0.13.5"
|
version = "0.14.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5"
|
checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"prost-derive",
|
"prost-derive",
|
||||||
@@ -5393,17 +5383,26 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "prost-derive"
|
name = "prost-derive"
|
||||||
version = "0.13.5"
|
version = "0.14.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d"
|
checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"itertools 0.14.0",
|
"itertools 0.13.0",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.117",
|
"syn 2.0.117",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "prost-types"
|
||||||
|
version = "0.14.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7"
|
||||||
|
dependencies = [
|
||||||
|
"prost",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proxy-header"
|
name = "proxy-header"
|
||||||
version = "0.1.2"
|
version = "0.1.2"
|
||||||
@@ -6015,7 +6014,6 @@ checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures-channel",
|
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http 1.4.0",
|
"http 1.4.0",
|
||||||
@@ -6030,7 +6028,6 @@ dependencies = [
|
|||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"quinn",
|
"quinn",
|
||||||
"rustls 0.23.37",
|
"rustls 0.23.37",
|
||||||
"rustls-native-certs",
|
|
||||||
"rustls-pki-types",
|
"rustls-pki-types",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@@ -6039,7 +6036,7 @@ dependencies = [
|
|||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"tower 0.5.3",
|
"tower",
|
||||||
"tower-http",
|
"tower-http",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
"url",
|
"url",
|
||||||
@@ -6082,7 +6079,7 @@ dependencies = [
|
|||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"tower 0.5.3",
|
"tower",
|
||||||
"tower-http",
|
"tower-http",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
"url",
|
"url",
|
||||||
@@ -7906,9 +7903,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tonic"
|
name = "tonic"
|
||||||
version = "0.12.3"
|
version = "0.14.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52"
|
checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
@@ -7921,18 +7918,39 @@ dependencies = [
|
|||||||
"hyper-util",
|
"hyper-util",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"pin-project",
|
"pin-project",
|
||||||
"prost",
|
|
||||||
"rustls-native-certs",
|
"rustls-native-certs",
|
||||||
"rustls-pemfile",
|
"sync_wrapper",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls",
|
"tokio-rustls",
|
||||||
"tokio-stream",
|
"tokio-stream",
|
||||||
"tower 0.4.13",
|
"tower",
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tonic-prost"
|
||||||
|
version = "0.14.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309"
|
||||||
|
dependencies = [
|
||||||
|
"bytes",
|
||||||
|
"prost",
|
||||||
|
"tonic",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tonic-types"
|
||||||
|
version = "0.14.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2a875a902255423d34c1f20838ab374126db8eb41625b7947a1d54113b0b7399"
|
||||||
|
dependencies = [
|
||||||
|
"prost",
|
||||||
|
"prost-types",
|
||||||
|
"tonic",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "totp-rs"
|
name = "totp-rs"
|
||||||
version = "5.7.1"
|
version = "5.7.1"
|
||||||
@@ -7948,26 +7966,6 @@ dependencies = [
|
|||||||
"urlencoding",
|
"urlencoding",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "tower"
|
|
||||||
version = "0.4.13"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
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",
|
|
||||||
"tower-service",
|
|
||||||
"tracing",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tower"
|
name = "tower"
|
||||||
version = "0.5.3"
|
version = "0.5.3"
|
||||||
@@ -7976,11 +7974,15 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
|
"indexmap 2.13.1",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
|
"slab",
|
||||||
"sync_wrapper",
|
"sync_wrapper",
|
||||||
"tokio",
|
"tokio",
|
||||||
|
"tokio-util",
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
|
"tracing",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -8001,7 +8003,7 @@ dependencies = [
|
|||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-util",
|
"tokio-util",
|
||||||
"tower 0.5.3",
|
"tower",
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -43,10 +43,10 @@ x509-parser = "0.18"
|
|||||||
pem = "3.0"
|
pem = "3.0"
|
||||||
chrono = { version = "0.4", features = ["serde"] }
|
chrono = { version = "0.4", features = ["serde"] }
|
||||||
hyper = { version = "1.0.1", features = ["server", "http1", "http2"] }
|
hyper = { version = "1.0.1", features = ["server", "http1", "http2"] }
|
||||||
opentelemetry = { version = "0.29" }
|
opentelemetry = { git = "https://github.com/stalwartlabs/opentelemetry-rust" }
|
||||||
opentelemetry_sdk = { version = "0.29" }
|
opentelemetry_sdk = { git = "https://github.com/stalwartlabs/opentelemetry-rust" }
|
||||||
opentelemetry-otlp = { version = "0.29", default-features = false, features = ["reqwest-client", "http-proto", "trace", "metrics", "logs", "internal-logs", "grpc-tonic", "tls-roots", "reqwest-rustls"] }
|
opentelemetry-otlp = { git = "https://github.com/stalwartlabs/opentelemetry-rust", default-features = false, features = ["reqwest-client", "http-proto", "trace", "metrics", "logs", "internal-logs", "grpc-tonic", "tls-aws-lc", "tls-roots", "reqwest-rustls"] }
|
||||||
opentelemetry-semantic-conventions = { version = "0.29.0" }
|
opentelemetry-semantic-conventions = { git = "https://github.com/stalwartlabs/opentelemetry-rust" }
|
||||||
prometheus = { version = "0.14", default-features = false }
|
prometheus = { version = "0.14", default-features = false }
|
||||||
imagesize = "0.14"
|
imagesize = "0.14"
|
||||||
sha1 = "0.11"
|
sha1 = "0.11"
|
||||||
@@ -64,7 +64,7 @@ pwhash = "1.0.0"
|
|||||||
xxhash-rust = { version = "0.8.5", features = ["xxh3"] }
|
xxhash-rust = { version = "0.8.5", features = ["xxh3"] }
|
||||||
psl = "2"
|
psl = "2"
|
||||||
aes-gcm-siv = "0.11.1"
|
aes-gcm-siv = "0.11.1"
|
||||||
biscuit = "0.7.0"
|
biscuit = "0.8.0"
|
||||||
rsa = "0.9.2"
|
rsa = "0.9.2"
|
||||||
p256 = { version = "0.13", features = ["ecdh"] }
|
p256 = { version = "0.13", features = ["ecdh"] }
|
||||||
p384 = { version = "0.13", features = ["ecdh"] }
|
p384 = { version = "0.13", features = ["ecdh"] }
|
||||||
|
|||||||
@@ -8,15 +8,11 @@ use crate::config::storage::Storage;
|
|||||||
use ahash::{AHashMap, AHashSet};
|
use ahash::{AHashMap, AHashSet};
|
||||||
use base64::{Engine, engine::general_purpose::STANDARD};
|
use base64::{Engine, engine::general_purpose::STANDARD};
|
||||||
use hyper::HeaderMap;
|
use hyper::HeaderMap;
|
||||||
use opentelemetry::{InstrumentationScope, KeyValue, logs::LoggerProvider};
|
use opentelemetry::{InstrumentationScope, KeyValue};
|
||||||
use opentelemetry_otlp::{
|
use opentelemetry_otlp::{
|
||||||
LogExporter, MetricExporter, SpanExporter, WithExportConfig, WithHttpConfig,
|
LogExporter, MetricExporter, SpanExporter, WithExportConfig, WithHttpConfig,
|
||||||
};
|
};
|
||||||
use opentelemetry_sdk::{
|
use opentelemetry_sdk::{Resource, metrics::Temporality};
|
||||||
Resource,
|
|
||||||
logs::{SdkLogger, SdkLoggerProvider},
|
|
||||||
metrics::Temporality,
|
|
||||||
};
|
|
||||||
use opentelemetry_semantic_conventions::resource::SERVICE_VERSION;
|
use opentelemetry_semantic_conventions::resource::SERVICE_VERSION;
|
||||||
use registry::schema::{
|
use registry::schema::{
|
||||||
enums::{EventPolicy, LogRotateFrequency},
|
enums::{EventPolicy, LogRotateFrequency},
|
||||||
@@ -57,7 +53,6 @@ pub struct OtelTracer {
|
|||||||
pub span_exporter: SpanExporter,
|
pub span_exporter: SpanExporter,
|
||||||
pub span_exporter_enable: bool,
|
pub span_exporter_enable: bool,
|
||||||
pub log_exporter: LogExporter,
|
pub log_exporter: LogExporter,
|
||||||
pub log_provider: SdkLogger,
|
|
||||||
pub log_exporter_enable: bool,
|
pub log_exporter_enable: bool,
|
||||||
pub throttle: Duration,
|
pub throttle: Duration,
|
||||||
}
|
}
|
||||||
@@ -307,9 +302,6 @@ impl Tracers {
|
|||||||
throttle: tracer.throttle.into_inner(),
|
throttle: tracer.throttle.into_inner(),
|
||||||
span_exporter_enable: tracer.enable_span_exporter,
|
span_exporter_enable: tracer.enable_span_exporter,
|
||||||
log_exporter_enable: tracer.enable_log_exporter,
|
log_exporter_enable: tracer.enable_log_exporter,
|
||||||
log_provider: SdkLoggerProvider::builder()
|
|
||||||
.build()
|
|
||||||
.logger("stalwart"),
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
(Err(err), _) => {
|
(Err(err), _) => {
|
||||||
@@ -356,9 +348,6 @@ impl Tracers {
|
|||||||
throttle: tracer.throttle.into_inner(),
|
throttle: tracer.throttle.into_inner(),
|
||||||
span_exporter_enable: tracer.enable_span_exporter,
|
span_exporter_enable: tracer.enable_span_exporter,
|
||||||
log_exporter_enable: tracer.enable_log_exporter,
|
log_exporter_enable: tracer.enable_log_exporter,
|
||||||
log_provider: SdkLoggerProvider::builder()
|
|
||||||
.build()
|
|
||||||
.logger("stalwart"),
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
(Err(err), _) => {
|
(Err(err), _) => {
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ use crate::config::telemetry::OtelMetrics;
|
|||||||
use opentelemetry_sdk::metrics::{
|
use opentelemetry_sdk::metrics::{
|
||||||
Temporality,
|
Temporality,
|
||||||
data::{
|
data::{
|
||||||
Gauge, GaugeDataPoint, Histogram, HistogramDataPoint, Metric, ResourceMetrics,
|
AggregatedMetrics, Gauge, GaugeDataPoint, Histogram, HistogramDataPoint, Metric,
|
||||||
ScopeMetrics, Sum, SumDataPoint,
|
MetricData, ResourceMetrics, ScopeMetrics, Sum, SumDataPoint,
|
||||||
},
|
},
|
||||||
exporter::PushMetricExporter,
|
exporter::PushMetricExporter,
|
||||||
};
|
};
|
||||||
@@ -23,78 +23,64 @@ impl OtelMetrics {
|
|||||||
|
|
||||||
// Add counters
|
// Add counters
|
||||||
for counter in Collector::collect_counters(is_enterprise) {
|
for counter in Collector::collect_counters(is_enterprise) {
|
||||||
metrics.push(Metric {
|
metrics.push(Metric::new(
|
||||||
name: counter.id().as_str().into(),
|
counter.id().as_str(),
|
||||||
description: counter.id().description().into(),
|
counter.id().description(),
|
||||||
unit: "events".into(),
|
"events",
|
||||||
data: Box::new(Sum {
|
AggregatedMetrics::U64(MetricData::Sum(Sum::new(
|
||||||
data_points: vec![SumDataPoint {
|
vec![SumDataPoint::new(vec![], counter.value(), vec![])],
|
||||||
attributes: vec![],
|
|
||||||
value: counter.value(),
|
|
||||||
exemplars: vec![],
|
|
||||||
}],
|
|
||||||
temporality: Temporality::Cumulative,
|
|
||||||
is_monotonic: true,
|
|
||||||
start_time,
|
start_time,
|
||||||
time,
|
time,
|
||||||
}),
|
Temporality::Cumulative,
|
||||||
});
|
true,
|
||||||
|
))),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add gauges
|
// Add gauges
|
||||||
for gauge in Collector::collect_gauges(is_enterprise) {
|
for gauge in Collector::collect_gauges(is_enterprise) {
|
||||||
metrics.push(Metric {
|
metrics.push(Metric::new(
|
||||||
name: gauge.id().as_str().into(),
|
gauge.id().as_str(),
|
||||||
description: gauge.id().description().into(),
|
gauge.id().description(),
|
||||||
unit: gauge.id().unit().into(),
|
gauge.id().unit(),
|
||||||
data: Box::new(Gauge {
|
AggregatedMetrics::U64(MetricData::Gauge(Gauge::new(
|
||||||
data_points: vec![GaugeDataPoint {
|
vec![GaugeDataPoint::new(vec![], gauge.get(), vec![])],
|
||||||
attributes: vec![],
|
Some(start_time),
|
||||||
value: gauge.get(),
|
|
||||||
exemplars: vec![],
|
|
||||||
}],
|
|
||||||
start_time: start_time.into(),
|
|
||||||
time,
|
time,
|
||||||
}),
|
))),
|
||||||
});
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add histograms
|
// Add histograms
|
||||||
for histogram in Collector::collect_histograms(is_enterprise) {
|
for histogram in Collector::collect_histograms(is_enterprise) {
|
||||||
metrics.push(Metric {
|
metrics.push(Metric::new(
|
||||||
name: histogram.id().as_str().into(),
|
histogram.id().as_str(),
|
||||||
description: histogram.id().description().into(),
|
histogram.id().description(),
|
||||||
unit: histogram.id().unit().into(),
|
histogram.id().unit(),
|
||||||
data: Box::new(Histogram {
|
AggregatedMetrics::U64(MetricData::Histogram(Histogram::new(
|
||||||
data_points: vec![HistogramDataPoint {
|
vec![HistogramDataPoint::new(
|
||||||
attributes: vec![],
|
vec![],
|
||||||
count: histogram.count(),
|
histogram.count(),
|
||||||
bounds: histogram.upper_bounds_vec(),
|
histogram.upper_bounds_vec(),
|
||||||
bucket_counts: histogram.buckets_vec(),
|
histogram.buckets_vec(),
|
||||||
min: histogram.min(),
|
histogram.min(),
|
||||||
max: histogram.max(),
|
histogram.max(),
|
||||||
sum: histogram.sum(),
|
histogram.sum(),
|
||||||
exemplars: vec![],
|
vec![],
|
||||||
}],
|
)],
|
||||||
temporality: Temporality::Cumulative,
|
|
||||||
start_time,
|
start_time,
|
||||||
time,
|
time,
|
||||||
}),
|
Temporality::Cumulative,
|
||||||
});
|
))),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Export metrics
|
// Export metrics
|
||||||
if let Err(err) = self
|
let rm = ResourceMetrics::new(
|
||||||
.exporter
|
self.resource.clone(),
|
||||||
.export(&mut ResourceMetrics {
|
vec![ScopeMetrics::new(self.instrumentation.clone(), metrics)],
|
||||||
resource: self.resource.clone(),
|
);
|
||||||
scope_metrics: vec![ScopeMetrics {
|
if let Err(err) = self.exporter.export(&rm).await {
|
||||||
scope: self.instrumentation.clone(),
|
|
||||||
metrics,
|
|
||||||
}],
|
|
||||||
})
|
|
||||||
.await
|
|
||||||
{
|
|
||||||
trc::event!(
|
trc::event!(
|
||||||
Telemetry(TelemetryEvent::OtelMetricsExporterError),
|
Telemetry(TelemetryEvent::OtelMetricsExporterError),
|
||||||
Reason = err.to_string(),
|
Reason = err.to_string(),
|
||||||
|
|||||||
@@ -171,6 +171,7 @@ where
|
|||||||
),
|
),
|
||||||
dropped_attributes_count: 0,
|
dropped_attributes_count: 0,
|
||||||
parent_span_id: 0.into(),
|
parent_span_id: 0.into(),
|
||||||
|
parent_span_is_remote: false,
|
||||||
name: start_span.inner.typ.as_str().into(),
|
name: start_span.inner.typ.as_str().into(),
|
||||||
start_time: UNIX_EPOCH + Duration::from_secs(start_span.inner.timestamp),
|
start_time: UNIX_EPOCH + Duration::from_secs(start_span.inner.timestamp),
|
||||||
end_time: UNIX_EPOCH + Duration::from_secs(end_span.inner.timestamp),
|
end_time: UNIX_EPOCH + Duration::from_secs(end_span.inner.timestamp),
|
||||||
@@ -186,9 +187,8 @@ where
|
|||||||
impl OtelTracer {
|
impl OtelTracer {
|
||||||
fn build_log_record(&self, event: &Event<EventDetails>) -> SdkLogRecord {
|
fn build_log_record(&self, event: &Event<EventDetails>) -> SdkLogRecord {
|
||||||
use opentelemetry::logs::LogRecord;
|
use opentelemetry::logs::LogRecord;
|
||||||
use opentelemetry::logs::Logger;
|
|
||||||
|
|
||||||
let mut record = self.log_provider.create_log_record();
|
let mut record = SdkLogRecord::new();
|
||||||
record.set_event_name(event.inner.typ.as_str());
|
record.set_event_name(event.inner.typ.as_str());
|
||||||
record.set_severity_number(match event.inner.level {
|
record.set_severity_number(match event.inner.level {
|
||||||
Level::Trace => Severity::Trace,
|
Level::Trace => Severity::Trace,
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ pub mod diagnose;
|
|||||||
use crate::{
|
use crate::{
|
||||||
api::diagnose::{DeliveryStage, spawn_delivery_diagnose},
|
api::diagnose::{DeliveryStage, spawn_delivery_diagnose},
|
||||||
auth::{
|
auth::{
|
||||||
authenticate::Authenticator, oauth::auth::OAuthApiHandler,
|
authenticate::Authenticator, oauth::auth::OAuthApiHandler, permissions::AccountApiHandler,
|
||||||
permissions::PermissionsApiHandler,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use common::{
|
use common::{
|
||||||
@@ -85,10 +84,10 @@ impl ManagementApi for Server {
|
|||||||
Err(trc::ResourceEvent::NotFound.into_err())
|
Err(trc::ResourceEvent::NotFound.into_err())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"permissions" => {
|
"account" => {
|
||||||
// Authenticate request
|
// Authenticate request
|
||||||
let (_in_flight, access_token) = self.authenticate_headers(req, session).await?;
|
let (_in_flight, access_token) = self.authenticate_headers(req, session).await?;
|
||||||
self.handle_permissions_request(&access_token).await
|
self.handle_account_request(&access_token).await
|
||||||
}
|
}
|
||||||
"token" => {
|
"token" => {
|
||||||
let access_token = self.management_access_token(req, session).await?;
|
let access_token = self.management_access_token(req, session).await?;
|
||||||
|
|||||||
@@ -6,24 +6,25 @@
|
|||||||
|
|
||||||
use common::{Server, auth::AccessToken};
|
use common::{Server, auth::AccessToken};
|
||||||
use http_proto::{HttpResponse, JsonResponse, ToHttpResponse};
|
use http_proto::{HttpResponse, JsonResponse, ToHttpResponse};
|
||||||
use registry::schema::enums::Permission;
|
use registry::schema::enums::{Locale, Permission};
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
pub struct Permissions {
|
pub struct Account {
|
||||||
pub permissions: Vec<Permission>,
|
pub permissions: Vec<Permission>,
|
||||||
pub edition: &'static str,
|
pub edition: &'static str,
|
||||||
|
pub locale: Locale,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait PermissionsApiHandler: Sync + Send {
|
pub trait AccountApiHandler: Sync + Send {
|
||||||
fn handle_permissions_request(
|
fn handle_account_request(
|
||||||
&self,
|
&self,
|
||||||
access_token: &AccessToken,
|
access_token: &AccessToken,
|
||||||
) -> impl Future<Output = trc::Result<HttpResponse>> + Send;
|
) -> impl Future<Output = trc::Result<HttpResponse>> + Send;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PermissionsApiHandler for Server {
|
impl AccountApiHandler for Server {
|
||||||
async fn handle_permissions_request(
|
async fn handle_account_request(
|
||||||
&self,
|
&self,
|
||||||
access_token: &AccessToken,
|
access_token: &AccessToken,
|
||||||
) -> trc::Result<HttpResponse> {
|
) -> trc::Result<HttpResponse> {
|
||||||
@@ -41,9 +42,12 @@ impl PermissionsApiHandler for Server {
|
|||||||
};
|
};
|
||||||
// SPDX-SnippetEnd
|
// SPDX-SnippetEnd
|
||||||
|
|
||||||
Ok(JsonResponse::new(Permissions {
|
let account_info = self.account_info(access_token.account_id()).await?;
|
||||||
|
|
||||||
|
Ok(JsonResponse::new(Account {
|
||||||
permissions: access_token.permissions(),
|
permissions: access_token.permissions(),
|
||||||
edition,
|
edition,
|
||||||
|
locale: account_info.locale(),
|
||||||
})
|
})
|
||||||
.into_http_response())
|
.into_http_response())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ mail-parser = { version = "0.11", features = ["full_encoding", "rkyv"] }
|
|||||||
mail-builder = "0.4.4"
|
mail-builder = "0.4.4"
|
||||||
sieve-rs = { version = "0.7", features = ["rkyv"] }
|
sieve-rs = { version = "0.7", features = ["rkyv"] }
|
||||||
utils = { path = "../crates/utils", features = ["test_mode"] }
|
utils = { path = "../crates/utils", features = ["test_mode"] }
|
||||||
jmap-client = { path = "/Users/me/code/jmap-client", features = ["websockets", "debug", "async"] }
|
jmap-client = { path = "/Users/me/code/jmap-client", features = ["websockets", "ring", "debug", "async"] }
|
||||||
tokio = { version = "1.47", features = ["full"] }
|
tokio = { version = "1.47", features = ["full"] }
|
||||||
tokio-rustls = { version = "0.26", default-features = false, features = ["aws_lc_rs", "tls12"] }
|
tokio-rustls = { version = "0.26", default-features = false, features = ["aws_lc_rs", "tls12"] }
|
||||||
rustls = { version = "0.23.5", default-features = false, features = ["std", "aws_lc_rs", "tls12"] }
|
rustls = { version = "0.23.5", default-features = false, features = ["std", "aws_lc_rs", "tls12"] }
|
||||||
@@ -75,7 +75,7 @@ num_cpus = "1.15.0"
|
|||||||
async-trait = "0.1.68"
|
async-trait = "0.1.68"
|
||||||
chrono = "0.4"
|
chrono = "0.4"
|
||||||
ring = { version = "0.17" }
|
ring = { version = "0.17" }
|
||||||
biscuit = "0.7.0"
|
biscuit = "0.8.0"
|
||||||
form_urlencoded = "1.1.0"
|
form_urlencoded = "1.1.0"
|
||||||
rkyv = { version = "0.8.10", features = ["little_endian"] }
|
rkyv = { version = "0.8.10", features = ["little_endian"] }
|
||||||
compact_str = "0.9.0"
|
compact_str = "0.9.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user