mirror of
https://github.com/rustfs/rustfs.git
synced 2026-01-16 17:20:33 +00:00
* improve code for metrics * improve code for metrics * fix * fix * Refactor telemetry initialization and environment functions ordering - Reorder functions in envs.rs by type size (8-bit to 64-bit, signed before unsigned) and add missing variants like get_env_opt_u16. - Optimize init_telemetry to support three modes: stdout logging (default error level with span tracing), file rolling logs (size-based with retention), and HTTP-based observability with sub-endpoints (trace, metric, log) falling back to unified endpoint. - Fix stdout logging issue by retaining WorkerGuard in OtelGuard to prevent premature release of async writer threads. - Enhance observability mode with HTTP protocol, compression, and proper resource management. - Update OtelGuard to include tracing_guard for stdout and flexi_logger_handles for file logging. - Improve error handling and configuration extraction in OtelConfig. * fix * up * fix * fix * improve code for obs * fix * fix
64 lines
2.6 KiB
TOML
64 lines
2.6 KiB
TOML
# Copyright 2024 RustFS Team
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
[package]
|
|
name = "rustfs-obs"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
version.workspace = true
|
|
homepage.workspace = true
|
|
description = "Observability and monitoring tools for RustFS, providing metrics, logging, and tracing capabilities."
|
|
keywords = ["observability", "metrics", "logging", "tracing", "RustFS"]
|
|
categories = ["web-programming", "development-tools::profiling", "asynchronous", "api-bindings", "development-tools::debugging"]
|
|
documentation = "https://docs.rs/rustfs-obs/latest/rustfs_obs/"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
default = []
|
|
gpu = ["dep:nvml-wrapper"]
|
|
full = ["gpu"]
|
|
|
|
[dependencies]
|
|
rustfs-config = { workspace = true, features = ["constants", "observability"] }
|
|
rustfs-utils = { workspace = true, features = ["ip", "path"] }
|
|
flexi_logger = { workspace = true }
|
|
metrics = { workspace = true }
|
|
metrics-exporter-opentelemetry = { workspace = true }
|
|
nu-ansi-term = { workspace = true }
|
|
nvml-wrapper = { workspace = true, optional = true }
|
|
opentelemetry = { workspace = true }
|
|
opentelemetry-appender-tracing = { workspace = true, features = ["experimental_use_tracing_span_context", "experimental_metadata_attributes"] }
|
|
opentelemetry_sdk = { workspace = true, features = ["rt-tokio"] }
|
|
opentelemetry-stdout = { workspace = true }
|
|
opentelemetry-otlp = { workspace = true }
|
|
opentelemetry-semantic-conventions = { workspace = true, features = ["semconv_experimental"] }
|
|
serde = { workspace = true }
|
|
smallvec = { workspace = true, features = ["serde"] }
|
|
tracing = { workspace = true, features = ["std", "attributes"] }
|
|
tracing-appender = { workspace = true }
|
|
tracing-error = { workspace = true }
|
|
tracing-opentelemetry = { workspace = true }
|
|
tracing-subscriber = { workspace = true, features = ["registry", "std", "fmt", "env-filter", "tracing-log", "time", "local-time", "json"] }
|
|
tokio = { workspace = true, features = ["sync", "fs", "rt-multi-thread", "rt", "time", "macros"] }
|
|
sysinfo = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
|
|
|
|
[dev-dependencies]
|
|
tokio = { workspace = true, features = ["full"] }
|