From 0e6394fafcbc90aaad5d60863aeafcf925154c27 Mon Sep 17 00:00:00 2001 From: Tamo Date: Wed, 16 Nov 2022 16:08:21 +0100 Subject: [PATCH] add analytics on the task route * Add all the missing fields of the new task query type * Create a new analytics for the task deletion * Create a new analytics for the task creation --- meilisearch-http/src/routes/tasks.rs | 56 +++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/meilisearch-http/src/routes/tasks.rs b/meilisearch-http/src/routes/tasks.rs index 0c48987fc..3419e6e8a 100644 --- a/meilisearch-http/src/routes/tasks.rs +++ b/meilisearch-http/src/routes/tasks.rs @@ -442,8 +442,9 @@ pub struct TaskDeletionOrCancelationQuery { async fn cancel_tasks( index_scheduler: GuardedData, Data>, - req: HttpRequest, params: web::Query, + req: HttpRequest, + analytics: web::Data, ) -> Result { let query = params.into_inner().validate()?; let TaskDeletionOrCancelationQuery { @@ -459,6 +460,24 @@ async fn cancel_tasks( }, } = query; + analytics.publish( + "Tasks Canceled".to_string(), + json!({ + "filtered_by_uid": uids.is_some(), + "filtered_by_index_uid": index_uids.is_some(), + "filtered_by_type": types.is_some(), + "filtered_by_status": statuses.is_some(), + "filtered_by_canceled_by": canceled_by.is_some(), + "filtered_by_before_enqueued_at": before_enqueued_at.is_some(), + "filtered_by_after_enqueued_at": after_enqueued_at.is_some(), + "filtered_by_before_started_at": before_started_at.is_some(), + "filtered_by_after_started_at": after_started_at.is_some(), + "filtered_by_before_finished_at": before_finished_at.is_some(), + "filtered_by_after_finished_at": after_finished_at.is_some(), + }), + Some(&req), + ); + let query = Query { limit: None, from: None, @@ -495,8 +514,9 @@ async fn cancel_tasks( async fn delete_tasks( index_scheduler: GuardedData, Data>, - req: HttpRequest, params: web::Query, + req: HttpRequest, + analytics: web::Data, ) -> Result { let TaskDeletionOrCancelationQuery { common: TaskCommonQuery { types, uids, canceled_by, statuses, index_uids }, @@ -511,6 +531,24 @@ async fn delete_tasks( }, } = params.into_inner().validate()?; + analytics.publish( + "Tasks Deleted".to_string(), + json!({ + "filtered_by_uid": uids.is_some(), + "filtered_by_index_uid": index_uids.is_some(), + "filtered_by_type": types.is_some(), + "filtered_by_status": statuses.is_some(), + "filtered_by_canceled_by": canceled_by.is_some(), + "filtered_by_before_enqueued_at": before_enqueued_at.is_some(), + "filtered_by_after_enqueued_at": after_enqueued_at.is_some(), + "filtered_by_before_started_at": before_started_at.is_some(), + "filtered_by_after_started_at": after_started_at.is_some(), + "filtered_by_before_finished_at": before_finished_at.is_some(), + "filtered_by_after_finished_at": after_finished_at.is_some(), + }), + Some(&req), + ); + let query = Query { limit: None, from: None, @@ -577,9 +615,17 @@ async fn get_tasks( analytics.publish( "Tasks Seen".to_string(), json!({ - "filtered_by_index_uid": index_uids.as_ref().map_or(false, |v| !v.is_empty()), - "filtered_by_type": types.as_ref().map_or(false, |v| !v.is_empty()), - "filtered_by_status": statuses.as_ref().map_or(false, |v| !v.is_empty()), + "filtered_by_uid": uids.is_some(), + "filtered_by_index_uid": index_uids.is_some(), + "filtered_by_type": types.is_some(), + "filtered_by_status": statuses.is_some(), + "filtered_by_canceled_by": canceled_by.is_some(), + "filtered_by_before_enqueued_at": before_enqueued_at.is_some(), + "filtered_by_after_enqueued_at": after_enqueued_at.is_some(), + "filtered_by_before_started_at": before_started_at.is_some(), + "filtered_by_after_started_at": after_started_at.is_some(), + "filtered_by_before_finished_at": before_finished_at.is_some(), + "filtered_by_after_finished_at": after_finished_at.is_some(), }), Some(&req), );