Как я могу сгруппировать метки в запросе Прометея?
Если у меня есть метрика со следующими метками:
my_metric{group="group a"} 100
my_metric{group="group b"} 100
my_metric{group="group c"} 100
my_metric{group="misc group a"} 1
my_metric{group="misc group b"} 2
my_metric{group="misc group c"} 1
my_metric{group="misc group d"} 1
Можно ли сделать запрос или даже label_replace
что объединяет группы "разное" вместе?
(Я понимаю, что количество элементов метрики должно быть улучшено, и я обновил приложение, чтобы исправить это. Однако у меня остался этот вопрос, если я хочу исправить показатели через запрос позже)
2 ответа
Да, вы можете использовать метку замены, чтобы сгруппировать все разное:
sum by (new_group) (
label_replace(
label_replace(my_metric, "new_group", "$1", "group", ".+"),
"new_group", "misc", "group", "misc group.+"
)
)
Внутренний label_replace копирует все значения из группы в new_group, внешний перезаписывает те, которые соответствуют "misc group.+" С "misc", и затем мы суммируем по метке "new_group". Причиной использования нового ярлыка является то, что серия перестала бы быть уникальной, если бы мы просто переписали ярлык "группа", и сумма не сработала бы.
Вы можете использовать запрос регулярного выражения:
my_metric{group=~"misc group.+"}
Это даст вам все, где group
начинается с "misc group".