
Алексей
22.07.2017
08:40:07
хм
посмотрю
спасибо

Roman
22.07.2017
08:50:34

Google

Evgeny
22.07.2017
08:53:31
А для чего это нужно?
Кейс когда после обновления приложения в graphite начинают лететь уникальные метрики по id запроса например - их нужно найти и порезать на релее + вычистить из бд

Roman
22.07.2017
08:55:06
И как в этом помогают логи новых метрик? Мониторится что логи выросли?

Evgeny
22.07.2017
08:56:41
go-carbon же отдаёт количество новых метрик на это аларм если резкий всплеск и он сохраняется, дальше уже иду в лог новых метрик

Roman
22.07.2017
09:03:27
понятно. ну прям точно так же не получится. надо селектить все это из КХ

Vladimir
22.07.2017
09:08:02
@rlomonosov ты ж ведешь список метрик которые есть в КХ
в graphite_tree табличке
ты разве не решаешь периодически что туда что-то надо докидывать?

Roman
22.07.2017
09:11:23
Этот кэш сбрасывается каждый рестарт и по hup-у. После сброса все метрики станут "новыми". Я бы не стал его использовать для мониторинга
Лучше поставить в крон запрос select count() from graphite_tree group by path having argMax(Deleted, Version) == 0 и его результат слать в графит как отдельную метрику. И уже на ее резкий рост реагировать

Vladimir
22.07.2017
09:17:00
а по hup'у подменять на результаты селекта из таблицы

Roman
22.07.2017
09:19:32
Мне наоборот нужно чтобы оно сбрасывалось. Мы его раз в сутки сбрасываем и все метрики пишутся в табличку graphite tree с новым version. Потом мы по этому version находим старые и неактуальные метрики

Vladimir
22.07.2017
09:20:06

Google

Evgeny
22.07.2017
09:41:24
задача удалять неиспользуемые метрики тоже есть в whisper все просто find /var/lib/graphite/whisper -type f -mtime +7 -delete , а в кх как решаете @rlomonosov можешь чуть подробнее про version ?


Roman
22.07.2017
10:03:28
задача удалять неиспользуемые метрики тоже есть в whisper все просто find /var/lib/graphite/whisper -type f -mtime +7 -delete , а в кх как решаете @rlomonosov можешь чуть подробнее про version ?
Табличка graphite_tree работает на движке ReplacingMergeTree. При мердже из нескольких записей с одинаковым значением Primary Key остается одна (с максимальным значением поля Version)
carbon-ch кэширует в памяти список метрик чтобы поменьше писать в graphite_tree. Если метрики еще нет в кэше, то она пишется в graphite_tree с текущим временем (временем получения точки) и добавляет в кэш.
Кэш сбрасывается каждый раз при рестарте или сигналом USR1 (ранее в чатике соврал про HUP, на самом деле USR1).
Мы у себя раз в сутки шлем всем carbon-ch сигнал USR1. В результате в поле Version в табличке graphite_tree у нас лежит mtime с точностью до суток.
Все старые метрики можно заселектить запросом вида
SELECT Path, Version FROM graphite_tree GROUP BY Path HAVING max(Version) < таймстемп;
А удалить заинсертив их опять в табличку graphite_tree с Deleted = 1 и большим значением Version


Evgeny
22.07.2017
10:07:03
спасибо, попробую сделать также
сейчас сравниваю производительность стека carbonapi -> go-carbon(carbonserver) -> whisper и carbonapi -> graphite-ch -> ch и как то пока по времени ответа на один и тот же запрос ch медленне раза в 3 из опций в carbonapi sendGlobsAsIs: true в ch <max_query_size>10485760</max_query_size> больше не меня ничего пока
диск ssd
trigram-index в go-carbon отключен

Roman
22.07.2017
10:14:13
когда я тестил, то у меня ch был медленнее в два раза. я забил, т.к. это с лихвой компенсировалось скоростью записи и уменьшенной в 100 раз нагрузкой на диск

Evgeny
22.07.2017
10:25:51
с нашим потоком метрик 3.5К/s видимо пока рано думать о переходе на ch ) утилизация диска в районе 15% await 3-4ms в пиках то 10К iops на запись. не хотелось бы жертвовать временем отрисовки графиков

Roman
22.07.2017
11:13:01
можешь еще попробовать яндексовский graphouse. может он быстрее

Evgeny
22.07.2017
11:18:41
Там упирается в сам ch по CPU в основном, скорее всего можно подтюнить его
поковырял и разогнал стек carbonapi -> graphite-ch -> ch теперь ch даже быстрее на тяжелых запросах )
carbonapi - maxBatchSize: 100000 в ch <use_uncompressed_cache>1</use_uncompressed_cache>

Roman
22.07.2017
12:17:11
кстати в graphite-ch в логах можно много интересного найти. особенно если уровень debug включить. там должны быть времена запросов, сортировок и тд

Александр
22.07.2017
15:19:23
Боты
Сраные

Evgeny
22.07.2017
15:20:16
продолжаю разбираться метриками graphite в ch - из доки ch понятно что метрики хранятся полные а достаются в зависимости от движка таблицы (MergeTree или GraphiteMergeTree) без прореживания или с прореживанием, по доке carbon-ch создал GraphiteMergeTree - значит с прореживанием, но что это значит?
в graphite ранее использовался файл storage-aggregation.conf - с описанием как агрегировать разные типы метрик - а в ch он не нужен получается совсем? как это работает?

Vladimir
22.07.2017
17:02:04
в другом формате


Evgeny
22.07.2017
17:09:59
т.е. если у меня в конфиге
[min]
pattern = \.min$
xFilesFactor = 0.1
aggregationMethod = min
[max]
pattern = \.max$
xFilesFactor = 0.1
aggregationMethod = max
[count]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum
[lower]
pattern = \.lower(_\d+)?$
xFilesFactor = 0.1
aggregationMethod = min
[upper]
pattern = \.upper(_\d+)?$
xFilesFactor = 0.1
aggregationMethod = max
[sum]
pattern = \.sum$
xFilesFactor = 0
aggregationMethod = sum
мне нужно для каждого паттерна еще retention расписать ?

Google

Evgeny
22.07.2017
17:16:36
не очень понятно retention правила из default применяться для pattern если его пропустить

Dorian
23.07.2017
05:27:34
Джентельмены
Как в BOSUN завести хост вручную?
Не хочу через него передавать метрики

Evgeny
23.07.2017
11:58:49

Roman
23.07.2017
12:17:10

Vladimir
23.07.2017
12:26:24

Evgeny
23.07.2017
13:27:00

Roman
23.07.2017
13:34:36

Evgeny
23.07.2017
13:35:10
Спасибо

vladimir
24.07.2017
06:40:34
Парни никто шардирование в clickhouse не использует? В доке яши сказано:
"Как и ожидалось, более-менее долгие запросы работают в несколько раз быстрее, если их выполнять на трёх серверах, а не на одном. "
там пример на 166 млн строк - отработал за ~0.26сек - помоему вполне внушительный результат
я так понимаю шардирование - путь к успеху =)

Stas
24.07.2017
06:52:43

vladimir
24.07.2017
06:54:13
нет, в указанной тобой доке написано:
Репликация никак не связана с шардированием.
я смотрю вот тут:
https://habrahabr.ru/company/yandex/blog/303282/
Как установить ClickHouse на кластер из нескольких серверов

Vladimir
24.07.2017
06:59:12
По кх есть отдельная группа
Там возможно расскажут быстрее
@clickhouse_ru
ты в конфиге определяешь кластер (с репликами, если надо)

Google

Vladimir
24.07.2017
07:03:01
создаешь на каждой машине просто *MergeTree таблицы, потом поверх них натягиваешь Distributed (с указанием какой кластер брать)

Alex
24.07.2017
07:04:38
Слышал, что записть в Distributed таблицы значительно медленнее

Stas
24.07.2017
07:05:59

vladimir
24.07.2017
07:05:59
ну так оно и понятно

Vladimir
24.07.2017
07:07:49

vladimir
24.07.2017
07:10:19
о мне ответили

Admin
ERROR: S client not available


vladimir
24.07.2017
07:10:20
vladimir kolobaev, [24.07.17 10:04]
Всем привет!
Пытаюсь разобраться с шардированием, и возникла пара вопросов:
1. "Distributed-таблицы" надо создавать для каждой локальной таблици отдельно, или можо создать одну "Distributed-таблицу" на все локальные.
2. Нужно ли менять в настройках приложения, которое пишет в КХ, локальную таблицу на "Distributed-таблицу"
3. Нужно ли менять в настройках приложения, которое ходит в КХ за данными, локальную таблицу на "Distributed-таблицу"
Roman Khavronenko, [24.07.17 10:09]
[In reply to vladimir kolobaev]
Привет!
1. Для каждой таблицы отдельно
2. Если Вы хотите, чтобы данные распределялись по кластеру - пишите в Distributed таблицу. Или самостоятельно выбирайте нужный шард и пишите в его локальную таблицу
3. Если Вы хотите получать данные со всех шард - да
мне нравится такой вариант:
1. carbon-c-relay -> пишем сразу во все ноды в локальные таблици в carbon-clickhouse
2. graphite-clickhouse -> читаем из Distributed-таблиц сразу со всех нод
и зукипером поддерживаем репликацию, между нодами


Alex
24.07.2017
07:14:23
напишите, что-ли, статью на хабре как графит на кликхаусе запустить.
С этим шардами, репликами настройками в XML(!!!) ничё не понятно .

vladimir
24.07.2017
07:16:06
я запилю статейку - как только сам разбирусь - если никто раньше не запилит
получается шардирование без шардирования
О.о

Denys ??
24.07.2017
07:36:14
Шардирование - это замечательно. Но я так и не понимаю как народ живет с графитом с шардированием без перешардирования и возможности удаления старых данных, вот хоть убей. В доках сказано что можно добавлять новые шарды с большим весом и "закрывать" старые ставя им минимальный вес (ну, если новому шарду дать вес 1000000000 а старому 1, то на 1 Гб даных в новый шард в старый будет попадать всего 1Мб) - но это же жестокий ручной "костыль".

Vladimir
24.07.2017
07:37:17
что значит "не писать никогда"
при этом для чтения он останется доступным

Denys ??
24.07.2017
07:42:30
А, значит шард можно запечатать полностью. Ну ОК. Но все одно это какой то дремучий пиздец из прошлого века и антипаттерн. А ручное добавление северов и шардов, в 20матьего17 году?

Roman
24.07.2017
07:43:00
Меньше магии - лучше, имхо

Google

Vladimir
24.07.2017
07:43:55

Alex
24.07.2017
07:45:38
@Civiloid А вы у себя уже перешли на Кликхаус?

Vladimir
24.07.2017
07:45:53
у нас в него льется статистика из графита
но не более

Alex
24.07.2017
07:47:05
вот и я не спешу.
а то, что получается, я зря сервера с 10 SSD-шками в RAID0 заказывал

vladimir
24.07.2017
07:47:56
кстати, никто не пробовал zfs в качестве файлухи к графиту?

Vladimir
24.07.2017
07:48:47
в смысле что хочется же получить тогда сжатие
а с ним большой расход цпу и надо активно играться с параметрами

Denys ??
24.07.2017
07:50:04
Я все хочу попробовать, но в клауде нашем это не просто, а на железе мы новых серверов не развертываем :)

Vladimir
24.07.2017
07:50:14
а без него разницы с ext4 нет практически никакой

Alex
24.07.2017
07:50:53
Я пробовал btrfs со сжанием - всё очень хуёво

Vladimir
24.07.2017
07:51:45

Denys ??
24.07.2017
07:52:15
А смысл zfs без сжатия для графита ? Зфс сам по себе медленнее, что xfs что ext4
Особенно заметно на hdd что для графита не очень актуально конечно

Vladimir
24.07.2017
07:53:25
@AlexAkulov мы тыкали в btrfs помоему на ядре 4.9, у нас просто каждый день ядро в себя уходило