@metrics_ru

Страница 653 из 681
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
да пофигу. это же гошный пемплэйт а значит дожен быть применим.

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?

Это же мапа, а не список

Типы же в документации описаны

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
Ты пробовал .CommonLabels.service_name?
попробовал {{ .CommonLabels.service_name }} и {{ with . }} {{ .CommonLabels.service_name }} {{ end }} пришло пустое письмо

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

Страница 653 из 681