Как я могу создать линейную диаграмму, используя значение метки в Prometheus / Grafana?

#prometheus #grafana

#prometheus #графана

Вопрос:

Обновление 1:

Я понимаю, что это не данные временных рядов. Цель состоит в том, чтобы избежать использования временной метки показателей, поскольку я хотел бы указать час в прошлом.

У меня есть некоторые показатели, которые показывают количество продуктов, произведенных за данный час.

 some_metric{"hour"="1" "product"="a"}  5
some_metric{"hour"="2" "product"="a"}  7
some_metric{"hour"="1" "product"="b"}  3
some_metric{"hour"="2" "product"="b"}  2
 

Первая метрика интерпретируется как 5 продукта «a», произведенного за час = 1

Теперь я хотел бы создать диаграмму в Grafana, которая использует час в качестве оси x, а значение метрики — в качестве оси y. В этом случае я бы ожидал две строки (каждая из которых представляет производство a и b соответственно) на одной и той же диаграмме.

Есть какие-либо подсказки?

Большое спасибо.

Ответ №1:

Прежде всего, вам нужно понять, что такое временные ряды.

Prometheus, являясь базой данных временных рядов, автоматически добавит временную метку к данным, когда она очистит конечную точку вашей метрики.

Другими словами, с Prometheus вы получите метку «час» бесплатно. Вы должны удалить метку «час» из своей метрики и не беспокоиться об этом при разработке схемы метрик.

Теперь перейдем к Grafana. Когда вы используете графическую панель Grafana для представления результата запроса Prometheus запроса PromQL, например:

 some_metric
 

По умолчанию Grafana помещает временную метку на ось X и рисует ДВЕ линии на основе значений «product»=»a» и значений «product» =»b», возвращаемых из запроса.

Другой способ объяснить:

Prometheus TSDB хранит ваши данные временных рядов в формате

 time series #1: some_metric{"product"="a"}  5@timestamp1, 7@timestamp2, ...
time series #2: some_metric{"product"="b"}  3@timestamp1, 2@timestamp2, ...
 

Когда Grafana запрашивает «some_metric» у Prometheus, Prometheus вернет 2 набора пар ключ-значение, один набор для «product» =»a» и один набор для «product» =»b», где ключом является timestamp1, timestamp2, …, а значением — количество ваших продуктов.

Я достаточно ясно выразился? Если нет, то вы можете ознакомиться с примером графика Графаны здесь. Нажмите на кнопку «Инспектор запросов», вы увидите, как выглядят фактические данные временных рядов, возвращаемые из запроса PromQL.

Комментарии:

1. Спасибо за ваше предложение. В этом случае цель состоит в том, чтобы избежать использования временной метки показателей, поскольку я хотел бы указать время в истории. Я понимаю, что это не данные временных рядов.

Ответ №2:

Вероятно, вам следует просто хранить свои данные в MySQL и использовать источник данных Grafana MySQL вместе с панелью таблиц Grafana.

https://grafana.com/docs/grafana/latest/datasources/mysql/#table-queries