Как использовать значения меток в запросах Прометея? - PullRequest
1 голос
/ 26 апреля 2019

Я хочу создать панель инструментов Grafana, показывающую свободную память, сгруппированную по размерам блоков друзей Linux.Node_exporter собирает информацию о buddy из ядра:

node_buddyinfo_blocks{node="0",size="0",zone="Normal"}  2474
node_buddyinfo_blocks{node="0",size="1",zone="Normal"}  2934
node_buddyinfo_blocks{node="0",size="2",zone="Normal"}  2743
node_buddyinfo_blocks{node="0",size="3",zone="Normal"}  1191
node_buddyinfo_blocks{node="0",size="4",zone="Normal"}  811
node_buddyinfo_blocks{node="0",size="5",zone="Normal"}  289
node_buddyinfo_blocks{node="0",size="6",zone="Normal"}  127
node_buddyinfo_blocks{node="0",size="7",zone="Normal"}  67
node_buddyinfo_blocks{node="0",size="8",zone="Normal"}  28
node_buddyinfo_blocks{node="0",size="9",zone="Normal"}  39
node_buddyinfo_blocks{node="0",size="10",zone="Normal"} 43474

Вместо того, чтобы отображать количество свободных блоков, количество блоков должно быть преобразовано в размер в байтах путем умножения количества блоков (значения метрики)с размером блока (полученным из метки размера):

blocks * 2 ^ size * PAGESIZE

Для этого расчета мне нравится использовать значение метки size и писать что-то вроде:

sum by (size) (node_buddyinfo_blocks) * (2 ^ size)

Есть ли способ реализовать этот запрос в Prometheus?

В качестве обходного пути десять запросов могут быть жестко запрограммированы для каждого размера собеседника.

...