
Nik
24.01.2018
15:37:32
я убежден, что я что то делаюб не так

отделение
24.01.2018
15:37:38
если ты про рассылаемые сообщения говоришь

Nik
24.01.2018
15:38:01

Google

Nik
24.01.2018
15:39:17
может можно в rules заставить его передавать value тегом?

Paul
24.01.2018
15:39:18
0 - false, 1 - true

Andrew
24.01.2018
15:40:01
Это таблица в графане?
Ты ж вроде в алерту собирался вывести, не?

Nik
24.01.2018
15:40:31
Пока паралельно кручу графану

Andrew
24.01.2018
15:40:41
Какой-нибудь override ячейки не прокатит? Или это только в singlevalue работает ?

Nik
24.01.2018
15:41:01

Andrew
24.01.2018
15:42:07
Так стоп, изначально value - это значение метрики на которую взводится алерт, так?

Nik
24.01.2018
15:42:16

Andrew
24.01.2018
15:42:28
И вот это значение не передается в графану?
Какой там query сформирован, чтобы забирать эти поля?
Если вручную его выполнить, все получается?

Nik
24.01.2018
15:43:55

Google

Andrew
24.01.2018
15:47:14
А на мой вопрос есть рекомендации? А то я что-то туплю.

Nik
24.01.2018
15:47:47
я так делал

Andrew
24.01.2018
15:48:16
Только условие, эта переменная-переключатель не должна быть результатом запроса в базу :)
Т.е. это статически заданные варианты переменной, а именно - разные regexp-ы

Nik
24.01.2018
15:48:35
Бекенд за графаной у тебя кто?

Andrew
24.01.2018
15:48:49
Которые я потом пихать могу в regex соседнего template
Пром

Nik
24.01.2018
15:49:09
Ну сморти
первой переменной у меня хост type
он явно прописан в имени хоста

Andrew
24.01.2018
15:49:34
Суть в чем - я хочу не плодить разные дашборды, а на одном сделать toggle с группами хостов, а вторая переменная соответственно - список хостов на основе выбранной группы.

Nik
24.01.2018
15:49:46
А второй перменной имя хоста - и там используется предидущаяя переменная для фильтрации в regexp
Умные люди интегрятся с консулом как то
Но если у тебя тип хоста прописан в имени хоста - то можно проще

Andrew
24.01.2018
15:50:30
Ну у меня пока нет консула и добавлять его пока не хочется.
В том-то и дело, что типа хоста/группы нет в labels у Прома

Nik
24.01.2018
15:50:56

Andrew
24.01.2018
15:51:09
есть только instance, но на основе hostname - не всегда можно делать вывод о том, к какой групппе он принадлежит.

Google

Nik
24.01.2018
15:51:10
Например.
У меня хосты dc1smp1 dc1web1 dc1back1
и так до 9
dc1smp9 dc1web9 dc1back9
И я делаю фильтр по smp/web/back
и потом по этому фильтру в регекспе оставляю только нужные хосты

Andrew
24.01.2018
15:53:02
Вот!
А как ты фильтруешь?
Чтобы юзер мог на даше выбрать этот вариант фильтра.

Nik
24.01.2018
15:53:45
Во второй переменной использую первую

Andrew
24.01.2018
15:54:36
Так, я понял, ща соображу.

Andrew
24.01.2018
15:54:46

Nik
24.01.2018
16:00:58

Andrew
24.01.2018
16:05:43
Блин нет, так не выйдет все же.
У меня нельзя из hostname инстанса получить однозначно его тип.
Т.е. несколько разных hostname-ов могу относится к одной группе. А при таком способе, мы не можем получить уникальное значение после фильтрации, чтобы использовать его уже в regex-е соседнего шаблона.

Nik
24.01.2018
16:06:18
МОжет на нем определенный джоб
можно регексп + фильтр на джоб

Andrew
24.01.2018
16:07:56
То что содержится колонках Прома - ничего.
Включая джоб - джобы одинаковые везде...
Почему блин нет возможности создать переменную, которая будет содержать выбранное значение - заданное вручную, НО при этом чтобы был маппинг того что отображается в выпадаемом списке в конечное значение.
Типа:
host_group var:
type_1 = /regex1/
type_2 = /regex2/
и тд

Google

Nik
24.01.2018
16:09:51
можно подкрашивать на scrape_config
просто раскидай хосты на разные группы. И задай джобы с немного разным именем. job_a/job_b и так далее
экспортеры у тебя все стандартные и одинаковые на всех хостах?

Andrew
24.01.2018
16:12:04
Ага.
Ну да, походу придется это разруливать либо на уровне разных джобов, либо делать какой-то relabel умный.
Например добавлять label новый, на основе уже сложных фильтров-regex-ов instance-а
Nik, спасибо за продуктивный диалог, реально помог прийти к решению :)

Alexander
24.01.2018
16:19:58
Кто то знает как работает aliasSub() в carbonapi ? Он явно не совместим с реализацией в графите\

Nik
24.01.2018
16:20:14

Sergey
24.01.2018
16:21:03

Alexander
24.01.2018
16:23:00
maximumBelow(aliasSub(sortByName(cloudXX.OS_metrics.cloudXX*.$XX_nodes.mysql-database.mysql_commands-*), '.*\.(.*)\.mysql-database\.mysql_commands-(.*)', ' \1 - \2'), 10000)

Admin
ERROR: S client not available

Alexander
24.01.2018
16:23:14
в графите такой экспрешен работает отлично
в карбонапи не работает

Vladimir
24.01.2018
16:27:58
там есть один мелкий баг, который надо отловить, как раз связанный с "-"
но кроме этого с совместимостью ничего нельзя сделать
все идет от того что в graphite-web - pcre, а в Go - re2-like реализация

Sergey
24.01.2018
16:28:45

Vladimir
24.01.2018
16:28:54
с минусом конкретно бага, он почему-то ломает подстановки
я пока не смотрел

Google

Alexander
24.01.2018
16:31:28
т.е. совет - избавиться от минуса?
Я кстати понял почему не работало applyByNode
судя по issues только в master asPercent начал работать нормально
а у меня эта функция как один из аргументов использовался
@Civiloid может текущий carbonapi протеггировать каким нибудь 0.8.1 релизом?

Vladimir
24.01.2018
17:30:43
И вообще я думаю нумерацию сменить

Nklya
24.01.2018
17:32:37
На 2018.01 ?))

Vladimir
24.01.2018
17:46:24
Хз
Мб будет подобие semver

Sergey
24.01.2018
17:46:49

Vladimir
24.01.2018
17:47:52

Sergey
24.01.2018
17:48:02

Vladimir
24.01.2018
17:48:15
Поэтому вероятно будет 0.8.20180124

Alexander
24.01.2018
17:50:54

Alexander
24.01.2018
18:00:40

Vladimir
24.01.2018
18:00:55
И это тока до 1.0
https://github.com/go-graphite/carbonapi/blob/master/COMPATIBILITY.md
Хотя кажется fallback есть в мастере

Alexander
24.01.2018
18:03:38
мда, не мало

Vladimir
24.01.2018
18:04:48
Там самое сложное это map и reduce