
GithubReleases
19.06.2018
18:08:24
prometheus/prometheus was tagged: 2.3.1 / 2018-06-19
Link: https://github.com/prometheus/prometheus/releases/tag/v2.3.1
Release notes:
* [BUGFIX] Avoid infinite loop on duplicate NaN values. [#4275](https://github.com/prometheus/prometheus/pull/4275)
* [BUGFIX] Fix nil pointer deference when using various API endpoints [#4282](https://github.com/prometheus/prometheus/pull/4282)
...
More

Andor
19.06.2018
18:13:40
о, можно в прод

Алексей
19.06.2018
18:14:09

Andor
19.06.2018
18:14:44
я ваще на 2.1.0 до сих пор

Google

Andrey
19.06.2018
18:25:27

Nklya
19.06.2018
18:28:02
2.0 вышел прошлой осенью ещё

Andor
19.06.2018
18:51:43
ваще переход с 1.х на 2.0 был самый болезненный
потому что сломали формат сторейжа

Artem
20.06.2018
03:09:58

Alexander
20.06.2018
06:55:27
Ребят, может подскажите, кт ото встречался с такими ошибками?
carbon-c-relay[17302]: 2018-06-19 04:12:42] accept failed[2018-06-19 04:12:42] accept failed[2018-06-19 04:12:42] accept failed[2018-06-19 04:12:42] ac
си релей - форкнутый на libevent


Andrey Zakharov
20.06.2018
07:16:13
Всем привет , подскажите пожалуйста кто использовал python клиент прометеуса - как там можно метрики удалить из выдачи вебсервером ?
тоесть например я определяю метрику и набор лейблов для неё :
tarantool_box_info_replication_lag = Gauge('tarantool_box_info_replication_lag', 'replication lag information', ['cluster_uuid', 'server_uuid',
'server_id', 'replication_status'])
потом в цикле это всё заполняю , и допустим у меня появляются метрики вида :
tarantool_box_info_replication_lag{cluster_uuid="9e863bc9-d8d5-4eda-ac0d-2808a7c90a6d",replication_status="follow",server_id="1",server_uuid="8fa58cff-1f2d-41dd-a605-a555622609cb"} 0.0
tarantool_box_info_replication_lag{cluster_uuid="9e863bc9-d8d5-4eda-ac0d-2808a7c90a6d",replication_status="disconnected",server_id="1",server_uuid="8fa58cff-1f2d-41dd-a605-a555622609cb"} 0.0
tarantool_box_info_replication_lag{cluster_uuid="9e863bc9-d8d5-4eda-ac0d-2808a7c90a6d",replication_status="stopped",server_id="1",server_uuid="8fa58cff-1f2d-41dd-a605-a555622609cb"} 0.0
Проблема в том , что на этом примере 3 метрики (а хочется видеть 1 , с текущим состоянием репликации) , я так понял что из за того что для клиента прометеуса одна и та же метрика с разным набором лейблов - это по сути разные метрики. И вот встал вопрос - как правильно удалить их (если это вобще возможно)


Paul
20.06.2018
07:18:27
Всем привет , подскажите пожалуйста кто использовал python клиент прометеуса - как там можно метрики удалить из выдачи вебсервером ?
тоесть например я определяю метрику и набор лейблов для неё :
tarantool_box_info_replication_lag = Gauge('tarantool_box_info_replication_lag', 'replication lag information', ['cluster_uuid', 'server_uuid',
'server_id', 'replication_status'])
потом в цикле это всё заполняю , и допустим у меня появляются метрики вида :
tarantool_box_info_replication_lag{cluster_uuid="9e863bc9-d8d5-4eda-ac0d-2808a7c90a6d",replication_status="follow",server_id="1",server_uuid="8fa58cff-1f2d-41dd-a605-a555622609cb"} 0.0
tarantool_box_info_replication_lag{cluster_uuid="9e863bc9-d8d5-4eda-ac0d-2808a7c90a6d",replication_status="disconnected",server_id="1",server_uuid="8fa58cff-1f2d-41dd-a605-a555622609cb"} 0.0
tarantool_box_info_replication_lag{cluster_uuid="9e863bc9-d8d5-4eda-ac0d-2808a7c90a6d",replication_status="stopped",server_id="1",server_uuid="8fa58cff-1f2d-41dd-a605-a555622609cb"} 0.0
Проблема в том , что на этом примере 3 метрики (а хочется видеть 1 , с текущим состоянием репликации) , я так понял что из за того что для клиента прометеуса одна и та же метрика с разным набором лейблов - это по сути разные метрики. И вот встал вопрос - как правильно удалить их (если это вобще возможно)
а вы не можете отфильтровать нужную вам метрику прямо в запросе?


Andrey Zakharov
20.06.2018
07:23:48
а вы не можете отфильтровать нужную вам метрику прямо в запросе?
тоже сначала так хотел сделать , но это не совсем правильно как мне кажется
сейчас немного поподробнее опишу :
допустим в какой то момент времени реплика находится в статусе follow - соотв. для неё создастся такая метрика с лейблом :
tarantool_box_info_replication_lag{replication_status="follow"} 0.0
затем , предположим что начались какие то сетевые проблемы , и реплика перешла в статус disconnected , тогда при обращении к бд экспортер создаст следующую метрику с набором лейблов :
tarantool_box_info_replication_lag{replication_status="disconnected"} 0.0
при этом предыдущая метрика она останется (что вобщем то не совсем правильно , т.к состояние бд уже не follow а disconnected)
далее происходит попытка переподключится к мастеру и допустим попытка была неудачной , реплика переходит в состояние stopped , экспортер создаст метрику с лейблом :
tarantool_box_info_replication_lag{replication_status="stopped"} 0.0
При этом все предыдущие метрики сохранятся(что не правильно) , и при обращении к экспортеру он будет отдавать чтото вида :
tarantool_box_info_replication_lag{replication_status="follow"} 0.0
tarantool_box_info_replication_lag{replication_status="disconnected"} 0.0
tarantool_box_info_replication_lag{replication_status="stopped"} 0.0
а ну и соотв, в прометеусе условие алерта запрос вида :
tarantool_box_info_replication_lag{status!~"follow"}
даже после того как реплика реально восстановится - продолжатся отдаваться disconnected и stopped из за чего алерт не закроется


Bogdan (SirEdvin)
20.06.2018
07:40:00
Удалить метрику только как-то так: https://gitlab.com/SirEdvin/docker-prometheus-exporter/blob/master/app.py#L80 нормального пути я не видел

Google

Bogdan (SirEdvin)
20.06.2018
07:40:26
То есть чисто пересобрать список метрик

Paul
20.06.2018
07:47:37


Alexey
20.06.2018
07:49:46

Andrey Zakharov
20.06.2018
07:50:26

Bogdan (SirEdvin)
20.06.2018
08:06:40
спасибо
Но как вам написали, лучше ничего не удалять и просто писать ноль, а в условие алерта добавить >0

Alexander
20.06.2018
08:21:36

Alexey
20.06.2018
08:32:56

Alexander
20.06.2018
08:34:33
на 2.6. именно эту проблему и поймали - если резкий всплеск метрик случается дропы, форк как раз эту проблему исправил.

Andrey
20.06.2018
08:54:00
привет. подскажите по части prometheus: group в alert rule идеологически для чего предназначены? для того чтобы роутить удобнее было?

Sergey
20.06.2018
09:03:38
а новый релей Владимира не пробовали? https://github.com/go-graphite/gorelka
и тут в чатике полгода назад уже писали конкретный билд carbon-c-relay который вроде как стабилен

Alexander
20.06.2018
09:05:52

Andrey Zakharov
20.06.2018
09:06:14

Sergey
20.06.2018
09:06:20
Владимир - в статусе швейцарца :)

Andor
20.06.2018
09:07:14

Andrey Zakharov
20.06.2018
09:08:16
да

Bogdan (SirEdvin)
20.06.2018
09:08:58

Sergey
20.06.2018
09:09:19
это страшный подход - динамические метрики :)

Bogdan (SirEdvin)
20.06.2018
09:09:34
Ну, для докер контейнеров я ничего другого не придумал.

Google

Bogdan (SirEdvin)
20.06.2018
09:09:47
Опять же таки, если сущность пропадает - метрики для нее надо удалять

Sergey
20.06.2018
09:10:04
ну для контейнеров это норма, потому что сама сущность такая

Andrey Zakharov
20.06.2018
09:10:34

Sergey
20.06.2018
09:10:42
я про то что выше по треду (если правильно понял) там то сущности фиксированные но состояния меняются

Andrey Zakharov
20.06.2018
09:10:54

Bogdan (SirEdvin)
20.06.2018
09:12:07

Sergey
20.06.2018
09:12:15
с промом тут лучше другие подскажут, в графите это либо 3 метрики с 0-1 либо одна с 3 значениями (зависит от переходов)

Bogdan (SirEdvin)
20.06.2018
09:12:29
Что-то вроде:
Gauge - запущена ли репликация
Counter - количество ошибок

Andrey Zakharov
20.06.2018
09:12:58
тогда мне нужно будет держать маппинг состояние реплики - значение в коде экспортера
хотелось бы этого избежать

Alexey
20.06.2018
09:19:04

Alexey
20.06.2018
09:26:54

Sergey
20.06.2018
09:33:52
вариант с заворачиванием состояний в один показатель лучше - если у вас сервис не занят постоянными переходами из одного состояния в другой - такое все же лучше логами держать
можно наверное кстати запуск и окончание репликации 2 метриками с типом каунтер писать - тогда аггрегация по данной метрике будет иметь смысл - количество репликаций за неделю например :)

Алексей
20.06.2018
09:42:04
> Hello, my name is Anais Dotis-Georgiou, and I’m a new Influxer.
они там в инфлюксе как гугл. но инфлюксеры.

Andrey Zakharov
20.06.2018
09:43:55

Andor
20.06.2018
09:43:58
influx reliability engineer

Andrey Zakharov
20.06.2018
09:46:03
интересно только что будет когда достигнет максимального значения

Детсад
20.06.2018
09:52:15
Кто-нибудь собирал метрики с каких-нибудь скриптов в prometheus? Допустим у меня есть скрипт, который обрабатывает файлы раз в 10 минут например и я хочу иметь статистику по файлам и их содержимому. И вроде как планирую использовать для этого prometheus push gateway. Prometheus собирает данные раз в минуту скажем. Получается мне надо либо обнулять все данные раз в минуту скриптом в надежде на то, что prometheus их собрал (именно обнулять, а не удалять насколько я понимаю и именно все счетчики со всеми возможными значениями меток). То есть например если я в метке метрики использую информацию из файла, но заранее не знаю всех возможных значений, то я в пролете?

Google

Единорожа
20.06.2018
09:52:36
nodeexporter file collector

Andor
20.06.2018
09:52:52
тебе нужен textfile collector
pushgateway - ниочинь

Детсад
20.06.2018
09:55:00
Ну то есть решение на самом деле - персистить метрики на клиенте и только так можно добиться нормальной совместимости с моделью сбора метрик prometheus?

Andor
20.06.2018
09:55:50
¯\_(ツ)_/¯

Sergey
20.06.2018
10:06:33

Andrey Zakharov
20.06.2018
10:06:53
1.7976931348623157e+308
да это наверное очень много )

Admin
ERROR: S client not available

Andrey Zakharov
20.06.2018
10:08:10
я всётаки надеюсь что мы не вымрем

Bogdan (SirEdvin)
20.06.2018
10:08:15
Проблема в том, что там начнутся ошибки округления и пропуски сначала единиц, потом десятков и так далее
Это уже можно назвать переполнением и это не так то далеко

Алексей
20.06.2018
10:08:41

Sergey
20.06.2018
10:09:10
пусть зависит, нам есть чем гордится, мы стояли у истоков :)

Bogdan (SirEdvin)
20.06.2018
10:09:24
Просто число не влезет в мантиссу и начнутся проблемы, как я понимаю.

Sergey
20.06.2018
10:09:42
побежал отливать в мраморе последние 10 сообщений
ну учитывая что репликация идет не каждую секунду...а то и не каждую неделю

Алексей
20.06.2018
10:11:54

Bogdan (SirEdvin)
20.06.2018
10:12:09
У меня получилось где-то максимум 9007199254740992 репликаций.

Sergey
20.06.2018
10:12:33
минутки математики в чатике :)

Google

Bogdan (SirEdvin)
20.06.2018
10:12:55
Всего-то надо делать по одной репликации 285616414 лет и будет переполнение

Sergey
20.06.2018
10:13:10
в секунду же?

Bogdan (SirEdvin)
20.06.2018
10:13:15
Да

Алексей
20.06.2018
10:13:33
да тоже пересчитал
смерть солнца намечена на сильно позже.

Bogdan (SirEdvin)
20.06.2018
10:14:21
Ну ... я думаю, к тому времени prometheus перейдет на float1024

Sergey
20.06.2018
10:14:27
вооот а если репликацию делать раз в 1 такт процессора то можно легко словить этот веселый эффект
может все таки уйдем на квантовое хранение?

Andor
20.06.2018
10:14:51
srsly?

Sergey
20.06.2018
10:14:58
все станут философами
хотя да, такт процессора это медленно
пусть будет распределенная база на все устройства на этой планете и каждый такт - репликация

Bogdan (SirEdvin)
20.06.2018
10:17:47
Ну, можно же запускать несколько репликаций за раз

Sergey
20.06.2018
10:17:59
это чит
у каждой должен быть свой счетчик :)

Alexey
20.06.2018
11:03:53

Alexander
20.06.2018
11:08:10

Alexey
20.06.2018
11:10:10
Ну да, я туда уже писал :)
ок, гланое чтобы https://github.com/grobian/carbon-c-relay/issues/216#issuecomment-383576466 не стало сюрпризом

Alexander
20.06.2018
11:11:30
ну как сказать, с цпу пока все хорошо насколько я вижу

Denys ??
20.06.2018
11:37:22
У меня cbuechter fork радостно сожрал 120ГБ памяти за 2 недели и помер. Да еще и имена метрик бил до кучи. Откатился на 2.6