From 4cce3b4a01c4ab19c2a0dd44d4159198bb9e38f7 Mon Sep 17 00:00:00 2001 From: Shahar Mike Date: Thu, 14 Dec 2023 14:41:25 +0200 Subject: [PATCH] feat(server): Better reporting of per-type memory in `/metrics` (#2303) --- src/server/server_family.cc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/server/server_family.cc b/src/server/server_family.cc index deff74fc9..16869165b 100644 --- a/src/server/server_family.cc +++ b/src/server/server_family.cc @@ -878,13 +878,18 @@ void PrintPrometheusMetrics(const Metrics& m, StringResponse* resp) { total += db_stats; } - for (unsigned type = 0; type < total.memory_usage_by_type.size(); type++) { - size_t mem = total.memory_usage_by_type[type]; - if (mem > 0) { - AppendMetricWithoutLabels( - absl::StrCat("type_used_memory_", CompactObj::ObjTypeToString(type)), "", mem, - MetricType::GAUGE, &resp->body()); + { + string type_used_memory_metric; + AppendMetricHeader("type_used_memory", "Memory used per type", MetricType::GAUGE, + &type_used_memory_metric); + for (unsigned type = 0; type < total.memory_usage_by_type.size(); type++) { + size_t mem = total.memory_usage_by_type[type]; + if (mem > 0) { + AppendMetricValue("type_used_memory", mem, {"type"}, {CompactObj::ObjTypeToString(type)}, + &type_used_memory_metric); + } } + absl::StrAppend(&resp->body(), type_used_memory_metric); } // Stats metrics