upgrade opentelemetry create from 0.28.0 to 0.29.0

This commit is contained in:
houseme
2025-03-25 19:02:52 +08:00
parent aeb696687b
commit 2b57af75ea
7 changed files with 65 additions and 68 deletions

View File

@@ -1,11 +1,10 @@
service:
extensions: [jaeger_storage, jaeger_query, remote_sampling, healthcheckv2]
extensions: [ jaeger_storage, jaeger_query, remote_sampling, healthcheckv2 ]
pipelines:
traces:
receivers: [otlp, jaeger, zipkin]
processors: [batch, adaptive_sampling]
exporters: [jaeger_storage_exporter]
receivers: [ otlp, jaeger, zipkin ]
processors: [ batch, adaptive_sampling ]
exporters: [ jaeger_storage_exporter ]
telemetry:
resource:
service.name: jaeger

View File

@@ -1,13 +1,13 @@
receivers:
otlp:
protocols:
grpc: # OTLP gRPC 接收器
grpc: # OTLP gRPC 接收器
endpoint: 0.0.0.0:4317
http: # OTLP HTTP 接收器
http: # OTLP HTTP 接收器
endpoint: 0.0.0.0:4318
processors:
batch: # 批处理处理器,提升吞吐量
batch: # 批处理处理器,提升吞吐量
timeout: 5s
send_batch_size: 1000
memory_limiter:
@@ -15,16 +15,16 @@ processors:
limit_mib: 512
exporters:
otlp/traces: # OTLP 导出器,用于跟踪数据
otlp/traces: # OTLP 导出器,用于跟踪数据
endpoint: "jaeger:4317" # Jaeger 的 OTLP gRPC 端点
tls:
insecure: true # 开发环境禁用 TLS生产环境需配置证书
prometheus: # Prometheus 导出器,用于指标数据
prometheus: # Prometheus 导出器,用于指标数据
endpoint: "0.0.0.0:8889" # Prometheus 刮取端点
namespace: "otel" # 指标前缀
namespace: "rustfs" # 指标前缀
send_timestamps: true # 发送时间戳
# enable_open_metrics: true
loki: # Loki 导出器,用于日志数据
loki: # Loki 导出器,用于日志数据
# endpoint: "http://loki:3100/otlp/v1/logs"
endpoint: "http://loki:3100/loki/api/v1/push"
tls:
@@ -34,20 +34,20 @@ extensions:
pprof:
zpages:
service:
extensions: [health_check, pprof, zpages] # 启用扩展
extensions: [ health_check, pprof, zpages ] # 启用扩展
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter,batch]
exporters: [otlp/traces]
receivers: [ otlp ]
processors: [ memory_limiter,batch ]
exporters: [ otlp/traces ]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [prometheus]
receivers: [ otlp ]
processors: [ batch ]
exporters: [ prometheus ]
logs:
receivers: [otlp]
processors: [batch]
exporters: [loki]
receivers: [ otlp ]
processors: [ batch ]
exporters: [ loki ]
telemetry:
logs:
level: "info" # Collector 日志级别

43
Cargo.lock generated
View File

@@ -4273,9 +4273,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]]
name = "opentelemetry"
version = "0.28.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "236e667b670a5cdf90c258f5a55794ec5ac5027e960c224bff8367a59e1e6426"
checksum = "768ee97dc5cd695a4dd4a69a0678fb42789666b5a89e8c0af48bb06c6e427120"
dependencies = [
"futures-core",
"futures-sink",
@@ -4287,9 +4287,9 @@ dependencies = [
[[package]]
name = "opentelemetry-appender-tracing"
version = "0.28.1"
version = "0.29.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c513c7af3bec30113f3d4620134ff923295f1e9c580fda2b8abe0831f925ddc0"
checksum = "e716f864eb23007bdd9dc4aec381e188a1cee28eecf22066772b5fd822b9727d"
dependencies = [
"opentelemetry",
"tracing",
@@ -4301,9 +4301,9 @@ dependencies = [
[[package]]
name = "opentelemetry-http"
version = "0.28.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8863faf2910030d139fb48715ad5ff2f35029fc5f244f6d5f689ddcf4d26253"
checksum = "46d7ab32b827b5b495bd90fa95a6cb65ccc293555dcc3199ae2937d2d237c8ed"
dependencies = [
"async-trait",
"bytes",
@@ -4315,11 +4315,10 @@ dependencies = [
[[package]]
name = "opentelemetry-otlp"
version = "0.28.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bef114c6d41bea83d6dc60eb41720eedd0261a67af57b66dd2b84ac46c01d91"
checksum = "d899720fe06916ccba71c01d04ecd77312734e2de3467fd30d9d580c8ce85656"
dependencies = [
"async-trait",
"futures-core",
"http",
"opentelemetry",
@@ -4336,9 +4335,9 @@ dependencies = [
[[package]]
name = "opentelemetry-proto"
version = "0.28.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56f8870d3024727e99212eb3bb1762ec16e255e3e6f58eeb3dc8db1aa226746d"
checksum = "8c40da242381435e18570d5b9d50aca2a4f4f4d8e146231adb4e7768023309b3"
dependencies = [
"opentelemetry",
"opentelemetry_sdk",
@@ -4348,39 +4347,35 @@ dependencies = [
[[package]]
name = "opentelemetry-semantic-conventions"
version = "0.28.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fb3a2f78c2d55362cd6c313b8abedfbc0142ab3c2676822068fd2ab7d51f9b7"
checksum = "84b29a9f89f1a954936d5aa92f19b2feec3c8f3971d3e96206640db7f9706ae3"
[[package]]
name = "opentelemetry-stdout"
version = "0.28.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5eb0e5a5132e4b80bf037a78e3e12c8402535199f5de490d0c38f7eac71bc831"
checksum = "a7e27d446dabd68610ef0b77d07b102ecde827a4596ea9c01a4d3811e945b286"
dependencies = [
"async-trait",
"chrono",
"futures-util",
"opentelemetry",
"opentelemetry_sdk",
"serde",
"thiserror 2.0.12",
]
[[package]]
name = "opentelemetry_sdk"
version = "0.28.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84dfad6042089c7fc1f6118b7040dc2eb4ab520abbf410b79dc481032af39570"
checksum = "afdefb21d1d47394abc1ba6c57363ab141be19e27cc70d0e422b7f303e4d290b"
dependencies = [
"async-trait",
"futures-channel",
"futures-executor",
"futures-util",
"glob",
"opentelemetry",
"percent-encoding",
"rand 0.8.5",
"rand 0.9.0",
"serde_json",
"thiserror 2.0.12",
"tokio",
@@ -7032,9 +7027,9 @@ dependencies = [
[[package]]
name = "tracing-opentelemetry"
version = "0.29.0"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "721f2d2569dce9f3dfbbddee5906941e953bfcdf736a62da3377f5751650cc36"
checksum = "fd8e764bd6f5813fd8bebc3117875190c5b0415be8f7f8059bffb6ecd979c444"
dependencies = [
"js-sys",
"once_cell",

View File

@@ -61,12 +61,12 @@ local-ip-address = "0.6.3"
mime = "0.3.17"
netif = "0.1.6"
once_cell = "1.21.1"
opentelemetry = { version = "0.28" }
opentelemetry-appender-tracing = { version = "0.28.1", features = ["experimental_use_tracing_span_context", "experimental_metadata_attributes"] }
opentelemetry_sdk = { version = "0.28" }
opentelemetry-stdout = { version = "0.28.0" }
opentelemetry-otlp = { version = "0.28" }
opentelemetry-semantic-conventions = { version = "0.28.0", features = ["semconv_experimental"] }
opentelemetry = { version = "0.29" }
opentelemetry-appender-tracing = { version = "0.29.1", features = ["experimental_use_tracing_span_context", "experimental_metadata_attributes"] }
opentelemetry_sdk = { version = "0.29" }
opentelemetry-stdout = { version = "0.29.0" }
opentelemetry-otlp = { version = "0.29" }
opentelemetry-semantic-conventions = { version = "0.29.0", features = ["semconv_experimental"] }
pin-project-lite = "0.2"
# pin-utils = "0.1.0"
prost = "0.13.4"
@@ -110,7 +110,7 @@ tracing-core = "0.1.33"
tracing-error = "0.2.1"
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "time"] }
tracing-appender = "0.2.3"
tracing-opentelemetry = "0.29"
tracing-opentelemetry = "0.30"
transform-stream = "0.3.1"
url = "2.5.4"
uuid = { version = "1.15.1", features = [

View File

@@ -3,7 +3,7 @@ endpoint = "" # Default is "http://localhost:4317" if not specified
use_stdout = false
sample_ratio = 0.5
meter_interval = 30
service_name = "rustfs_obs_service"
service_name = "rustfs"
service_version = "0.1.0"
deployment_environment = "develop"

View File

@@ -10,6 +10,9 @@ async fn main() {
let obs_conf = Some("packages/obs/examples/config.toml".to_string());
let config = load_config(obs_conf);
let (_logger, _guard) = init_obs(config.clone()).await;
let span = tracing::span!(Level::INFO, "main");
let _enter = span.enter();
info!("Program starts");
// Simulate the operation
tokio::time::sleep(Duration::from_millis(100)).await;
run(
@@ -28,7 +31,7 @@ async fn run(bucket: String, object: String, user: String, service_name: String)
info!("Log module initialization is completed service_name: {:?}", service_name);
// Record Metrics
let meter = global::meter("rustfs.rs");
let meter = global::meter("rustfs");
let request_duration = meter.f64_histogram("s3_request_duration_seconds").build();
request_duration.record(
start_time.elapsed().unwrap().as_secs_f64(),
@@ -59,9 +62,9 @@ async fn run(bucket: String, object: String, user: String, service_name: String)
#[instrument(fields(bucket, object, user))]
async fn put_object(bucket: String, object: String, user: String) {
let start_time = SystemTime::now();
info!("Starting put_object operation");
info!("Starting put_object operation time: {:?}", start_time);
let meter = global::meter("rustfs.rs");
let meter = global::meter("rustfs");
let request_duration = meter.f64_histogram("s3_request_duration_seconds").build();
request_duration.record(
start_time.elapsed().unwrap().as_secs_f64(),

View File

@@ -107,29 +107,29 @@ fn print_server_info() {
async fn main() -> Result<()> {
// Parse the obtained parameters
let opt = config::Opt::parse();
println!("config: {:?}", &opt);
// 设置 trace
// setup_tracing();
// println!("config: {:?}", &opt);
// Load the configuration file
let config = load_config(Some(opt.clone().obs_config));
// Initialize Observability
let (logger, guard) = init_obs(config).await;
// let (logger, guard) = tokio::runtime::Runtime::new()?.block_on(async { init_obs(config).await });
// let _rr = tokio::runtime::Runtime::new()?.block_on(async {
// Pack and store the guard
GLOBAL_GUARD.set(TracingGuard(Box::new(guard))).unwrap_or_else(|_| {
error!("Unable to set global tracing guard");
});
// Initialize the logger
let start_time = SystemTime::now();
let base_entry = BaseLogEntry::new()
.timestamp(chrono::DateTime::from(start_time))
.message(Some("main init obs end".to_string()))
.message(Some("main init obs start".to_string()))
.request_id(Some("main".to_string()));
let server_entry = ServerLogEntry::new(Level::INFO, "main_server_entry".to_string())
.with_base(base_entry)
.user_id(Some("user_id".to_string()));
let _r = logger.lock().await.log_server_entry(server_entry).await;
// });
// Pack and store the guard
GLOBAL_GUARD.set(TracingGuard(Box::new(guard))).unwrap_or_else(|_| {
error!("Unable to set global tracing guard");
});
// Run parameters
run(opt).await