From 80bbb94c1f65444169afad1f2fb19cbae189cdf4 Mon Sep 17 00:00:00 2001 From: ManyTheFish Date: Thu, 24 Jul 2025 18:32:27 +0200 Subject: [PATCH] feat(metrics): add personalization count to metrics endpoint - Add MEILISEARCH_PERSONALIZED_SEARCH_REQUESTS metric to track personalized searches - Increment metric directly in search analytics when personalization is used - Metric automatically exposed in /metrics endpoint for monitoring --- crates/meilisearch/src/metrics.rs | 5 +++++ crates/meilisearch/src/routes/indexes/search_analytics.rs | 2 ++ 2 files changed, 7 insertions(+) diff --git a/crates/meilisearch/src/metrics.rs b/crates/meilisearch/src/metrics.rs index 29c1aeae8..e7afc9b39 100644 --- a/crates/meilisearch/src/metrics.rs +++ b/crates/meilisearch/src/metrics.rs @@ -84,4 +84,9 @@ lazy_static! { "Meilisearch Task Queue Size Until Stop Registering", )) .expect("Can't create a metric"); + pub static ref MEILISEARCH_PERSONALIZED_SEARCH_REQUESTS: IntGauge = register_int_gauge!(opts!( + "meilisearch_personalized_search_requests", + "Meilisearch number of search requests with personalization" + )) + .expect("Can't create a metric"); } diff --git a/crates/meilisearch/src/routes/indexes/search_analytics.rs b/crates/meilisearch/src/routes/indexes/search_analytics.rs index e63027eed..5b43871ea 100644 --- a/crates/meilisearch/src/routes/indexes/search_analytics.rs +++ b/crates/meilisearch/src/routes/indexes/search_analytics.rs @@ -7,6 +7,7 @@ use serde_json::{json, Value}; use crate::aggregate_methods; use crate::analytics::{Aggregate, AggregateMethod}; +use crate::metrics::MEILISEARCH_PERSONALIZED_SEARCH_REQUESTS; use crate::search::{ SearchQuery, SearchResult, DEFAULT_CROP_LENGTH, DEFAULT_CROP_MARKER, DEFAULT_HIGHLIGHT_POST_TAG, DEFAULT_HIGHLIGHT_PRE_TAG, DEFAULT_SEARCH_LIMIT, @@ -201,6 +202,7 @@ impl SearchAggregator { // personalization if personalize.is_some() { ret.total_personalized = 1; + MEILISEARCH_PERSONALIZED_SEARCH_REQUESTS.inc(); } ret.highlight_pre_tag = *highlight_pre_tag != DEFAULT_HIGHLIGHT_PRE_TAG();