@metrics_ru

Страница 229 из 681
Sergey
07.08.2017
13:55:27
Зачем графит-веб пробует подключить Falsh? https://gyazo.com/33e46ea7daf32a847f6278ba9da0d0b9
это ваш файрфокс вместе с протрояненным сайтом флэш себе придумал ?

Alex
07.08.2017
13:56:22
с каким это ещё протрояненным сайтом?

Sergey
07.08.2017
14:38:45
ну вот точно не было никакого флэша никогда

Alexander
07.08.2017
19:27:46
Флэш на графане. Забавно

Google
Alexander
07.08.2017
19:31:47
А кто прометея пользует? Там есть типа визарда для ямла?

Или все руками?

Алексей
07.08.2017
19:38:39
там столько делов что визард будет сложнее

Alexander
07.08.2017
19:44:25
там столько делов что визард будет сложнее
Понял. Значит пилим дальше. Адовая штука )

Andor
07.08.2017
19:44:32
Какой ещё визард? Бери да генерируй конфиг своим любимым языком

Я генерю пупетом

Alexander
07.08.2017
19:46:32
Какой ещё визард? Бери да генерируй конфиг своим любимым языком
Блин, у меня хапэ всегда были. Вот заббикс еще подлетел в нагрузку. И надо прометея запилить еще вчера

Я генерю пупетом
Нет у нас паппета насколько я знаю. По артефактам на серваке кто-то баловался ансибл

Paul
07.08.2017
20:44:56
главное - понять концепцию

Alexander
07.08.2017
20:47:29
главное - понять концепцию
Ну хз. В хапэ тэкнул пыкнул и нашел, что поправить.

Paul
07.08.2017
20:48:09
тут еще проще. Есть текстовый файл и все сразу понятно. Единственное, что было для меня неочевидно - правила алертинга (там документация сильно хромает)

Google
Paul
07.08.2017
20:53:42
у прометея на сайте есть тулза для отладки она весьма кривая, но лучше, чем ничего

Alexander
07.08.2017
20:54:41
Причем оповещалки по сложным диапазонам и с проверкой на предыдущий стейт метрики. В доках нехрена не нашел

.
07.08.2017
21:00:37
Кто-нибудь с питона отправлял кастомные метрики? Создаю вот так metric = prometheus_client.Gauge( 'ansible_manager_template_last_task_success_{}'.format(template.pk), 'Status last task', ) metric.set(metric_value) prometheus_client.generate_latest()При первом подключении все ок, а вот при последующих ловлю такую ошибку ValueError: Timeseries already present in CollectorRegistry: ansible_manager_template_last_task_success_1

.
07.08.2017
21:15:27
Ты случаем не в банке работаешь? )
Это какой-то рофел? Нет

Виталий
08.08.2017
06:58:56
https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#output-configuration-examples можно телеграфом в разные базы писать с разными rp

.
08.08.2017
07:51:49
Попробовать почитать доку и не созбавать метрику на каждый запрос?
А как я тогда узнаю кол-во метрик? По факту у меня на каждый запрос может быть разное кол-во метрик

Andor
08.08.2017
07:55:13
Как это?

.
08.08.2017
08:00:47
Я метрики отправляю по состоянию моих объектов в бд, в теории каждый раз оно может меняться, на практике очевидно, это будет происходить не столь часто. По запросу я создавал метрики, вносил нужные значения и регистрировал их. Я предполагаю, что на самом деле я не так отправляю метрики, как нужно. Помимо моего создания метрик в цикле registry = prometheus_client.CollectorRegistry() metric = prometheus_client.Gauge( 'ansible_manager_template_last_task_success_{}'.format(template.pk), 'Status last task', registry=registry ) metric.set(metric_value)Я еще юзаю django-prometheus, который тоже отправляет свои метрики https://github.com/korfuri/django-prometheus Указание registry это по факту и есть отправка?

Евгений
08.08.2017
08:05:21
@Andorka в чём суть проблемы? Ты пишешь свой экспортёр на питоне для какой-то БД, правильно?

Andor
08.08.2017
08:05:40
не я

Евгений
08.08.2017
08:05:57
Ооокеееей

.
08.08.2017
08:06:16
Проблема в том, что мой способ не работает)

Евгений
08.08.2017
08:06:48
Я пишу
Гениально сделать ник '.'

Чтобы ничего непонятно было

Я пишу
Так ну хорошо, ты понимаешь как работает экспортёр?

Google
Евгений
08.08.2017
08:07:35
Принцип

.
08.08.2017
08:07:57
Так ну хорошо, ты понимаешь как работает экспортёр?
скорее нет чем да, я смотрел на код django_prometheus и пытался повторить что-то похожее

Евгений
08.08.2017
08:09:00
Стартует http сервер, в нём любое кол-во метрики, могут появляться новые, значение обновляется опять таки асинхронно (только когда тебе надо у конкретной)

Zhenia
08.08.2017
08:09:09
https://github.com/prometheus/client_python

вот либа готовая

Евгений
08.08.2017
08:09:47
Да, ты сложно начал решать, возьми выше простой пример и быстро поймёшь о чём речь.

.
08.08.2017
08:11:14
Окей, щас попробую без django_prometheus запилить

Евгений
08.08.2017
08:11:45
'Three Step Demo'

Тебе должно хватить https://github.com/prometheus/client_python/blob/master/README.md, экспортёр за 3 минуты короче и пихай туда запросы к БД свои и генерацию новых метрик

А как я тогда узнаю кол-во метрик? По факту у меня на каждый запрос может быть разное кол-во метрик
Короткий ответ, прометею и не нужно знать сколько у тебя метрик вообще или сколько в данный момент ты хочешь обновить значения

Alexander
08.08.2017
08:17:55
Причём тут вообще банк на самом деле непонятно)
Похожий вариант сейчас пилю. Думал кто-то из знакомых

Евгений
08.08.2017
08:19:00
Похожий вариант сейчас пилю. Думал кто-то из знакомых
Похожий - это простейший экспортёр для запросиков к БД, мне кажется таких людей дофига кто такое делал, ничего необычного

Евгений
08.08.2017
08:21:22
Экспортёру пофиг, это совсем немного

Alexander
08.08.2017
08:23:32
Надо с учетом масштабирования. Систем чуть ли не каждый день подваливает.

Евгений
08.08.2017
08:24:48
Надо с учетом масштабирования. Систем чуть ли не каждый день подваливает.
Тогда я думаю это не похоже на то, что делает мистер точка

Google
Alexander
08.08.2017
08:26:13
Тянуть все из бд, не ахти вариант. Я бы по возможности это до минимума урезал

.
08.08.2017
09:23:05
Короткий ответ, прометею и не нужно знать сколько у тебя метрик вообще или сколько в данный момент ты хочешь обновить значения
окей, пример работает, но все равно один вопрос остается. Тут мы изначально знаем, что у нас всего 1 метрика, в моем же случае, я не знаю сколько у меня метрик. Т.е. получается мне по запросу нужно будет рассчитывать свое кол-во метрик? Но это же вроде так не работает

.
08.08.2017
09:24:55
Метрики должен возвращать вроде

Евгений
08.08.2017
09:25:13
Ключ - значение?

.
08.08.2017
09:26:32
Я к сожалению под капот client_python не заглядывал, так что не знаю. Я имел в виду, что когда мы обращаемся к нашему экспортеру, он возвращает все наши метрики.

Admin
ERROR: S client not available

.
08.08.2017
09:27:26
https://github.com/prometheus/client_python Если смотреть на пример отсюда, мы при запросе знаем, что существует одна метрика, в моем же случае при запросе мы не знаем сколько метрик существует

Евгений
08.08.2017
09:27:38
Я про запрос к бд

Что возвращает запрос к БД?

.
08.08.2017
09:28:33
Я вытаскиваю из бд объект, провожу с ним некоторые манипуляции и на выходе получаю 1 или 0

Евгений
08.08.2017
09:28:49
Это ключ значение или нет?

.
08.08.2017
09:29:27
нет

Евгений
08.08.2017
09:30:11
Как ты в скрипте собираешься создать набор ключ - значение в первый проход?

Давай ещё проще, без экспортёра, ты можешь скриптом сделать текстовый файл, где будет строчками нужные тебе Ключ - значение ?

.
08.08.2017
09:31:19
Да

Евгений
08.08.2017
09:32:04
А в виде цикла можешь

.
08.08.2017
09:32:18
в виде цикла это и происходит

Евгений
08.08.2017
09:34:06
Тип метрик - counter?

.
08.08.2017
09:35:15
Тип метрики Gauge, но вполне возможно это моя ошибка. По факту я буду возвращать либо 0 либо 1

Google
Евгений
08.08.2017
09:36:29
Ну вот смотри, если текстовый файл, каждый ключ в цикле, у тебя File append (ключ значение) Так?

С экспортёром это будет gauge set(значение) Gauge создаёшь, если такой ещё не создан (новая метрика) Всё.

.
08.08.2017
09:38:22
А если создан? И как понять, что он создан?

Евгений
08.08.2017
09:38:50
В лоб можно

Пробуй сделать set, если не получается, создать и сделать set

А если создан? И как понять, что он создан?
Ещё примерах есть 'Increment when entered, decrement when exited.'

.
08.08.2017
09:47:55
Пробуй сделать set, если не получается, создать и сделать set
я видимо не понимаю какого-то ключевого, очевидного момента. Вот у меня нет никаких метрик, но у меня есть файл заполненный моим значениями (имя метрики и её значение предположим что в конце значения у нас всегда перевод строки) Теперь я вычитываю этот файл итерируясь по каждой строчке. Теперь в цикле мне нужно понять, существует такая метрика уже или нет. Узнаем мы это применяя set, 1)Никакой метрики не существует, т.е. непонятно к чему мы будем пытаться применить сет 2)Даже если какая-то метрика существует мне нужно обновить там значение, и вроде как это я тоже должен делать через set. И в моей голове все опять сводится к тому, что мы в цикле создаем Gauge

Евгений
08.08.2017
09:49:02
Напиши код, который переписывает файл каждый раз полностью

Удаляет старый, если так удобнее

Потом

Ну вот смотри, если текстовый файл, каждый ключ в цикле, у тебя File append (ключ значение) Так?

С экспортёром это будет gauge set(значение) Gauge создаёшь, если такой ещё не создан (новая метрика) Всё.

В лоб можно

Пробуй сделать set, если не получается, создать и сделать set

1) создаёшь gauge, я уже сказал как, в цикле через эксепшен к set 2) да

Alex
08.08.2017
11:01:01
# du -sh /var/log/go-carbon/ 29G /var/log/go-carbon/ Это за 2 дня. Каждый запрос к карбонсерверу логируется с уровнем INFO @Civiloid кто это у нас такой фанат логирования?

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