Skip to content

Commit 83065ea

Browse files
committed
debug and fix telemetry init and shutdown
1 parent 4b81df2 commit 83065ea

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

rust/cubestore/cubestore/src/bin/cubestored.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ fn main() {
5555
))
5656
})
5757
.unwrap();
58-
if enable_telemetry {
59-
init_tracing_telemetry();
60-
}
6158
init_cube_logger(enable_telemetry);
6259

6360
log::info!("Cube Store version {}", version);
@@ -83,6 +80,10 @@ fn main() {
8380
}
8481
let runtime = tokio_builder.build().unwrap();
8582
runtime.block_on(async move {
83+
if enable_telemetry {
84+
init_tracing_telemetry(version);
85+
}
86+
// TODO: Should this be avoided if otel is configured?
8687
init_agent_sender().await;
8788

8889
validate_config(config.config_obj().as_ref()).report_and_abort_on_errors();
@@ -99,6 +100,12 @@ fn main() {
99100

100101
stop_on_ctrl_c(&services).await;
101102
services.wait_processing_loops().await.unwrap();
103+
104+
if enable_telemetry {
105+
// This still doesn't prevent errors:
106+
// OpenTelemetry trace error occurred. cannot send message to batch processor as the channel is closed
107+
opentelemetry::global::shutdown_tracer_provider();
108+
}
102109
});
103110
}
104111

rust/cubestore/cubestore/src/telemetry/otel_tracing.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
use log::{Log, Metadata, Record};
22
use opentelemetry::trace::TracerProvider;
3+
use opentelemetry::KeyValue;
4+
use opentelemetry_sdk::Resource;
35
use tracing_log::LogTracer;
46
use tracing_subscriber::layer::SubscriberExt;
57
use tracing_subscriber::Registry;
68

79
const OTEL_SERVICE_NAME: &str = "cubestore";
810

9-
pub fn init_tracing_telemetry() {
11+
pub fn init_tracing_telemetry(version: String) {
1012
let otlp_exporter = opentelemetry_otlp::new_exporter()
1113
.http()
1214
.with_http_client(reqwest::Client::new());
1315
let tracer_provider = opentelemetry_otlp::new_pipeline()
1416
.tracing()
1517
.with_exporter(otlp_exporter)
18+
.with_trace_config(opentelemetry_sdk::trace::Config::default().with_resource(
19+
Resource::new(vec![
20+
KeyValue::new("service.name", OTEL_SERVICE_NAME),
21+
KeyValue::new("service.version", version),
22+
]),
23+
))
1624
.install_batch(opentelemetry_sdk::runtime::Tokio)
1725
.expect("Should be able to initialise the tracer_provider");
1826

0 commit comments

Comments
 (0)