diff --git a/router/src/main.rs b/router/src/main.rs index f4b7415b..e9c8fa3d 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -415,7 +415,7 @@ async fn main() -> Result<(), RouterError> { if let Some(ref ua) = user_agent { let start_event = - usage_stats::UsageStatsEvent::new(ua.clone(), usage_stats::EventType::Start); + usage_stats::UsageStatsEvent::new(ua.clone(), usage_stats::EventType::Start, None); tokio::spawn(async move { start_event.send().await; }); @@ -459,7 +459,7 @@ async fn main() -> Result<(), RouterError> { Ok(_) => { if let Some(ref ua) = user_agent { let stop_event = - usage_stats::UsageStatsEvent::new(ua.clone(), usage_stats::EventType::Stop); + usage_stats::UsageStatsEvent::new(ua.clone(), usage_stats::EventType::Stop, None); stop_event.send().await; }; Ok(()) @@ -469,13 +469,15 @@ async fn main() -> Result<(), RouterError> { if !disable_crash_reports { let error_event = usage_stats::UsageStatsEvent::new( ua.clone(), - usage_stats::EventType::Error(e.to_string()), + usage_stats::EventType::Error, + Some(e.to_string()), ); error_event.send().await; } else { let unknow_error_event = usage_stats::UsageStatsEvent::new( ua.clone(), - usage_stats::EventType::Error("unknow_error".to_string()), + usage_stats::EventType::Error, + Some("unknow_error".to_string()), ); unknow_error_event.send().await; } diff --git a/router/src/usage_stats.rs b/router/src/usage_stats.rs index 2b0ce579..8559ae90 100644 --- a/router/src/usage_stats.rs +++ b/router/src/usage_stats.rs @@ -34,20 +34,23 @@ impl UserAgent { pub enum EventType { Start, Stop, - Error(String), + Error, } #[derive(Debug, Serialize)] pub struct UsageStatsEvent { user_agent: UserAgent, event_type: EventType, + #[serde(skip_serializing_if = "Option::is_none")] + error_reason: Option, } impl UsageStatsEvent { - pub fn new(user_agent: UserAgent, event_type: EventType) -> Self { + pub fn new(user_agent: UserAgent, event_type: EventType, error_reason: Option) -> Self { Self { user_agent, event_type, + error_reason, } } pub async fn send(&self) {