Pull to refresh
66
0
Антон Маркелов @strangeman

Operations Engineer

Send message
Попробуйте запустить вм с опцией командной строки -search.maxUniqueTimeseries=1000000, как указно в сообщении об ошибке.

Да, так и поступили, но это не особо удобное решение:


  • Ошибка эта никак не пробрасывается в графану и каждый раз приходится лазать по логам разбираться, почему же графики не строятся;
  • Увеличение параметра — это полумера, т.к. никто не гарантирует, что следующий запрос не вылетит за новое значение этого параметра.

Раз уж пошел диалог с разработчиком — расскажите, а чем вообще вызвано такое архитектурное решение? Зачем искусственно ограничивать размер поиска?


Странно — за последний год не слышал от пользователей нареканий по поводу проблем с рестартами в вм.

Страдал у вас в Issues несколько месяцев назад: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/895
После этого пару раз еще проявлялось, но в более лайтовом режиме и после дерганий за /internal/resetRollupResultCache проходило.


Различия между MetricsQL и PromQL описаны вот тут.

Да, но у наших разработчиков это каждый раз вызывает недоумение и путаницу, типа "Зачем для одного и того же делать два немного разных языка, для которых надо каждый раз помнить эти мелкие нюансы". Лично мне с этим ок, я просто всегда запросы на PromQL пишу, чтобы не страдать.


В любом случае, вы делаете прекрасный продукт, который действительно избавлен от многих родовых травм Прометея и за это вам огромное спасибо. Но увы, идеальных серебряных пуль не существует. :)

Используем VM как долговременное хранилище метрик.
В целом выводы от эксплуатации те же — память и диск она использует куда экономнее Prometheus, но есть несколько «но»:
  • VM плохо справляется с объемными запросами. Например, мы собираем с помощью postgresql_exporter данные из pg_stat_activity по кверям, и агрегирующие запросы нормально отрабатывают в прометее, но ломаются в VM с cannot find tag filter matching less than 300001 time series; either increase -search.maxUniqueTimeseries or use more specific tag filters;
  • У нас (не исключаю, что дело в кривизне рук, но это не точно) VM плохо переживала рестарты (после обновления например) — приходилось сбрасывать кэши и приседать по-всякому, чтобы она начала отдавать нормально метрики;
  • Ну и разница в языках запросов иногда стреляет в ногу, несколько раз уже разработчики приходили с вопросами «почему у меня об VM борда в графане нормально работает, а об прометей нет», приходится объяснять.
Мы тоже пришли к тому, что Bareos не очень подходит для бэкапов БД: надо писать и сопровождать свои скрипты, неудобно делать Point-in-Time Recovery. В итоге ушли на специфичные для БД бэкапилки (pgbackrest например).
Так, как это сделано в прометеусе — данные преобразуются в метрики (с помощью экспортеров), которые хранятся отдельно, и потом на основе них строятся алерты.

А как вы при сборе «на лету» будете смотреть исторические данные, особенно если источники данных эволюционировали со временем? Допустим, вы мониторите конверсию на основе данных из постгри, которые хранятся в табличке conversion_rate. Собирали эти данные 6 месяцев, а потом разработка решила переделать все на кликхаус и новые данные теперь хранятся в клике.
И теперь, чтобы построить какой-то сложный алерт (например, «сравни текущую конверсию с конверсией годом ранее и скажи если все плохо») вам придется городить какую-то адовую логику с кучей условий «если дата меньше такой-то — смотри в постгрю, иначе смотри в кликхаус» вместо того, чтобы работать с одной метрикой.
Для этого пишется простой экспортер на %language_name%. Выше справедливо заметили, что смешивать сбор данных и алертинг на основе этих данных не очень удобно в сопровождении.
А k8s какой версии? Мы на похожую проблему напарывались в 1.15, когда ipvs не удалял записи о старых маршрутах:

github.com/kubernetes/kubernetes/issues/78421
github.com/kubernetes/kubernetes/issues/89947
Хорошая штука, тоже пользуемся. Странно, что вопрос конфигурирования практически не раскрыт в статье, по умолчанию он загружает весь лог в память, что может очень лихо съесть всю память на сервере. Для отключения такого поведения есть параметр `seek_from_end`.

Также, nginx-clickhouse с недавнего времени выставляет эндпойнт с метриками для Prometheus, в которых рассказывает, сколько логов он записал в CH, а сколько отбросил, не сумев распарсить.

Ну и Dockerfile там в репо тоже есть, чтобы с rpm не возиться.
Telepresence удобная штука, когда, например, надо подцепиться дебаггером к микросервису. Тормозит все в этом случае жестко, конечно, но иногда это единственный выход.
Привет! Спасибо! Мое дело с серверами развлекаться, а не маркетинг маркетить, вот и пишу про что мне интересно. :)
До уровня Димы мне еще далеко, конечно, плюс мы сознательно решили вынести весь стейт «в сторонку» от K8S/Openshift. Но да, там у него очень много ценного про хранение стейта в кубере. :)
Изначально писалось под 9.5, но безо всяких изменений работает и под 9.6, и под 10.
Шигорада. Названо в честь Принца Безумия Шеогората, но не точно также. В том числе и на английском: Prince Sheogorath, но Sheogorad region.
raw.githubusercontent.com/UnitedTraders/ansible-postgresql-exporter/master/PostgreSQL%20Stats%20Example.json

Положил дашборд из примера в репо с ролью. Но мне кажется, это такая штука, которую под свои нужды надо сильно тюнить.
Агрегация происходит на стороне прометеуса, он хранит в себе таймсерию для каждого запроса. Т.е. да, можно.
POWA


Prometheus + Grafana


Запросы подтер, ибо палево. :)
Но зачем, когда есть масса утилит для управления конфигурациями? Лучше бы плейбуков для ансибла/кукбуков для шефа написали.
Для них это видимо критично — достаточно почитать историю про портирование игры.
Невозможность контроля? Они же говорят, что у них есть четкий план — соответственно они будут очень авторитарны. Это приведет к форку игры и распылению сообщества.
Тестирование спасет мир! ;)
Магические циферки. Неудивительно, что про них часто забывают. Сделали бы какое-нибудь более человекочитаемое представление — было бы намного лучше.

Information

Rating
Does not participate
Location
Комсомольск-на-Амуре, Хабаровский край, Россия
Date of birth
Registered
Activity