Не применяется rollup-conf = "auto" при использовании Distributed таблиц
proffust opened this issue · 1 comments
graphite-clickhouse -version
0.11.7
cat /etc/clickhouse-server/config.d/rollup.xml
<yandex>
<graphite_rollup>
<default>
<function>avg</function>
<retention>
<age>0</age>
<precision>10</precision>
</retention>
<retention>
<age>259200</age>
<precision>30</precision>
</retention>
<retention>
<age>1209600</age>
<precision>300</precision>
</retention>
<retention>
<age>2419200</age>
<precision>900</precision>
</retention>
<retention>
<age>29030400</age>
<precision>3600</precision>
</retention>
</default>
</graphite_rollup>
</yandex>
Распределенная таблица
SHOW CREATE TABLE graphite_reverse
┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.graphite_reverse (`Path` String, `Value` Float64, `Time` UInt32, `Date` Date, `Timestamp` UInt32) ENGINE = Distributed(shardOne, shardOne, graphite_reverse, sipHash64(Path)) │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Таблица с данными
SHOW CREATE TABLE shardOne.graphite_reverse
┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE shardOne.graphite_reverse (`Path` String, `Value` Float64, `Time` UInt32, `Date` Date, `Timestamp` UInt32) ENGINE = GraphiteMergeTree(Date, (Path, Time), 8192, 'graphite_rollup') │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
правила Retentions из БД
SELECT *
FROM system.graphite_retentions
┌─config_name─────┬─regexp─┬─function─┬──────age─┬─precision─┬─priority─┬─is_default─┬─Tables.database─┬─Tables.table─────────┐
│ graphite_rollup │ │ avg │ 29030400 │ 3600 │ 65535 │ 1 │ ['shardOne'] │ ['graphite_reverse'] │
│ graphite_rollup │ │ avg │ 2419200 │ 900 │ 65535 │ 1 │ ['shardOne'] │ ['graphite_reverse'] │
│ graphite_rollup │ │ avg │ 1209600 │ 300 │ 65535 │ 1 │ ['shardOne'] │ ['graphite_reverse'] │
│ graphite_rollup │ │ avg │ 259200 │ 30 │ 65535 │ 1 │ ['shardOne'] │ ['graphite_reverse'] │
│ graphite_rollup │ │ avg │ 0 │ 10 │ 65535 │ 1 │ ['shardOne'] │ ['graphite_reverse'] │
└─────────────────┴────────┴──────────┴──────────┴───────────┴──────────┴────────────┴─────────────────┴──────────────────────┘
Запрос, который делает graphite-clickhouse, чтобы эти правила получить
SELECT regexp, function, age, precision, is_default FROM system.graphite_retentions ARRAY JOIN Tables AS table WHERE (table.database = 'default') AND (table.table = 'graphite_reverse') ORDER BY is_default ASC, priority ASC, regexp ASC, age ASC
Конфиг
cat /etc/graphite-clickhouse/graphite-clickhouse.conf
[common]
listen = ":9090"
max-cpu = 8
[clickhouse]
url = "http://localhost:8123/?max_query_size=2097152&readonly=2"
data-table = ""
index-table = "graphite_index"
rollup-conf = "auto"
data-timeout = "1m0s"
index-timeout = "1m0s"
tagged-table = "graphite_tagged"
[[data-table]]
table = "graphite_reverse"
reverse = true
rollup-conf = "auto"
[[logging]]
logger = ""
file = "/var/log/graphite-clickhouse/graphite-clickhouse.log"
level = "info"
encoding = "mixed"
encoding-time = "iso8601"
encoding-duration = "seconds"
При настройке rollup-conf = "auto" точки все равно выбирались раз в одну минуту, то есть с дефолтными настройками retention. Происходит это из-за того, что выборка правил происходит по той таблице, которая настроена в конфиге graphite-clickhouse, но если она распределенная, то её упоминания с system.retentions не будет
Для работы необходимо добавить примерно следующий сниппет:
[[data-table]]
rollup-auto-table = "shardOne.graphite_reverse"
Это есть в README https://github.com/lomik/graphite-clickhouse#configuration, поиск по rollup-auto-table