
Ivan
28.09.2018
11:58:36
здесь то, что мне нужно, называется service_name
вот нашёл что то:
https://github.com/prometheus/prometheus/blob/master/docs/configuration/template_examples.md

Google

Ivan
28.09.2018
12:12:01
Display one value
{{ with query "some_metric{instance='someinstance'}" }}
{{ . | first | value | humanize }}
{{ end }}
такой формат я ещё не пробовал
попробую приладить к своему случаю

Andor
28.09.2018
12:13:00
Это запрос в прометей из алерта в прометее

Ivan
28.09.2018
12:28:07
да пофигу. это же гошный пемплэйт а значит дожен быть применим.

Stanislav
28.09.2018
12:28:20

Ivan
28.09.2018
12:28:43
а подскажите, query это управляющее слово или мне вместо него надо своё что то подставлять?

Pavel
28.09.2018
12:29:13

Ivan
28.09.2018
12:29:55

Pavel
28.09.2018
12:32:28

Terminator
28.09.2018
12:36:30
@Banzayy будет жить. Поприветствуем!

Ivan
28.09.2018
12:38:15
так.
{{ with . }}
{{ .Labels | service_name | value }}
{{ end }}
не прокатило. алертменеджер падает с ошибкой:
err="template: default.tmpl:44: function \"service_name\" not defined"

Andor
28.09.2018
12:40:50
Потому что нет такой функции

Google

Andor
28.09.2018
12:41:27
Ты пробовал .CommonLabels.service_name?

Ivan
28.09.2018
12:42:31
это я уже понял.
хотя я ожидал другого поведения. в мануале обещался выбор элемента массива а не функция.
нет, ещё не пробовал.
а как её вписать?
прям так? {{ .CommonLabels.service_name }}
или
{{ range . }}
{{ .CommonLabels.service_name }}
{{ end }}
?

Andor
28.09.2018
12:44:24
При чём тут range?
Это же мапа, а не список
Типы же в документации описаны

Ivan
28.09.2018
12:45:21

Andor
28.09.2018
12:46:07
Где ты там увидел что это будет выбор элемента?

Ivan
28.09.2018
12:47:11
В каком мануале?
написано же:
Display one value
{{ with query "some_metric{instance='someinstance'}" }}
{{ . | first | value | humanize }}
{{ end }}
т.е. какбэ first подразумевает элемент массива а не функцию.
хотя за эти два дня я уже ничему не удивляюсь - либо в этих мануалах пишут, что хотят, либо я вообще ничего не понимаю.

Andor
28.09.2018
12:48:37
first - функция

Ivan
28.09.2018
12:52:00
а ,ну тогда ок.
тогда какое отношение Display one value имеет к этой функции - для меня загадка.
я то думал, что Display one value - это вывод одного из значений. а значит, надо бы указать, какого именно значения вывод мы хотим получить.
но если так - то ладно. буду искать другой способ.

Andor
28.09.2018
12:52:48
Вывести значение полученное из запроса
Чо непонятного?
При отрисовке шаблона в прометее есть возможность сделать дополнительный запрос и вывести его результат как ты сам хочешь
К твоей задаче это не имеет отношения

Ivan
28.09.2018
12:56:09

Andor
28.09.2018
12:56:25
Wonderful

Google

Andor
28.09.2018
12:59:13
{{ define "__subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .GroupLabels.SortedPairs.Values | join " " }} {{ if gt (len .CommonLabels) (len .GroupLabels) }}({{ with .CommonLabels.Remove .GroupLabels.Names }}{{ .Values | join " " }}{{ end }}){{ end }}{{ end }}
По-моему из этого примера должно быть понятно, что надо сделать

Ivan
28.09.2018
13:06:14
пытаюсь понять.
пока не понятно, какую роль играет
{{ .GroupLabels.SortedPairs.Values | join " " }}

Andor
28.09.2018
13:06:56
Выводит значения лейблов, по которым сработала группировка в алертменеджере
https://prometheus.io/blog/2016/03/03/custom-alertmanager-templates/
https://prometheus.io/docs/alerting/notification_examples/

Ivan
28.09.2018
13:10:39
т.е. это самостоятельная конструкция?
это выражение мне знакомо - это же дефолтная тема письма.
но в итоге в теме письма приходит только [FIRING:1]
т.е. срабатывает только одна часть - [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]
а остальная - либо не срабатвывает, либо на выходе даёт пустоту
а вообще сейчас попробую засунуть это всё в тело письма ))

Andor
28.09.2018
13:14:27
Ну у тебя группировки нет, значит груп лейблов тоже нет

Terminator
28.09.2018
13:30:13
Oleksandr Horodnychenko будет жить. Поприветствуем!

Ivan
28.09.2018
13:31:55
что то почта перестала ходить вообще. походу почтовик лёг ))
эксперименты откладываются ))

Andor
28.09.2018
13:33:09
Чтобы послать письмо тебе нужен какой-то особый почтовик?
Подними постфикс на хосте с алертменеджером и шли почту на root@localhost

Ivan
28.09.2018
13:34:40
конечно.
алертменеджер крутится в кубе в изолированной сети.
оттуда открыт один порт к корпоративному почтовику, через него он и шлёт.
да ну. с этим постфиксом геммороя столько... думаю с корпоративным быстрее разберусь ))

Google

Admin
ERROR: S client not available

Andor
28.09.2018
13:38:18
Лол
Прям куча геморроя, взять и поставить

Ivan
28.09.2018
13:44:49
поставить не проблема. его же ещё настраивать надо.
я как-то настраивал постфикс - заколебался.
потом алертменеджер перенастраивать на него.
а так оказалось почтовик перезагружали, вот он и недоступен был.
сходил за кофе и можно дальше работать )))

Bogdan (SirEdvin)
28.09.2018
13:52:25
В целом, у кого-то стоит в проде 2.4.2?) Как оно?

Andor
28.09.2018
13:55:30
Проблем не обнаружено

Ivan
28.09.2018
14:18:40
всё. замучал я алертменеджер )))
он начал гнать по полной )))
последние 5 писем прислал по дефолтному шаблону (который изначально с ним шёл в комплекте), несмотря на то, что я его как раз и редактирую.
удалил этот default.tmpl - он всё равно прислал стандартное письмо.
я так понимаю, что больше я от него ничего вменяемого сегодня не добьюсь )))

Andor
28.09.2018
14:19:16
Не стоит алгоритмам припысывать чувства

Ivan
28.09.2018
14:19:59
да какие тут чувства. обычный баг ))

Andor
28.09.2018
14:20:45
Который проявляется только у тебя?

Ivan
28.09.2018
14:22:06
конфиг default.tmpl при этом в данный момент выглядит так:
и на его редактирование реакции ноль - письмо приходит как показано выше )))
при этом весь день реакция на изменение конфига была. хреновая - но была.
а теперь пропала )))

Andor
28.09.2018
14:27:36
Значит ты где-то ошибся
В магию я не верю

Ivan
28.09.2018
14:28:10
Который проявляется только у тебя?
да я бы и сам не отказался, если бы у меня с первого раза вытащился один элемент из массива и все эти двухдневные изрвращённые совокупления с алертменеджером отсутствовали

Andor
28.09.2018
14:28:53
Надо всего лишь документацию посмотреть

Ivan
28.09.2018
14:29:02
В магию я не верю
да я тоже. но есть под. есть конфигмап. под я удаляю при изменении конфигмапа, чтобы он пересоздался и к нему подцепился новый конфигмап

Google

Ivan
28.09.2018
14:29:31
внутри пода файл default.tmpl с конфигмапом совпадает

Andor
28.09.2018
14:29:35
Значит не подцепился
Либо контент не тот что должен быть
В этом файле должны быть темплейты, я их что-то не особо наблюдаю

Ivan
28.09.2018
14:37:37
логично. я же их потёр. и заменил на свои.

Andor
28.09.2018
14:40:37
Не вижу в этом файле никаких темплейтов
Значит используется дефолтный

M
28.09.2018
15:21:46
ребят а можно в blackbox_exporter возвращать fail если ответ не json