[package]
edition = "2021"
rust-version = "1.95.0"
name = "rocketmq-observability"
version = "1.0.0"
authors = ["mxsm <mxsm@apache.org>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Observability support for rocketmq-rust"
homepage = "https://github.com/mxsm/rocketmq-rust"
readme = "README.md"
keywords = [
"apache-rocketmq",
"rocketmq-rust",
"rocketmq-rs",
"rust",
"rocketmq-client",
]
license = "Apache-2.0"
repository = "https://github.com/mxsm/rocketmq-rust"
[features]
default = []
observability = [
"otel-metrics",
"otel-traces",
]
otel-logs = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-appender-tracing",
"opentelemetry/logs",
"opentelemetry_sdk/logs",
]
otel-metrics = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:smallvec",
"opentelemetry/metrics",
"opentelemetry_sdk/metrics",
"opentelemetry_sdk/rt-tokio",
]
otel-traces = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-semantic-conventions",
"dep:tracing-opentelemetry",
"opentelemetry/trace",
"opentelemetry_sdk/trace",
]
otlp-grpc = [
"dep:opentelemetry-otlp",
"dep:tonic",
"opentelemetry-otlp/grpc-tonic",
]
otlp-logs = [
"otel-logs",
"otlp-grpc",
"opentelemetry-otlp/logs",
]
otlp-metrics = [
"otel-metrics",
"otlp-grpc",
"opentelemetry-otlp/metrics",
]
otlp-traces = [
"otel-traces",
"otlp-grpc",
"opentelemetry-otlp/trace",
]
prometheus = [
"otel-metrics",
"dep:opentelemetry-prometheus",
"dep:prometheus",
]
stdout = []
[lib]
name = "rocketmq_observability"
path = "src/lib.rs"
[[example]]
name = "broker_metrics"
path = "examples/broker_metrics.rs"
[[example]]
name = "logging_bootstrap"
path = "examples/logging_bootstrap.rs"
[[test]]
name = "architecture_guards"
path = "tests/architecture_guards.rs"
[[test]]
name = "config_resolution"
path = "tests/config_resolution.rs"
[[test]]
name = "error_compat"
path = "tests/error_compat.rs"
[[test]]
name = "log_filter_resolution"
path = "tests/log_filter_resolution.rs"
[[test]]
name = "logging_bootstrap_guards"
path = "tests/logging_bootstrap_guards.rs"
[[test]]
name = "metric_catalog_contract"
path = "tests/metric_catalog_contract.rs"
[[test]]
name = "production_readiness_contract"
path = "tests/production_readiness_contract.rs"
[[test]]
name = "public_api_contract"
path = "tests/public_api_contract.rs"
[[test]]
name = "telemetry_handle"
path = "tests/telemetry_handle.rs"
[[bench]]
name = "observability_hot_path"
path = "benches/observability_hot_path.rs"
harness = false
[[bench]]
name = "observability_prometheus_lifecycle_bench"
path = "benches/observability_prometheus_lifecycle_bench.rs"
harness = false
required-features = ["prometheus"]
[dependencies.anyhow]
version = "1.0.103"
[dependencies.cheetah-string]
version = "3.1.0"
features = [
"serde",
"bytes",
"simd",
]
[dependencies.chrono]
version = "0.4.45"
[dependencies.chrono-tz]
version = "0.10.4"
[dependencies.dashmap]
version = "6.2.1"
[dependencies.iana-time-zone]
version = "0.1.64"
[dependencies.opentelemetry]
version = "0.33"
features = ["metrics"]
optional = true
[dependencies.opentelemetry-appender-tracing]
version = "0.33"
optional = true
default-features = false
[dependencies.opentelemetry-otlp]
version = "0.33"
optional = true
default-features = false
[dependencies.opentelemetry-prometheus]
version = "0.33"
optional = true
default-features = false
[dependencies.opentelemetry-semantic-conventions]
version = "0.33"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.33"
features = [
"metrics",
"rt-tokio",
]
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.prometheus]
version = "0.14"
optional = true
default-features = false
[dependencies.rocketmq-error]
version = "1.0.0"
[dependencies.rocketmq-model]
version = "1.0.0"
[dependencies.rocketmq-runtime]
version = "1.0.0"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml]
version = "0.9"
[dependencies.sha2]
version = "0.11"
[dependencies.smallvec]
version = "1.13"
optional = true
[dependencies.thiserror]
version = "2.0.18"
[dependencies.time]
version = "0.3.47"
[dependencies.tokio]
version = "1.52"
features = [
"fs",
"io-std",
"io-util",
"macros",
"net",
"process",
"rt-multi-thread",
"signal",
"sync",
"time",
]
[dependencies.tokio-util]
version = "0.7.18"
features = [
"codec",
"compat",
"io-util",
"net",
"rt",
"time",
]
[dependencies.tonic]
version = "0.14.1"
optional = true
default-features = false
[dependencies.tracing]
version = "0.1.44"
[dependencies.tracing-appender]
version = "0.2.5"
[dependencies.tracing-log]
version = "0.2.0"
[dependencies.tracing-opentelemetry]
version = "0.34"
optional = true
default-features = false
[dependencies.tracing-subscriber]
version = "0.3.23"
features = [
"time",
"env-filter",
"json",
"registry",
"tracing-log",
]
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]