Pull to refresh

Comments 36

Доработки в рамках graphite-clickhouse (fork) будете обратно в graphite-clickhouse отправлять?
Спасибо за статью
Да будем, в самое ближайшее время.
Скажите пожалуйста получилось ли отправить ваши наработки обратно в graphite-clickhouse?
Привет! В graphite-clickhouse(master), за последний год, было добавлено много всего:
— MaterializedView с горячими данными
— Таблица с именами метрик за последние N дней
— Реверсивные хитрости
— и кое что ещёюю
Жди новую статью, я в ней постараюсь осветить то, как мы живем с Графитом в почти 2019
На какой версии Clickhouse летите сейчас?
54236, хотели обновиться до 54310: подняли тестовую среду — проверили не поломается ли репликация при постепенном обновлении (каждой ноды отдельно), все ок, проблем не обнаружили, но нас остановило это:
github.com/yandex/ClickHouse/issues/1510#issuecomment-345839291
как только решат — сразу обновимся.
Обновились до 54318 — полет нормальный!
Мы, если что, всячески «за» взаимодействие по таким вопросам :-)
Наша «облачная» команда, знает о существовании этого проекта. Я им передал вашу заинтересованность во взаимодействии.
Подскажите, как осуществляется генерализация метрик (если вообще осуществляется)?
Я, к сожалению не уверен что корректно понимаю вопрос, если мы говорим о каком то верхоуровневом обобщении, то в своей прошлой статье я рассказывал как у нас утроена схема хранения метрик и каким образом мы её используем.
Спасибо, интересно.
Последняя версия InfluxDB сильно отстает от производительности Clickhouse?
Можете задать этот вопрос в «Telegram», в канале «Церковь метрик», вам обязательно ответят!
(сразу оговорюсь, я к авито никакого отношения не имею и мы просто делали свои тесты какое-то время назад, но недостаточно далеко продвинулись чтобы оформлять в виде статьи)
Смотря о какой производительности говорить. По опыту Clickhouse на графит-подобных метриках может держать 2.1кк точек в секунду достаточно долго (в тесте на одной из старых версий оставляли на пару недель).
У InfluxDB графитный ресивер написан отвратительно и больше 150к в секунду переварить не может в принципе.
Нативный получше, но там начинаются спецэффекты от самой базы — если держать нагрузку на запись близко к пиковой, то в момент merge'а прием данных останавливается. Поэтому стабильный рейт который в тестах мы у себя видели — где-то 300-400к точек в секунду.
Но дальше начинаются особенности — у InfluxDB кластеризация платная, у Clickhouse'а шардинг и репликация из коробки (пусть и не самые простые в обращении). При старте InfluxDB имеет свойство потреблять ресурсы как ни в себя на время реиндексации данных (TSM1 до сих пор не стабилен, а на момент тестирования просто ломал данные), Clickhouse же перезапускается относительно безболезненно (простой в пару минут не в счет) и так далее.
То есть с точки зрения стабильности работы нам InfluxDB не понравился настолько, что мы решили не пытаться его тестировать в ближайшие 3-4 релиза от слова совсем и решили не использовать у себя ни под какие задачи.
отлично, исчерпывающий ответ.
спасибо.
vkolobaev А вы когда данные мигрировали с whisper в clickhouse вы их как пересылали? Используя pickle или plain text protocol?
А если не сложно, сможете поделиться скриптом для миграции? И еще вопрос, а почему выбрали связку carbon-clickhouse+graphite-clickhouse, а не graphouse(https://github.com/yandex/graphouse)?
1. Скрипт был в контейнерах с виспером, и их больше нет с нами =(. Там все очень просто — вычитываем с помощью whisper-dump файлы .wsp и полученный результат, через сокет отправляем на порт carbon-clickhouse одной из нод. На bash, думаю, подобное можно за 5 минут написать.
2. graphouse — это java — а мы любим Go
Я опять же напомню, что к авито не имею отношения, но мы в общем-то тоже смотрели на graphouse, но решили его не шибко тестировать по следующим причинам:
  1. У нас на фронтэнде go-graphite/carbonapi, а graphouse завязан на graphite-web/graphite-api. В наших тестах carbonapi значительно быстрее чем graphite-web/graphite-api (даже если их запускать на pypy)
  2. На прием метрик он примерно в 4 раза хуже работает чем lomik/carbon-clickhouse. То есть жрет больше CPU и быстрее заканчивается по скорости


Сравнение справедливо на момент где-то полугодичной давности.
graphouse(Java) — это аналог carbon-clickhouse(GoLang), carbon-clickhouse умеет теги(запись)
graphite-web(Python) — это аналог carbonapi(GoLang), и он значительно медленнее обрабатывает запросы, но в нем реализованы теги. В carbonapi, пока, теги мы реализовали только в своем форке, в мастере они пока не поддерживаются.
Т.е. писать теги carbon-clickhouse уже может, а carbonapi читать их еще не может?

Если не принимать скорость работы во внимание, graphite-web может быть заменой carbonapi, которая уже умеет читать теги? И совместим ли graphite-web с graphite-clickhouse?

А что с Grafana? Она уже может работать с тегами?
Писать теги carbon-clickhouse уже может :: Да
carbonapi читать их еще не может :: официальный не может
graphite-web — умеет читать теги, умеет работать с graphite-clickhouse, может быть заменой carbonapi
Grafana — общается с графитом через API(graphite-web/carbonapi) — то есть она поддерживает теги, да.
На сколько мне известно, КХ поддерживает работу только с Zookeeper — мы бы с радостью ушли на какой нить Консул, но увы.
К сожалению баги в Zookeeper клиенте Clickhouse до сих пор не починены на эту тему

github.com/yandex/ClickHouse/issues/777
github.com/Slach/clickhouse-zetcd

если бы кто нибудь грамотный мог мне помочь понять, почему именно валится Clickhouse при повторной вставке блоков и что не так делает zetcd
было бы здорово

рассматривали ли в качестве бекенда graphite (или фронтенда КХ, тут уж как посмотреть) https://github.com/yandex/graphouse и сравнивали ли? Если да, то каковы результаты сравнения?
Интересуюсь с практической точки зрения. С графаусом работал и в его производительности уверен. И скоро надо будет переводить местный графит… вот и думаю

Увидел выше ответ про «любим», и всё же интересует, были ли сравнительные тесты
У меня были очень давно, был хуже раза в 3 на запись. Меня впрочем по-прежнему волнует чтение, а graphite-web/graphite-api будет очень плохо рабоать под нашими нагрузками.
Так как в графаусе не появилось поддержки нашего протокола, то я его больше не тестировал.
Очень очень очень было бы интересно увидеть детектор аномалий!
Пожалуйста, выложите его, просто banshee, skyline, morgoth хорошие попытки =(( но у меня не взлетело
Sign up to leave a comment.