Может случиться так, что в вашу систему мониторинга на основе graphite + clickhouse попало что-то лишнее/неправильно сформированная метрика или вдруг метрики от приложения/сервера вам стали больше не нужны.
На самом деле многое зависит от схемы именования метрик, если она хорошо спроектирована, то удаление может и не понадобиться. Например, у нас она не очень удачна - все базируется на имени хоста (по-хорошему надо отталкиваться от имени application, которое шлет метрики, например, stats.collectd.my-server1.load):
stats.my-server1 stats.my-server1.load stats.my-server1.load.midterm stats.my-server1.load.longterm stats.my-server1.load.shortterm stats.my-server1.memory stats.my-server1.nginx ... stats.my-server2 stats.my-server2.load stats.my-server2.load.midterm ...
Если в префикс stats будут слаться метрики от ненужных хостов/контейнеров/вообще что-то постороннее, то мы можем увидеть следующее:
К примеру, полученные метрики от collectd:
Переменная server в графане выглядит как stats.* На скриншоте метрики от короткоживущих контейнеров, которые не нужны (в stats.* ожидаем увидеть нормальные говорящие имена физических серверов).
Чтобы это почисть, необходимо выполнить 2 шага:
1. Почистить данные из таблицы с типом index:
carbon-clickhouse.conf: ... [upload.graphite_index] type = "index" table = "graphite.graphite_index"
Запрос в БД:
Use graphite ALTER TABLE graphite_index delete where Path like 'stats.bad_metrics.%'; ALTER TABLE graphite_index delete where Path like 'stats.486f3dfaddef.%';
2. Почистить данные из таблицы с типом points:
carbon-clickhouse.conf: ... [upload.graphite] type = "points" table = "graphite.graphite"
Запрос в БД:
USE graphite ALTER TABLE graphite delete where Path like 'stats.0b54abdd995e.%';
Посмотреть как все будет удаляться (т.к. удаление асинхронно):
select * from system.mutations where table='graphite_index' FORMAT Vertical; select * from system.mutations where table='graphite' FORMAT Vertical;
Насчет второго шага очень сильно не уверен - когда будут большие объемы записанных метрик, то здесь могут быть проблемы. На практике удаление points из таблицы объемом ~30Гб, расположенной на одном сервере, заняло часы. Предположительно в будущем объем метрик в БД будет до 1,5 ТБ и очень вероятно, что второй шаг не стоит делать. На самом деле, чтобы графана перестала отображать список содержимого из пути stats, достаточно почистить данные в таблице graphite_index.