diff --git a/crates/client/src/telemetry.rs b/crates/client/src/telemetry.rs index 500aa528c298f335526c0ea4bb40ffdc4fa38829..6510cf6e3c818def6043c28d881810e9d016b617 100644 --- a/crates/client/src/telemetry.rs +++ b/crates/client/src/telemetry.rs @@ -365,7 +365,7 @@ impl Telemetry { telemetry::event!( "Editor Edited", duration = duration, - environment = environment.to_string(), + environment = environment, is_via_ssh = is_via_ssh ); } @@ -427,9 +427,8 @@ impl Telemetry { if state.flush_events_task.is_none() { let this = self.clone(); - let executor = self.executor.clone(); state.flush_events_task = Some(self.executor.spawn(async move { - executor.timer(FLUSH_INTERVAL).await; + this.executor.timer(FLUSH_INTERVAL).await; this.flush_events().detach(); })); } @@ -480,12 +479,12 @@ impl Telemetry { self: &Arc, // We take in the JSON bytes buffer so we can reuse the existing allocation. mut json_bytes: Vec, - event_request: EventRequestBody, + event_request: &EventRequestBody, ) -> Result> { json_bytes.clear(); - serde_json::to_writer(&mut json_bytes, &event_request)?; + serde_json::to_writer(&mut json_bytes, event_request)?; - let checksum = calculate_json_checksum(&json_bytes).unwrap_or("".to_string()); + let checksum = calculate_json_checksum(&json_bytes).unwrap_or_default(); Ok(Request::builder() .method(Method::POST) @@ -502,7 +501,7 @@ impl Telemetry { pub fn flush_events(self: &Arc) -> Task<()> { let mut state = self.state.lock(); state.first_event_date_time = None; - let mut events = mem::take(&mut state.events_queue); + let events = mem::take(&mut state.events_queue); state.flush_events_task.take(); drop(state); if events.is_empty() { @@ -515,7 +514,7 @@ impl Telemetry { let mut json_bytes = Vec::new(); if let Some(file) = &mut this.state.lock().log_file { - for event in &mut events { + for event in &events { json_bytes.clear(); serde_json::to_writer(&mut json_bytes, event)?; file.write_all(&json_bytes)?; @@ -542,7 +541,7 @@ impl Telemetry { } }; - let request = this.build_request(json_bytes, request_body)?; + let request = this.build_request(json_bytes, &request_body)?; let response = this.http_client.send(request).await?; if response.status() != 200 { log::error!("Failed to send events: HTTP {:?}", response.status());