From 3cc9b14b852ec89e900893c51cba2f1748afa79c Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Mon, 23 Dec 2024 13:33:24 -0800 Subject: [PATCH 1/2] Nit improvements to batchprocessors --- opentelemetry-sdk/src/logs/log_processor.rs | 36 ++++++++++++------- opentelemetry-sdk/src/trace/span_processor.rs | 8 +++-- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/opentelemetry-sdk/src/logs/log_processor.rs b/opentelemetry-sdk/src/logs/log_processor.rs index c9af43ddf0..98d07aba83 100644 --- a/opentelemetry-sdk/src/logs/log_processor.rs +++ b/opentelemetry-sdk/src/logs/log_processor.rs @@ -337,11 +337,12 @@ impl BatchLogProcessor { match message_receiver.recv_timeout(remaining_time) { Ok(BatchMessage::ExportLog(log)) => { logs.push(log); - if logs.len() == config.max_export_batch_size - || last_export_time.elapsed() >= config.scheduled_delay - { + if logs.len() == config.max_export_batch_size { + otel_debug!( + name: "BatchLogProcessor.ExportingDueToBatchSize", + ); let _ = export_with_timeout_sync( - remaining_time, + config.max_export_timeout, &mut exporter, logs.split_off(0), &mut last_export_time, @@ -349,8 +350,9 @@ impl BatchLogProcessor { } } Ok(BatchMessage::ForceFlush(sender)) => { + otel_debug!(name: "BatchLogProcessor.ExportingDueToForceFlush"); let result = export_with_timeout_sync( - remaining_time, + config.max_export_timeout, &mut exporter, logs.split_off(0), &mut last_export_time, @@ -358,14 +360,19 @@ impl BatchLogProcessor { let _ = sender.send(result); } Ok(BatchMessage::Shutdown(sender)) => { + otel_debug!(name: "BatchLogProcessor.ExportingDueToShutdown"); let result = export_with_timeout_sync( - remaining_time, + config.max_export_timeout, &mut exporter, logs.split_off(0), &mut last_export_time, ); let _ = sender.send(result); + otel_debug!( + name: "BatchLogProcessor.ThreadExiting", + reason = "ShutdownRequested" + ); // // break out the loop and return from the current background thread. // @@ -375,19 +382,24 @@ impl BatchLogProcessor { exporter.set_resource(&resource); } Err(RecvTimeoutError::Timeout) => { + otel_debug!( + name: "BatchLogProcessor.ExportingDueToTimer", + ); let _ = export_with_timeout_sync( - remaining_time, + config.max_export_timeout, &mut exporter, logs.split_off(0), &mut last_export_time, ); } - Err(err) => { - // TODO: this should not happen! Log the error and continue for now. - otel_error!( - name: "BatchLogProcessor.InternalError", - error = format!("{}", err) + Err(RecvTimeoutError::Disconnected) => { + // Channel disconnected, only thing to do is break + // out (i.e exit the thread) + otel_debug!( + name: "BatchLogProcessor.ThreadExiting", + reason = "MessageReceiverDisconnected" ); + break; } } } diff --git a/opentelemetry-sdk/src/trace/span_processor.rs b/opentelemetry-sdk/src/trace/span_processor.rs index 822a3f32c1..51259896f5 100644 --- a/opentelemetry-sdk/src/trace/span_processor.rs +++ b/opentelemetry-sdk/src/trace/span_processor.rs @@ -319,9 +319,11 @@ impl BatchSpanProcessor { } } Err(RecvTimeoutError::Disconnected) => { - otel_error!( - name: "BatchSpanProcessor.InternalError.ChannelDisconnected", - message = "Channel disconnected, shutting down processor thread." + // Channel disconnected, only thing to do is break + // out (i.e exit the thread) + otel_debug!( + name: "BatchSpanProcessor.ThreadExiting", + reason = "MessageReceiverDisconnected" ); break; } From f787817c0b7f756c74f8b0d2bb0289e45b95470e Mon Sep 17 00:00:00 2001 From: Cijo Thomas Date: Mon, 23 Dec 2024 17:11:18 -0800 Subject: [PATCH 2/2] fix message --- opentelemetry-sdk/src/logs/log_processor.rs | 2 +- opentelemetry-sdk/src/metrics/periodic_reader.rs | 2 +- opentelemetry-sdk/src/trace/span_processor.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/opentelemetry-sdk/src/logs/log_processor.rs b/opentelemetry-sdk/src/logs/log_processor.rs index 98d07aba83..9d78383e8b 100644 --- a/opentelemetry-sdk/src/logs/log_processor.rs +++ b/opentelemetry-sdk/src/logs/log_processor.rs @@ -397,7 +397,7 @@ impl BatchLogProcessor { // out (i.e exit the thread) otel_debug!( name: "BatchLogProcessor.ThreadExiting", - reason = "MessageReceiverDisconnected" + reason = "MessageSenderDisconnected" ); break; } diff --git a/opentelemetry-sdk/src/metrics/periodic_reader.rs b/opentelemetry-sdk/src/metrics/periodic_reader.rs index 43bfd0912e..75afe29725 100644 --- a/opentelemetry-sdk/src/metrics/periodic_reader.rs +++ b/opentelemetry-sdk/src/metrics/periodic_reader.rs @@ -260,7 +260,7 @@ impl PeriodicReader { // out (i.e exit the thread) otel_debug!( name: "PeriodReaderThreadExiting", - reason = "MessageReceiverDisconnected" + reason = "MessageSenderDisconnected" ); break; } diff --git a/opentelemetry-sdk/src/trace/span_processor.rs b/opentelemetry-sdk/src/trace/span_processor.rs index 51259896f5..12b94d6d47 100644 --- a/opentelemetry-sdk/src/trace/span_processor.rs +++ b/opentelemetry-sdk/src/trace/span_processor.rs @@ -323,7 +323,7 @@ impl BatchSpanProcessor { // out (i.e exit the thread) otel_debug!( name: "BatchSpanProcessor.ThreadExiting", - reason = "MessageReceiverDisconnected" + reason = "MessageSenderDisconnected" ); break; }