From c3cefbc17006534107b5d83771c1dde98fc66ba5 Mon Sep 17 00:00:00 2001 From: Tamo Date: Tue, 2 Sep 2025 12:40:18 +0200 Subject: [PATCH] send the version when returning prometheus metrics --- crates/meilisearch/src/routes/metrics.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/meilisearch/src/routes/metrics.rs b/crates/meilisearch/src/routes/metrics.rs index 31abb93a7..99e44e132 100644 --- a/crates/meilisearch/src/routes/metrics.rs +++ b/crates/meilisearch/src/routes/metrics.rs @@ -8,6 +8,7 @@ use meilisearch_types::keys::actions; use meilisearch_types::tasks::Status; use prometheus::{Encoder, TextEncoder}; use time::OffsetDateTime; +use tracing::Instrument; use utoipa::OpenApi; use crate::extractors::authentication::policies::ActionPolicy; @@ -181,5 +182,12 @@ pub async fn get_metrics( let response = String::from_utf8(buffer).expect("Failed to convert bytes to string"); - Ok(HttpResponse::Ok().insert_header(header::ContentType(mime::TEXT_PLAIN)).body(response)) + // We cannot specify the version with ContentType(TEXT_PLAIN_UTF_8) so we have to write everything by hand :( + // see the following for what should be returned: https://prometheus.io/docs/instrumenting/content_negotiation/#content-type-response + let content_type = ("content-type", "text/plain; version=0.0.4; charset=utf-8"); + + Ok(HttpResponse::Ok() + // .insert_header(header::ContentType(mime::TEXT_PLAIN_UTF_8)) + .insert_header(content_type) + .body(response)) }