Size: a a a

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

2020 January 16

BG

Bogdan (SirEdvin) Gladyshev in Церковь метрик
Aliaksandr Valialkin
Кстати, как решают проблему user_id, ip или url в лейблах другие системы мониторинга?
В самих системах спасения вроде нет, разве что там проблема кардиналити не так существенна, но клиентские приложения от этого меньше страдают при том же push, по идее
источник

GG

George Gaál in Церковь метрик
Aliaksandr Valialkin
Кстати, как решают проблему user_id, ip или url в лейблах другие системы мониторинга?
Наверное, они их кладут условно не в индексы, а в value. В результате - оверхеда по памяти нет, но при этом ты попадаешь на фулл лукап соответствующей временной партиции
источник

BG

Bogdan (SirEdvin) Gladyshev in Церковь метрик
Aleksey Shirokikh
нет. у меня реально кронджоба. в файлик положить не вижу смысла, для статсд не подходит кейс
Ну, мне было лень разворачивать еще push gateway, выделил для node_exporter отдельную папочку и поехало
источник

GG

George Gaál in Церковь метрик
Это только лишь гипотеза, так-то
источник

AS

Aleksey Shirokikh in Церковь метрик
Bogdan (SirEdvin) Gladyshev
Ну, мне было лень разворачивать еще push gateway, выделил для node_exporter отдельную папочку и поехало
у меня несколько больше раннеров гитлаба. а на какой конкретно будет выполнятся джоба с кроном не важно...
источник

BG

Bogdan (SirEdvin) Gladyshev in Церковь метрик
Aleksey Shirokikh
укладка в файлик это кронджоба на хосте. а если она в гитлабе ?
statds по идее, мне кажется, его в итоге проще использовать, особенно учитывая что из джобов в гитлабе нужно куча инфы, если уже заморачиватся
источник

BG

Bogdan (SirEdvin) Gladyshev in Церковь метрик
Там время выполнения, количество ошибок и т.д. Хотя gitlab-runner вроде и сам умеет, но там внутри еще можно поэтапно собирает в каждой джобе
источник

AS

Aleksey Shirokikh in Церковь метрик
Bogdan (SirEdvin) Gladyshev
statds по идее, мне кажется, его в итоге проще использовать, особенно учитывая что из джобов в гитлабе нужно куча инфы, если уже заморачиватся
мне нужно не так много. но statsd тоже есть. просто в другом месте
источник

AS

Aleksey Shirokikh in Церковь метрик
Bogdan (SirEdvin) Gladyshev
Там время выполнения, количество ошибок и т.д. Хотя gitlab-runner вроде и сам умеет, но там внутри еще можно поэтапно собирает в каждой джобе
это не то. вот есть джоба которая обновляет скажем кеши распределенные. бегает раз в день.
нужно что бы выполнилась со статусом 0. вот две метрики и надо отдать.
источник

AS

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

AS

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

A

Andor in Церковь метрик
а кубеней у тебя нету?
источник

AS

Aleksey Shirokikh in Церковь метрик
Есть, но они тут не причём
источник

A

Andor in Церковь метрик
там просто есть кронджобы и прометей по ним статусы умеет собирать через kube-state-exporter прямо щас
источник

AS

Aleksey Shirokikh in Церковь метрик
ну это другая задача
источник

AS

Aleksey Shirokikh in Церковь метрик
кубы кубами, железо железом, облака облаками
источник

A

Andor in Церковь метрик
а звучит как та же
источник

ЕО

Евгений Омельченко in Церковь метрик
Aleksey Shirokikh
это не то. вот есть джоба которая обновляет скажем кеши распределенные. бегает раз в день.
нужно что бы выполнилась со статусом 0. вот две метрики и надо отдать.
Извини за наркоманию, но можно складывать файлик с результатом в S3
источник

AS

Aleksey Shirokikh in Церковь метрик
Евгений Омельченко
Извини за наркоманию, но можно складывать файлик с результатом в S3
с какой целью ?
если сорс муська а дестинейшен два десятка редисов и всё это на железе, о каком s3 идет речь ?
источник

С

Сергей in Церковь метрик
Bogdan (SirEdvin) Gladyshev
Что-то в духе:

- Ладно, возьму пром.
- Но и пром говно?
- Да как так?
- Ну вот вкратце:

1. Очень большие проблемы с хранением данных в долгосрочном периоде. Какие-то варианты есть, но они все в итоге заставляют или использовать пром исключительно как сборщик + оповещалку, или строить дашборды по два раза. remote read протокол полное днище
2. Алертинг в начинающей стадии. Нужно городить костыли или колхозы для чего-то, что можно просто найти в другой экосистеме
3. Очень, то есть ОЧЕНЬ чувствителен к корректному использованию  тегов. Решили запихнуть url path в тег? Ну, вас ждет неприятный сюрприз, последствие которого будут еще очень долго вам аукатся.
4. Pull модель. Даже не так, особенная pull модель, которая не обнуляет данные после их получения. Помните пункт 3? Ну так вот, айда перезапускать все сервисы подряд.
5. Офигенный подход к аггрегированию метрик для нескольких процессов в клиентских либах (для веб приложений написанных на python, js, php или тех, кто предпочитает 12factor) приводит к тому, что даже после перезапуска сервисы могут подхватить из какого-то внешнего источника (redis, файлы) все эти метрики и начать свистопляску заново.
6. Очень нордическая модель данных. Вам может показатся, что она какая-то кривая, но, обычно, вам расскажут, что вы неправы. Без вариантов
7, Нет никаких шансов на внятные расширения внутри самого языка. Новые фичи так же внедряются исключительно для цели служения нордической модели данных. Хотите что-то классное? Вас ждет remote read/write протоколы и много страдания, как всегда,

Ах да, из всяких мелочей:
- Очень важно помнить, что вы работаете с временным рядами. И потеря части точек - это не проблема
- Пром не попадает в ваш use case? У вас даже нет шансов его докрутить до какой-то кондиции
- Stateless алертинг. Перезапустили пром? Ну вот все ваши активные алерты и тю-тю. Для алертов с большими for это обычно очень приятно.
- Что бы работать с blackbox expoter нужно убить в себе программиста.
А сможете теперь, после всего сказанного, описать идеальный для вас стек обсервабилити?
источник