diff --git a/ddtelemetry/src/worker/mod.rs b/ddtelemetry/src/worker/mod.rs index 77a9cb024..10830d99a 100644 --- a/ddtelemetry/src/worker/mod.rs +++ b/ddtelemetry/src/worker/mod.rs @@ -241,10 +241,10 @@ impl TelemetryWorker { Lifecycle(Start) => { if !self.data.started { self.deadlines - .schedule_event(LifecycleAction::FlushData) + .schedule_event(LifecycleAction::FlushMetricAggr) .unwrap(); self.deadlines - .schedule_event(LifecycleAction::FlushMetricAggr) + .schedule_event(LifecycleAction::FlushData) .unwrap(); self.data.started = true; } @@ -265,7 +265,7 @@ impl TelemetryWorker { .unwrap(); } Lifecycle(FlushData) => { - if !self.data.started { + if !(self.data.started || self.config.restartable) { return CONTINUE; } let batch = self.build_observability_batch(); @@ -296,7 +296,9 @@ impl TelemetryWorker { self.log_err(&e); } self.data.started = false; - self.deadlines.clear_pending(); + if !self.config.restartable { + self.deadlines.clear_pending(); + } return BREAK; } CollectStats(stats_sender) => { @@ -341,10 +343,10 @@ impl TelemetryWorker { Err(err) => self.log_err(&err), } self.deadlines - .schedule_event(LifecycleAction::FlushData) + .schedule_event(LifecycleAction::FlushMetricAggr) .unwrap(); self.deadlines - .schedule_event(LifecycleAction::FlushMetricAggr) + .schedule_event(LifecycleAction::FlushData) .unwrap(); self.data.started = true; } @@ -368,7 +370,7 @@ impl TelemetryWorker { .unwrap(); } Lifecycle(FlushData) => { - if !self.data.started { + if !(self.data.started || self.config.restartable) { return CONTINUE; } let mut batch = self.build_app_events_batch(); @@ -458,7 +460,9 @@ impl TelemetryWorker { .await; self.data.started = false; - self.deadlines.clear_pending(); + if !self.config.restartable { + self.deadlines.clear_pending(); + } return BREAK; } CollectStats(stats_sender) => {