Обозначение меток прометея для отображения общего количества запросов памяти и фактического использования kubernetes на одном графике - PullRequest
0 голосов
/ 12 января 2020

Моя цель - создать панель мониторинга, показывающую повторяющиеся графики - в основном, просто переменную множественного выбора в графане - общего количества запросов памяти / процессора для данного узла, а также фактическое использование памяти / процессора для этого узла.

Для суммирования общего количества запросов я использую запрос:

sum(kube_pod_container_resource_requests_memory_bytes{node="${node:pipe}"})

, где ${node:pipe} исходит из переменной в графане

и для получения фактического использования I use:

node_memory_MemTotal_bytes{instance="${node:pipe}"} - node_memory_MemFree_bytes{instance="${node:pipe}"}

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

Поскольку они поступают из разных источников первая имеет метку node, которая использует этот формат: ip-10-10-12-12.ec2.internal, а вторая имеет метку instance, которая выглядит следующим образом: 10.10.12.12:9100.

Между этими двумя понятиями существует четкая связь , но когда я использую мультиселектную метку в графане, я должен выбрать источник, из которого выбрать, в случае, если я выберу первый, второй не будет работать, если я не найду способ перевести.

Первый подход, который я попробовал s, чтобы создать дополнительную метку, используя функцию label_replace в promql. Это создало новую метку во втором метри c (с использованием регулярного выражения, основанного на метке "instance"), которая соответствовала формату первого метри c, но у меня не было возможности использовать ее, потому что прометей не позволяет чтобы отфильтровать результаты функции

Второй подход состоял в том, чтобы попытаться использовать директивы relaybel_configs в конфигурации prometheus. Моя попытка была такой:

...
  - source_labels: [instance]
    regex: ([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)
    replacement: ip-${1}-${2}-${3}-${4}.ec2.internal
    target_label: nodename
...

Хотя я явно ошибался, потому что это не сработало (возможно, я не добавил правильную работу, потому что не уверен, откуда эти показатели взяты из)

Можно ли как-нибудь исправить мои попытки, чтобы они работали? Или, возможно, более простой способ сделать то, что я пропустил?

...