i'm responsible for maintaining the Prometheus servers in our company. The metrics however are provided by the teams.
Is there a way to find out the number of time series stored in the Prometheus datadase? We are using the default LevelDB data storage. Эти значения нужны мне, чтобы узнать, нужно ли мне изменять настройки локального хранилища наших экземпляров Prometheus.
Спасибо за вашу помощь.
prometheus_tsdb_head_series
Просто потому, что я всегда забываю и должен гуглить это, и этот вопрос находится наверху. Согласно этому ответу , вероятно, будет разница между prometheus_tsdb_head_series
и count({__name__=~".+"})
из-за различий в том, что они считают «активным», но если у вас нет большой изменчивости в подсчете метрик, я бы рекомендовал prometheus_tsdb_head_series
потому что, если у вас много метрик, это намного быстрее выполнять запросы.
После дополнительных исследований и благодаря комментариям David.B я нашел решение, которое 'работает на меня' ™
Для нахождения количества временных рядов, хранящихся у Прометея, я использую эту команду в папке storage.local.path
:
ls -l {{{0...9},{a..f}}{{0...9},{a...f}} | grep -E "*.db$" | wc -l
Кроме того, в документации prometheus нашли некоторые метрики, которые могли бы помочь при решении проблем с памятью/оптимизацией.
Возможно, это не самый сложный способ, но он дал мне числа, которые я искал.
.Вы можете попробовать ({ name = ~ ". +"}) На консоли Prometheus, чтобы получить общий временной ряд
Как насчет count ({__ name __ = ~ ". +"})
?
Он возвращает количество временных рядов в базе данных. Я сравнил с количеством метрик, которые в настоящее время выставляет каждая цель путем ручного удаления, и оно соответствует ему +/- 10%. Я предполагаю, что разница связана с некоторыми целями, которые у меня были в прошлом, и теперь они отключены.
https://prometheusui.com:9090/status ---> Head Stats --> это даст вам полный статус.