Size: a a a

Церковь метрик

2020 May 06

N

Nklya in Церковь метрик
Отдавать метрику чаще, чем раз в 10 минут
источник

DS

Dmitry Sergeev in Церковь метрик
Nklya
Отдавать метрику чаще, чем раз в 10 минут
она каждые 30 секунд скрейпится. Увеличивается каждые 10 минут.

То есть increase(metric_count{test="test"}[1m]) > 0 срабатывает, не когда метрика появилась. А через 10 минут, когда она увеличилась. А я хочу, еще детектить ее появление.
Может если ряд опишу будет понятно: нет метрики, нет метрики, ..., 1 (вот здесь хочу чтобы тригер срабатывал),1,1,1,...спустя 10 минут 2 (тригер срабатывает),2,2,2...3 (тригер срабатывает),3,3,3,3...
источник

VS

Vasilyev Sergey in Церковь метрик
Вы хотите решить каунтеромм то, что решает шкала. имхо
источник

KB

Konstantin Bonebriuk... in Церковь метрик
Dmitry Sergeev
она каждые 30 секунд скрейпится. Увеличивается каждые 10 минут.

То есть increase(metric_count{test="test"}[1m]) > 0 срабатывает, не когда метрика появилась. А через 10 минут, когда она увеличилась. А я хочу, еще детектить ее появление.
Может если ряд опишу будет понятно: нет метрики, нет метрики, ..., 1 (вот здесь хочу чтобы тригер срабатывал),1,1,1,...спустя 10 минут 2 (тригер срабатывает),2,2,2...3 (тригер срабатывает),3,3,3,3...
источник

DS

Dmitry Sergeev in Церковь метрик
да, absent подходит. Для конкретно этой проблемы, но у меня не совсем это.

Задача чисто косметическая, поэтому постеснялся ее описывать, но да ладно.

Хочу в аннотациях в графане видеть инфу о деплоях и в тегах видеть версии.
Для этого, у меня в pushgateway отправляется инфа о них. И получаются метрики (счетчики) такого вида:
deploy{project="example",app="example",version="v1.0.1"} 1
deploy{project="example",app="example",version="v1.0.2"} 1
deploy{project="example",app="example",version="v1.0.3"} 1
...

И вот тут две проблемы. Первая - что я описал выше - не видно первого деплоя. И вторая - моя хотелка видеть там версии.

Из-за второй хотелки, я сделал такую дичь в аннотациях графаны: time() == bool timestamp(  increase(deploy{project="example", app="example"}[90s]) * on(project,app) group_left() (increase(deploy:sum{}[90s]) > 0)  )

Где: dpeloy:sum это правило: sum(deploy{service="pushgateway"}) by (project,app)

В целом это работает: http://dl3.joxi.net/drive/2020/05/06/0030/2608/1985072/72/530d0ac9de.jpg

Но работает неверно, так как этот запрос возвращает несколько метрик, соотвесвтенно в теги анноиации могут попасть лейблы от не той метрики.

Если убрать лейбл "version" и просто накапливать счетчик. Это работает корректно, за исключением того, что первый деплой не покажет. Ну и версию в теги конечно никак не добавить.

Я скорее всего хочу странного, и делаю это странно, и мне не надо этого хотеть, или делать совсем не так.
источник

ДС

Дмитрий Стародубцев... in Церковь метрик
Подскажите ещё пожалуйста, никак не пойму как добавить плагины.

Вот я скачал prometheus_client.go и положил его в C:\Program Files\telegraf\plugins. В файле конфига в outputs добавил [[outputs.prometheus_client]]
 ## Address to listen on.
 listen = ":9273"
 
 ## Path to publish the metrics on.
 path = "/metrics"  

Службу wmi exporter остановил. Кажется ничего не работает.

Я правильно положил плагины? Где listen, там должен быть адрес prometheus и свободный открытый порт?
источник

SB

Stanislav Buldakov in Церковь метрик
Дмитрий Стародубцев
Подскажите ещё пожалуйста, никак не пойму как добавить плагины.

Вот я скачал prometheus_client.go и положил его в C:\Program Files\telegraf\plugins. В файле конфига в outputs добавил [[outputs.prometheus_client]]
 ## Address to listen on.
 listen = ":9273"
 
 ## Path to publish the metrics on.
 path = "/metrics"  

Службу wmi exporter остановил. Кажется ничего не работает.

Я правильно положил плагины? Где listen, там должен быть адрес prometheus и свободный открытый порт?
я ничего никуда не скачивал. просто агента телеграфа поставил и зарегистрировал его как сервис
источник

SB

Stanislav Buldakov in Церковь метрик
после этого http://localhost:9273/metric начнёт отдавать дефолтный набор метрик, которые настроены в конфиге телеграфа
источник

SB

Stanislav Buldakov in Церковь метрик
ну или через netstat можно посмотреть прослушивается ли порт 9273 и если да, то кем
источник

ДС

Дмитрий Стародубцев... in Церковь метрик
А там же формат для influxdb, а чтобы работало с прометеем, нужно плагин, разве нет?
источник

SB

Stanislav Buldakov in Церковь метрик
Дмитрий Стародубцев
А там же формат для influxdb, а чтобы работало с прометеем, нужно плагин, разве нет?
он в комплекте с дистрибутивом уже идёт. или ты на месте из сорсов собирал? :)
источник

ДС

Дмитрий Стародубцев... in Церковь метрик
Не, я через .exe сервис зарегистрировал. Просто выше были ссылки на git, а там плагины отдельно лежат, я и подумал что их качать и включать тоже нужно отдельно
источник

ДС

Дмитрий Стародубцев... in Церковь метрик
Спасибо, попробую снести и зарегистрировать заново
источник

S

Slach in Церковь метрик
слушайте, я правильно понимаю
что если у метрики в prometheus изменится HELP
то это новая time series?
источник

VS

Vasilyev Sergey in Церковь метрик
Dmitry Sergeev
да, absent подходит. Для конкретно этой проблемы, но у меня не совсем это.

Задача чисто косметическая, поэтому постеснялся ее описывать, но да ладно.

Хочу в аннотациях в графане видеть инфу о деплоях и в тегах видеть версии.
Для этого, у меня в pushgateway отправляется инфа о них. И получаются метрики (счетчики) такого вида:
deploy{project="example",app="example",version="v1.0.1"} 1
deploy{project="example",app="example",version="v1.0.2"} 1
deploy{project="example",app="example",version="v1.0.3"} 1
...

И вот тут две проблемы. Первая - что я описал выше - не видно первого деплоя. И вторая - моя хотелка видеть там версии.

Из-за второй хотелки, я сделал такую дичь в аннотациях графаны: time() == bool timestamp(  increase(deploy{project="example", app="example"}[90s]) * on(project,app) group_left() (increase(deploy:sum{}[90s]) > 0)  )

Где: dpeloy:sum это правило: sum(deploy{service="pushgateway"}) by (project,app)

В целом это работает: http://dl3.joxi.net/drive/2020/05/06/0030/2608/1985072/72/530d0ac9de.jpg

Но работает неверно, так как этот запрос возвращает несколько метрик, соотвесвтенно в теги анноиации могут попасть лейблы от не той метрики.

Если убрать лейбл "version" и просто накапливать счетчик. Это работает корректно, за исключением того, что первый деплой не покажет. Ну и версию в теги конечно никак не добавить.

Я скорее всего хочу странного, и делаю это странно, и мне не надо этого хотеть, или делать совсем не так.
А подскажите, какую пользу вы получаете из этого графика? Когда какой релиз был задеплоен?
источник

z

z311 in Церковь метрик
частота релизов/ kpi
источник

DS

Dmitry Sergeev in Церковь метрик
Vasilyev Sergey
А подскажите, какую пользу вы получаете из этого графика? Когда какой релиз был задеплоен?
Меня можно на ты =)

Чисто эстетика, удобно и красиво смотрится. На всех графиках визуально видно когда деплои и из какой версии.
источник

AS

Aleksey Shirokikh in Церковь метрик
мы это решили тем что сделали отдельный деплой лог
источник

AS

Aleksey Shirokikh in Церковь метрик
в него попадают события из gitlab-ci
источник

AS

Aleksey Shirokikh in Церковь метрик
это несколько более удобно.
источник