αα½ααααΈβα’αααβααΆααα’ααααααΆ! αα
αααα»αααααααΆααα
αα»αααααααα»αααααΆααα’αααααΈαααααααααΎααααα αααΆαααααΆααααααΌαααΈααΆααααααΆαα»ααααααααα αααα»α Graphite+Whisper αα Graphite+ClickHouse αααα»αα αααααααααααααΆαα’αααΈα ααα»αααααααΆααααΆααααααα α α·ααααααααα αα·αα’αααΈαα»ααα·ααααα·αα Whisper αααααΎαααααα ααΆαα½αααααααααΌαα
αααα αΆααααΆα ααα·α + ααααΉα
1. ααΆααααα»αααααααα ααΎααααααααααααΈα
αα αααααααΆαααααΆααααααΌα αααα αα 1.5 ααΆααααααααααα»ααααααααΎααααα»ααα½αααΆααΈα ααΆαα½αααΉαααα αΌααααααα ααΆαααααΎααααΆααααΆααα ααΎαααΆαααΈαααααΊ ~30% α ααΆααΌαα ααααα·αααΆα’αΆα ααα½αααααΆα - α’αααΈααααααααΆαααααΎαααΆααααααααααααα·αααΆα ααααΌαααΆαααααααααΆαααΆαααα αα α’αΆααααΆαααΆαααα αα... αα αΌαααααααα»αα’αα·αααααααα½αααΆααααα αααα»αααΆαααααΈ α αΎαα αΆααααααΎααααααΌααα½αααΎα 10 ααΆααααααααααα»ααα½αααΆααΈα αααα αΎαααΆααααααααααααααααααααααΈαααΉααααααΉα α αΎαααΎαααΎαααΆαααααΎααααΆαα 100%α αααα αΆβααααΌαβααΆαβαααβααααΆαβαααΆαβααΆααβαα αα ααα»ααααβαα βαααβαα½αβα ααα½αβαααα
2. αααααααααΆαα αααααα·αααΆαααΆααααΆαα
ααΆαα αααΎαααΌα ααΆα’ααααααααααααΆαααααααΎ/ααααΎ Graphite+Whisper ααΎαααΆαα αΆααα ααααααΌα ααααΆαααααααααα ααΎαααΆαααΈααα Graphite ααΆα αααΎααααα»αααααααα½α ααΎααααΈαααααΎαααΆαα’ααα±αα ααααααα α»αα α αΎαβαα·αβααΆαβαααα αΆβαα·αααβα’αααΈβααΆαα½αβααΉαβααΆβαα - αα αΌαβαααβαααβαααβαααΆαααΈαβαααααΎβαα½αβααΆαβααΆααβαααβα ααα»ααβαα½αβα ααα½αα αααααααααΎαααΆααααααααααααΎααααΈαααααΆαααΈααααααααααΆααα α»ααααΆαααΆαααα αααααααααααΆαα α αΎαααΆααΌα-c-relay ααΆααααααααααααΎααααΈαααα»αααααααααΈααααΆαααααααΆααααααααΆαα αααα»αααΆ ααα»ααααααααααααα·αααΆαα α αΎααααααΆααααααΆααααααα½ααα αααα»ααααααααααααΎαααΆααααααααα rsync α ααΈαα·αα·ααΈααΊαααααΆααα αααααα»ααααααααααααα½ααααααΊααΆααΏααααααΎαα‘αΎαααααααΆααα ααΎαβααβααΆαβααβααααα»αβααααααβα αααααβααΆβαααααΆαα α αΎαβααααααααβαα½αααΆβααΆαα½αβααΉαβααααααβααααααααβαα ααΎβααααΆααβαα·αααΆαβααβα αααααα αα αααα»ααααα αα 5% ααααααΈ αααααααΆα αααΎαααΆαααΆααα»ααααααααααΆ αααααΎααα·ααααααΆαα α·αααααααΆααααΆααα
3. ααααΆαααΎααα
αααααΆαααΎααααααααΆ Graphite αα·αααααΉαααα αααααΆαα ααΆααααααααααα»ααααααα αααααΆαααααααααα»ααα·α αα (α αΎαα₯α‘αΌααααααααΆααααααααΈ Kubernetes) ααΆααΉαααΆααααΎαααα½αααΆαααααΆαααΆααα½ααααααααααααΆαααααΉαααααααααα½αα ααα½αααα»ααααα α αΎαα―αααΆα .wsp ααααΌαααΆααααααΎαα‘αΎαααααα·αααΌαααΈααΆααααααΆαα»αααΆααα’αα αααααα αα·αααααα αααααααααααΆααααα ααααΆαα»α ααααααααΆαααα½αααΎαααΊ ~2MB α αααα αΆαααααΆαααααααααααααα‘αΎααααααΆααα·ααααααΆα―αααΆαααααααααααΆααΆα αααΎαααα α‘αΎαααΆααααααααΆ α αΎααα ααααααααΎααααΆαααΆαααααΎαα½αααΆ ααΆαα’αΆαα ααα»α αααααααΌαααΆααααααααΆ αα·αααααΆαα αααΎαα
αααα»αα ααααααααααΆααααααΆααααΆαααα αΆαααααΆααα·αααααΆααΆαααΎα’αΆα ααααΌαααΆααααααααΆααααααααΎαα·ααΈααΆααααααααααααα·αααααα·αααααααα·αααααΆααα»ααααααΆααα»αααααα·ααααααααΆααααα αααΎααααα’αααα αΆααααααΎαααα½αααΆααΆααααα’αΆααααααα α α
ααΆαααΆααα’ααααΆαααΎ (αααα
αααα»αααααΈαα»αα
Graphite+ClickHouseα ααΆαααααΉααα»α
αααααΆααα
ααααααΆααΆαααααα»αααΆα
αααΎααααααα»ααααΈ Yandex αααααΆαα’αΆα
αααα»αα ααααα½αααΆαααΌα ααΆααααααα
- ααΆαααααααααΆαααααΎααααΆααααααααααααααααααΆαααΈ 30% αα 5%;
- ααΆαααααααααα ααααα»αααΈ 1TB αα 100GB;
- α’αΆα ααα½αααΆα 100 ααΆααααααααααα»ααα½αααΆααΈα αΌααα αααα»ααααΆαααΈαααα
- ααΆαα αααααα·αααααα αα·αααΆαα’ααα±αααα α»αα ααααΈαααα’αα;
- αα»αα’αααα»αααΎααααααααααααααααα½αααααΆα α αΎαααααΎααΆαααααΆααααααΌααααα»ααααααααααααααααα½αα
- ααααΌααααααααΆαααααααααα
αα α·α ααααΆααΆααααααα?
Graphite+ClickHouseα αααΆαααΆαα»
ααΎααααΈααα½αααΆααα·ααααααααΆαααααα·ααΈααΆα Graphite αα·ααααααααΆααΆααΆαααααααααΆαααα
αααα»α ClickHouse αααα»αααΆαααααΎαααΎα
ααΆαα
ααααααΆαα
α»αααααααααα»ααααα ClickHouse αααααααα·αααΆα 1.1.54253 ααααΌαααΆαααααΎαααΎαααΆααΌαααααΆααα·αααααααααααΆαααααααΆαα»ααααααΈαααααααΆα ααΆααααα αΆαα
αααααααΎααΆαααΆαα½αααΆα ααααααααα α»αααΆαα
αΆααα
αΌααα
αααα»ααααααα ααα»α αΎαααΆαα·αα
αααΆααααΆααααΌαααααΎα’αααΈααΆαα½ααα½αααα αααα»αααΆααα·ααΆααααΆααΆαα½α
ααΆαααααΎαααΎαααΎααααΈα’αΆααα·ααααααααΈ ClickHouse
Graphite+ClickHouseα αα ααΆααααααααααΆααΆα
βgraphiteβ ααΊααΆααΌαααααΆααα·αααααααααααΎααααααΎααααααΆαααααα½ααα·αα·αααααΆααΆαα
βgraphite.metricsβ - ααΆααΆαααΆαα½ααααΆαααΈα ReplicatedReplacingMergeTree (α
αααα
CREATE TABLE graphite.metrics ( Date Date, Level UInt32, Path String, Deleted UInt8, Version UInt32 ) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/replicator/graphite.metrics', βr1β, Date, (Level, Path), 8192, Version);
βgraphite.dataβ - ααΆααΆαααΆαα½ααααΆαααΈα ReplicatedGraphiteMergeTree (α
αααα
CREATE TABLE graphite.data ( Path String, Value Float64, Time UInt32, Date Date, Timestamp UInt32 ) ENGINE = ReplicatedGraphiteMergeTree('/clickhouse/tables/replicator/graphite.data', 'r1', Date, (Path, Time), 8192, 'graphite_rollup')
βgraphite.date_metricsβ ααΊααΆααΆααΆααααααααΆαααααααααααΆαα½αααΉααααΆαααΈα ReplicatedReplacingMergeTreeα ααΆααΆαααααααααααΆαααααααααααααααααΆααα’αααααααααΌαααΆααα½αααααααααα»αα’αα‘α»ααααααααα α ααα»αααααααΆααααΆααααααΎαααααααΆααααΌαααΆααα·αααααΆαα
αααα»αααααα
CREATE MATERIALIZED VIEW graphite.date_metrics ( Path String, Level UInt32, Date Date) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/replicator/graphite.date_metrics', 'r1', Date, (Level, Path, Date), 8192) AS SELECT toUInt32(length(splitByChar('.', Path))) AS Level, Date, Path FROM graphite.data
βgraphite.data_statβ - ααΆααΆααααααααΆααααααααα ααΆαα½αααΉααααΆαααΈα ReplicatedAggregatingMergeTree (α
αααα
CREATE MATERIALIZED VIEW graphite.data_stat ( Date Date, Prefix String, Timestamp UInt32, Count AggregateFunction(count)) ENGINE = ReplicatedAggregatingMergeTree('/clickhouse/tables/replicator/graphite.data_stat', 'r1', Date, (Timestamp, Prefix), 8192) AS SELECT toStartOfMonth(now()) AS Date, replaceRegexpOne(Path, '^([^.]+.[^.]+.[^.]+).*$', '1') AS Prefix, toUInt32(toStartOfMinute(toDateTime(Timestamp))) AS Timestamp, countState() AS Count FROM graphite.data GROUP BY Timestamp, Prefix
Graphite+ClickHouseα ααααΆααααΆαα’αααααααααααααΆαααΆαα»
Graphite+ClickHouseα ααΆαααααααα·αααααα
ααΌα
αααααΎαα
αα
αΆαααΈααΆαααααΉααα»αααΈααααααααα ααΆαααααΆααααααΌααα
ClickHouse αα½ααααα·αααΆααααααααααα ααΌα
ααααα αΎα ααΎαααααΌαααααΌααααααααααααα½ααα·αα·αααααΆααααΌαααααααΎααα
αααααααααα»αααααΈαααααααααααααΆααΆαααΆααααα’αΆα
ααααΎαα
ααΆααααααΆααα’αααααααΎααααΆααααααααΎαα
αααααΆαααααααααΎαααΆαααααΎααΆα
-
α αααΆαααα½αααααΌαααΆααααααααα carbon-c-relay ααΎααααΈααααΎααΆαααααααΈααααααααααααααααα carbon-clickhouse αα servers αα½ααααα»αα αααα servers αααα αΌααα½ααααα»αααΆαα ααααααΆααΆα ClickHouse α
-
ααΎαααΆααααααααααααΈαααΌα αα½ααα αααα»α python ααααααααααΎαααααΆαααααααΉαααααα α’αΆαα―αααΆα .wsp ααΆααα’ααααΈαααααααααα»αααααααΎα α αΎαααααΎαα·ααααααααααα ααΆαα carbon-clickhouse αααααΆααα·αααααΆααΆαααΎαααα»α 24 ααααα α ααα½αβαααααβααααααβαααβααΆαβααα½αβααβαα βαααα»α carbon-clickhouse ααΆαβααΆαβααα 125 ααΆαβαααα»αβαα½αβααΆααΈ α αΎα ClickHouse αα·αβααΆαβαααβααΎαβααα
-
ααΎαααΆααααααΎα DataSource ααΆα ααααα‘αααα½ααα αααα»α Grafana ααΎααααΈααααΆααααα α»ααα»αααΆααααααααΎαα αααα»αααααΆααααααααααααααααΆαααααΆααα ααΎαααΆαααααααααααΈαα»αααΆααααααΎαααΆαααααΎ ααα»ααααααΆαα·αααααΌαααΆαα’αα»αααααα αααα»α carbonapi ααα ααΎαααΆααααααααα»αααΆαααΆααααα α αΎαααΆαααααΎ PRs αα α’ααααα·αααααα carbonapi (ααΌαα’ααα»αααΆαα·αααα αααααα½ααα) α
- ααΎααααΈααααΌαααΆααααα»αααΆαα’αΆααα αααα»αααΆαααααααα»αααααΆα ααΎαααΆαααααΆααααααΌαα ααα»α αααα ααααΈ graphite-api (α ααα»α αααααΆαα API αααααΆαα Graphite+Whisper) αα carbonapi α
Graphite+ClickHouseα αααααα
-
ααΆαααααααααΆαααααΎααααΆααααααααααααααααααΆαααΈ 30% αα 1%;
- ααΆαααααααααα ααααα»αααΈ 1 TB αα 300 GB;
- ααΎαβααΆαβαααααααΆαβααα½αβααΆα 125 ααΆαβααααααβαααα»αβαα½αβααΆααΈβαα βαααα»αβαααΆαααΈαβαα (ααααΌαβαα βαααβααααΎβα αααΆαβαααα»α);
- αααααααααααααΆααα’αααα α αααααααααααα»αααΆααα·ααα·ααΆααΈ;
- ααΆαααα½αααΆαα αααααα·αααααα αα·αααΆαα’ααα±αααα α»α;
- ααααΌααααααααΆααααααααα;
- ααΆααααΌαα αααΆαααααααα αα 7 αααααΆα αααΎααααΈαααα ααα’αααΈαααΆααα’ααα
Graphite+ClickHouseα αααα αΆ
αααα»αβααααΈβααααβααΎαβααΆαβαααα αΆβααααα αααααΊααΆα’αααΈαααααΎααα½αααααααααααΆααααΈααΆαααααΆααααααΌαα
- ClickHouse αα·ααααααα’αΆαααΆααααααα‘αΎααα·αααααΆαααα αα½αααΆαααΆααααΌαα αΆααααααΎαα‘αΎααα·αα ααΆα§ααΆα ααα αααα»αααααΈααΆαααΆααα·αααααΆα’αααΈαααα»αα’ααααααα½ααααααα αααα»αααΆαααααααα ααΆαααααααα ClickHouse ααΆαα·αααααΌαααΆαααααΎαα αΌαααααααΆαααΈααα clickhouse ααααΌαααΆαα αΆααααααΎαα‘αΎααα·αα
- ααααΎ ClickHouse αααα·αααΆαααααααΆαααα ααΌα
αααααα
αααα»α graphite-clickhouse ααααααααΆαα ClickHouse ααααααΎαααΎααα
ααΌα
αααα
url = "http://localhost:8123/?max_query_size=268435456&max_ast_elements=1000000"
- ClickHouse ααΆααΉαααΆαααααα ααααααααααΈααααΆαα ααααααΆααααααΆααααααααΆα αα½αααα’αΆα ααΆαααΆαααααΆααααα’αΎαα ααΌαααααααααα
- αα»αααααααααΎααααααΆααααααα
αααα»α kubernetes ααααΎαααααΆαααα½αα
ααα½αααααΆαα½αααΉαα’αΆαα»ααΆαααααΈ αα·αα
αααααα αα·αααΆαα
ααα»α
α
αααΎααααααααΆαααααααααααααα α αΎααα·αααΆααααα αΆααΆαα½αααα ααα ααα»αααααα
ααααααααΎααααα½α ClickHouse ααα
ααα½αααααααααααααααΌα
ααααΆααΆαααααααΈααΆααΆα 'αααααα' α αααα»α 90% ααααααΈαα·αααΆααα·αααααααα
ααΎαα½αααΆααΎαααΈαααα’α½α
(24 αααα) α ααα»αααααααααααΆααααΌαααΆαα
αααΆαααΎααΆαααααααααα·ααααααααααα
αααα»αααΆααΆα 'αα·αααααα' α αΎααα
ααΈαααα»αααΉαααΆααααααΆαα’αααααα ααΎααααΈαααααααΆααααα αΆααα ααΎαααΆαα
αΆααααααΎααααααΆαα·αααααΆαααΆα
ααααα‘ααααΆαα½αααΉαααααααΆαα’αααΈαααααααααααααΌαααΆααα½αααααααα
αααααααα ααΌα
αααααα
ααααααααΎααααΆαααΆααα (ααααΆα αα) αααααΆαααα»αααΊαααααααααααΎααααααΆααααα ααΎααα½ααααααααΆααααΆααααααααααααΌαααΆααα½αααααααα
αααα»ααααα’α½α
αααααΆααααααα±αα α αΎααα·ααααααααα½ααααααααα ααααααααΎαααααΏααααΆαααααΆαααααα»αααΆαααΆαααααααΆαααΆαααααΎαα½αααΆα α
αααααααααααααΆααααααΆααα·αααααΆααΆαααΎαααα»αααΆααααααΌα
graphite-clickhouse (fork) ααααα½ααααα αΌαααΆαα’αα»ααααααΆαααΆαααΆαα½αααΆααΆα date_metrics α
Graphite+ClickHouseα ααααΆα
ααΆαα½αααΉααααα 1.1.0 Graphite ααΆαααααΆαααΆααααΌαααΆα
Graphite+ClickHouseα α§αααααα αΆαααααααΆαα·αααααααααΈ
αααααα’ααααΎα αααααΆαα ααΆαααααααααααααΆααα·αααααΆααΆαααΎ ααΎαααΆαα’αα»ααααααααΌααΎαααα§αααααααΆαααααΆααα·αααααααααΈα αΎαααΆααααΎαααΆα! ααα»ααααααααααα’αααΈααΆαααα αααα»αα’ααααααααααΆααα
Subscribe α α»α αααααΆαααα½αα‘αΎαααΎ ααΈαααΆα!
ααααα: www.habr.com