Оператор ' or' для тегов bosun в выражении
Я пишу выражение Bosun, чтобы получить количество ответов 2xx в сервисе, например:
ungroup(avg(q("sum:metric.name.hrsp_2xx{region=eu-west-1}", "1m", "")))
Вышеупомянутое выражение дает мне количество запросов 2xx выбранного региона (eu-west-1) за последнюю минуту, но я хотел бы получить количество запросов 2xx, которые произошли в 2 регионах (eu-west-1 и eu- центрально-1).
Этот показатель помечен как region
, У меня есть 4 региона в наличии.
Мне было интересно, возможно ли сделать операцию 'или' с тегами. Что-то вроде:
{region=or(eu-west-1,eu-central-1)}
Я проверил документацию, но я не могу найти ничего, чтобы достичь этого.
1 ответ
Поскольку q()
специфичен для запросов к OpenTSDB, он использует тот же синтаксис. Основной синтаксис для того, что вы поместите, будет использовать символ канала: ungroup(avg(q("sum:metric.name.hrsp_2xx{region=eu-west-1|eu-central-one}", "1m", "")))
,
Если у вас версия 2.2 установлена в true, вы также можете использовать более продвинутые функции фильтров, как описано в документации OpenTSDB (т.е. host=literal_or(web01|web02|web03)
). Основным преимуществом является то, что OpenTSDB добавил возможность агрегировать поднабор значений тегов вместо всех или ничего. Страница Graph в Bosun также помогает вам генерировать запросы для OpenTSDB.