Объединить метку переменной MIB с другим результатом запроса из двух других переменных MIB в Prometheus - PullRequest
0 голосов
/ 06 июня 2019

У нас есть ситуация, когда я хочу добавить метку переменной MIB в другой запрос. Этот другой запрос дает мне значение результата, которого я хочу, но мне нужно добавить метку из первой переменной, чтобы затем отсортировать их по тому, что я хочу (например, так же, как мы делаем это с instance метка).

1007 * Е.Г. *

variable1 {alert, env, index, instance, ..., labelneeded}

variable2 {alert, env, index, instance}

Например, там я хотел получить индекс обоих и как-то добавить метку, необходимую для Я попробовал следующие запросы, но они не сработали после того, как они дали мне обе переменные с их метками, но не объединили их вместе, поэтому мой вопрос: есть ли возможность объединить их вместе?

Пример запроса:

max by {index, instance} (variable2 * 5) or max(variable2) by (labelneeded, index, instance)

Заранее спасибо:).

1 Ответ

0 голосов
/ 06 июня 2019

Чтобы объяснить, как объединить метки ярлыков из двух метрик, я возьму общий случай:

  • a значение метрика value{instance="foo",a_label="bar"} 42
  • и информация метрика info{instance="foo",version="1.2.3",another="bar"} 1

Информационные метрики (например, версия, компилятор, ...) имеют значение 1, так что вы можете применять операторы между метриками:

value * on(instance) group_left(version) info

Результат

{instance="foo",a_label="bar",version="1.2.3"} 42

Параметр (ы) on() ключевое слово определяют критерии для сопоставления информации, а параметр (ы) group_left(), оператор указывают метки для тянуть.

Может случиться, что метрика, из которой вы хотите получить данные, не имеет значения 1. В этом случае вы можете использовать модификатор bool со сравнением, всегда равным true, чтобы получить 1:

other_metric{instance="foo",baz="void"} 0.5555
value * on(instance) group_left(baz) other_metric != bool NaN

Результат

{instance="foo",a_label="bar",baz="void"} 42
...