ืื—ืกื•ืŸ ืžื“ื“ื™ื: ืื™ืš ืขื‘ืจื ื• ืž-Graphite+Whisper ืœ-Graphite+ClickHouse

ืฉืœื•ื ืœื›ื•ืœื! ื‘ื• ื”ืžืืžืจ ื”ืื—ืจื•ืŸ ื›ืชื‘ืชื™ ืขืœ ืืจื’ื•ืŸ ืžืขืจื›ืช ื ื™ื˜ื•ืจ ืžื•ื“ื•ืœืจื™ืช ืœืืจื›ื™ื˜ืงื˜ื•ืจืช ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื. ืฉื•ื ื“ื‘ืจ ืœื ืขื•ืžื“ ื‘ืžืงื•ื, ื”ืคืจื•ื™ืงื˜ ืฉืœื ื• ื’ื“ืœ ื›ืœ ื”ื–ืžืŸ, ื•ื›ืš ื’ื ืžืกืคืจ ื”ืžื“ื“ื™ื ื”ืžืื•ื—ืกื ื™ื. ืื™ืš ืืจื’ื ื• ืืช ื”ืžืขื‘ืจ ืž-Graphite+Whisper ืœ-Graphite+ClickHouse ื‘ืชื ืื™ ืขื•ืžืก ื’ื‘ื•ื”, ืงืจืื• ืขืœ ื”ืฆื™ืคื™ื•ืช ืžืžื ื• ื•ืขืœ ืชื•ืฆืื•ืช ื”ื”ื’ื™ืจื” ืชื—ืช ื”ื—ืชืš.

ืื—ืกื•ืŸ ืžื“ื“ื™ื: ืื™ืš ืขื‘ืจื ื• ืž-Graphite+Whisper ืœ-Graphite+ClickHouse

ืœืคื ื™ ืฉืืกืคืจ ืœื›ื ืื™ืš ืืจื’ื ื• ืืช ื”ืžืขื‘ืจ ืžืื—ืกื•ืŸ ืžื“ื“ื™ื ื‘-Graphite+Whisper ืœ-Graphite+ClickHouse, ื‘ืจืฆื•ื ื™ ืœืชืช ืžื™ื“ืข ืขืœ ื”ืกื™ื‘ื•ืช ืœืงื‘ืœืช ื”ื—ืœื˜ื” ื›ื–ื• ื•ืขืœ ื”ื—ืกืจื•ื ื•ืช ืฉืœ Whisper ืฉืื™ืชื ื—ื™ื™ื ื• ืชืงื•ืคื” ืืจื•ื›ื”.

ื‘ืขื™ื•ืช ื’ืจืคื™ื˜+ืœื—ื™ืฉื”

1. ืขื•ืžืก ื’ื‘ื•ื” ืขืœ ืชืช-ืžืขืจื›ืช ื”ื“ื™ืกืง

ื‘ื–ืžืŸ ื”ืžืขื‘ืจ, ื›-1.5 ืžื™ืœื™ื•ืŸ ืžื“ื“ื™ื ื”ื’ื™ืขื• ืืœื™ื ื• ืœื“ืงื”. ืขื ื–ืจื™ืžื” ื›ื–ื•, ื ื™ืฆื•ืœ ื”ื“ื™ืกืง ื‘ืฉืจืชื™ื ื”ื™ื” ~30%. ื‘ืื•ืคืŸ ื›ืœืœื™, ื–ื” ื”ื™ื” ื“ื™ ืžืงื•ื‘ืœ - ื”ื›ืœ ืขื‘ื“ ื‘ื™ืฆื™ื‘ื•ืช, ื ื›ืชื‘ ืžื”ืจ, ืงืจื ื‘ืžื”ื™ืจื•ืช... ืขื“ ืฉืื—ื“ ืžืฆื•ื•ืชื™ ื”ืคื™ืชื•ื— ื”ื•ืฆื™ื ืคื™ืฆ'ืจ ื—ื“ืฉ ื•ื”ืชื—ื™ืœ ืœืฉืœื•ื— ืœื ื• 10 ืžื™ืœื™ื•ืŸ ืžื“ื“ื™ื ืœื“ืงื”. ื–ื” ื”ื–ืžืŸ ืฉื‘ื• ืชืช-ืžืขืจื›ืช ื”ื“ื™ืกืง ื”ืชื”ื“ืงื”, ื•ืจืื™ื ื• ื ื™ืฆื•ืœ ืฉืœ 100%. ื”ื‘ืขื™ื” ื ืคืชืจื” ื‘ืžื”ื™ืจื•ืช, ืืš ื ืฉืืจื” ืฉืืจื™ืช.

2. ื—ื•ืกืจ ืฉื›ืคื•ืœ ื•ืขืงื‘ื™ื•ืช

ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื›ืžื• ื›ืœ ืžื™ ืฉืžืฉืชืžืฉ/ื”ืฉืชืžืฉ ื‘-Graphite+Whisper, ืฉืคื›ื ื• ืืช ืื•ืชื• ื–ืจื ืฉืœ ืžื“ื“ื™ื ืขืœ ืžืกืคืจ ืฉืจืชื™ ื’ืจืคื™ื˜ ื‘ื• ื–ืžื ื™ืช ืขืœ ืžื ืช ืœื™ืฆื•ืจ ืกื•ื‘ืœื ื•ืช ืœืชืงืœื•ืช. ื•ืœื ื”ื™ื• ืขื ื–ื” ื‘ืขื™ื•ืช ืžื™ื•ื—ื“ื•ืช - ืขื“ ืœืจื’ืข ืฉื‘ื• ืื—ื“ ื”ืฉืจืชื™ื ืงืจืก ืžืกื™ื‘ื” ื›ืœืฉื”ื™. ืœืคืขืžื™ื ื”ืฆืœื—ื ื• ืœืงืœื•ื˜ ืฉืจืช ืฉื ืคืœ ืžืกืคื™ืง ืžื”ืจ, ื•-carbon-c-relay ื”ืฆืœื™ื— ืœื˜ืขื•ืŸ ืœืชื•ื›ื• ืžื“ื“ื™ื ืžื”ืžื˜ืžื•ืŸ ืฉืœื•, ืื‘ืœ ืœืคืขืžื™ื ืœื. ื•ืื– ื”ื™ื” ื—ื•ืจ ื‘ืžื“ื“ื™ื, ืฉืžื™ืœืื ื• ื‘-rsync. ื”ื”ืœื™ืš ื”ื™ื” ืืจื•ืš ืœืžื“ื™. ื”ื—ืกื“ ื”ืžืฆื™ืœ ื”ื™ื—ื™ื“ ื”ื™ื” ืฉื–ื” ืงืจื” ืœืขืชื™ื ืจื—ื•ืงื•ืช ืžืื•ื“. ื›ืžื• ื›ืŸ ืœืงื—ื ื• ืžื“ื™ ืคืขื ืงื‘ื•ืฆื” ืืงืจืื™ืช ืฉืœ ืžื“ื“ื™ื ื•ื”ืฉื•ื•ื™ื ื• ืื•ืชื ืขื ืื—ืจื™ื ืžืื•ืชื• ืกื•ื’ ื‘ืฆืžืชื™ื ืฉื›ื ื™ื ืฉืœ ื”ืืฉื›ื•ืœ. ื‘ื›-5% ืžื”ืžืงืจื™ื, ื›ืžื” ืขืจื›ื™ื ื”ื™ื• ืฉื•ื ื™ื, ืžื” ืฉืœื ื”ื™ื™ื ื• ืžืื•ื“ ืžืจื•ืฆื™ื ืžื”ื.

3. ื˜ื‘ื™ืขืช ืจื’ืœ ื’ื“ื•ืœื”

ืžื›ื™ื•ื•ืŸ ืฉืื ื• ื›ื•ืชื‘ื™ื ื‘-Graphite ืœื ืจืง ืชืฉืชื™ืช, ืืœื ื’ื ืžื“ื“ื™ื ืขืกืงื™ื™ื (ื•ืขื›ืฉื™ื• ื’ื ืžื“ื“ื™ื ืž-Kubernetes), ืœื ืคืขื ืื ื• ืžืงื‘ืœื™ื ืžืฆื‘ ื‘ื• ื”ืžื“ื“ ืžื›ื™ืœ ืจืง ื›ืžื” ืขืจื›ื™ื, ื•ืงื•ื‘ืฅ ื”-wsp ื ื•ืฆืจ ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ื›ืœ ื”ืฉืžื™ืจื” ืชืงื•ืคื”, ื•ืชื•ืคืก ื›ืžื•ืช ืžืงื•ื ืฉื”ื•ืงืฆื” ืžืจืืฉ, ืฉืขื‘ื•ืจื ื• ื”ื™ื” ~2MB. ื”ื‘ืขื™ื” ืžื—ืžื™ืจื” ืขื•ื“ ื™ื•ืชืจ ืžื›ืš ืฉื”ืจื‘ื” ืงื‘ืฆื™ื ื“ื•ืžื™ื ืžื•ืคื™ืขื™ื ืขื ื”ื–ืžืŸ, ื•ื›ืืฉืจ ื‘ื•ื ื™ื ืขืœื™ื”ื ื“ื•ื—ื•ืช, ืงืจื™ืืช ื ืงื•ื“ื•ืช ืจื™ืงื•ืช ื’ื•ื–ืœืช ื–ืžืŸ ื•ืžืฉืื‘ื™ื ืจื‘ื™ื.

ื‘ืจืฆื•ื ื™ ืœืฆื™ื™ืŸ ืžื™ื“ ื›ื™ ื ื™ืชืŸ ืœื”ืชืžื•ื“ื“ ืขื ื”ื‘ืขื™ื•ืช ื”ืžืชื•ืืจื•ืช ืœืขื™ืœ ื‘ืฉื™ื˜ื•ืช ืฉื•ื ื•ืช ื•ื‘ื“ืจื’ื•ืช ื™ืขื™ืœื•ืช ืฉื•ื ื•ืช, ืืš ื›ื›ืœ ืฉืžืชื—ื™ืœื™ื ืœืงื‘ืœ ื™ื•ืชืจ ื ืชื•ื ื™ื, ื›ืš ื”ืŸ ืžื—ืžื™ืจื•ืช.

ืขื ื›ืœ ื”ืืžื•ืจ ืœืขื™ืœ (ื‘ื”ืชื—ืฉื‘ ื‘ืงื•ื“ื ืžืืžืจื™ื), ื›ืžื• ื’ื ืขืœื™ื™ื” ืžืชืžื“ืช ื‘ืžืกืคืจ ื”ืžื“ื“ื™ื ืฉื”ืชืงื‘ืœื•, ื”ืจืฆื•ืŸ ืœื”ืขื‘ื™ืจ ืืช ื›ืœ ื”ืžื“ื“ื™ื ืœืžืจื•ื•ื— ืื—ืกื•ืŸ ืฉืœ 30 ืฉื ื™ื•ืช. (ืขื“ 10 ืฉื ื™ื•ืช ื‘ืžื™ื“ืช ื”ืฆื•ืจืš), ื”ื—ืœื˜ื ื• ืœื ืกื•ืช ืืช Graphite+ClickHouse ื›ื—ืœื•ืคื” ืžื‘ื˜ื™ื—ื” ืœ- Whisper.

ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก. ืฆื™ืคื™ื•ืช

ืœืื—ืจ ืฉื‘ื™ืงืจืชื™ ื‘ื›ืžื” ืžืคื’ืฉื™ื ืฉืœ ื”ื—ื‘ืจ'ื” ืžื™ืื ื“ืงืก, ืœืื—ืจ ืฉืงืจืืชื™ ื›ืžื” ืžืืžืจื™ื ืขืœ Habrรฉ, ืœืื—ืจ ืฉืขื‘ืจื ื• ืขืœ ื”ืชื™ืขื•ื“ ื•ืžืฆืื ื• ืจื›ื™ื‘ื™ื ืฉืคื•ื™ื™ื ืœืงื™ืฉื•ืจ ClickHouse ืชื—ืช ื’ืจืคื™ื˜, ื”ื—ืœื˜ื ื• ืœื ืงื•ื˜ ื‘ืคืขื•ืœื”!

ื‘ืจืฆื•ื ื™ ืœืงื‘ืœ ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

  • ืœื”ืคื—ื™ืช ืืช ื ื™ืฆื•ืœ ืชืช-ืžืขืจื›ืช ื”ื“ื™ืกืง ืž-30% ืœ-5%;
  • ืœื”ืคื—ื™ืช ืืช ื›ืžื•ืช ื”ืฉื˜ื— ื”ืชืคื•ืกื” ืž-1TB ืœ-100GB;
  • ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœืงื‘ืœ 100 ืžื™ืœื™ื•ืŸ ืžื“ื“ื™ื ืœื“ืงื” ืœืชื•ืš ื”ืฉืจืช;
  • ืฉื›ืคื•ืœ ื ืชื•ื ื™ื ื•ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช ืžื—ื•ืฅ ืœืงื•ืคืกื”;
  • ืืœ ืชืฉื‘ ืขืœ ื”ืคืจื•ื™ืงื˜ ื”ื–ื” ื‘ืžืฉืš ืฉื ื” ื•ืชืขืฉื” ืืช ื”ืžืขื‘ืจ ื‘ืชื•ืš ืžืกื’ืจืช ื–ืžืŸ ืกื‘ื™ืจื”;
  • ืžืชื’ ืœืœื ื–ืžืŸ ื”ืฉื‘ืชื”.

ื“ื™ ืฉืืคืชื ื™, ื ื›ื•ืŸ?

ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก. ืจื›ื™ื‘ื™ื

ื›ื“ื™ ืœืงื‘ืœ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ Graphite ื•ืœืื—ืจ ืžื›ืŸ ืœื”ืงืœื™ื˜ ืื•ืชื ื‘- ClickHouse, ื‘ื—ืจืชื™ ื‘ื™ืช ืคื—ืžืŸ-ืงืœื™ืง (ื’ื•ืœื ื’).

ื”ืžื”ื“ื•ืจื” ื”ืื—ืจื•ื ื” ืฉืœ ClickHouse, ื’ืจืกื” ื™ืฆื™ื‘ื” 1.1.54253, ื ื‘ื—ืจื” ื›ืžืกื“ ื”ื ืชื•ื ื™ื ืœืื—ืกื•ืŸ ืกื“ืจื•ืช ื–ืžืŸ. ื”ื™ื• ื‘ืขื™ื•ืช ื‘ืขื‘ื•ื“ื” ืขื ื–ื”: ื”ืจ ืฉืœ ืฉื’ื™ืื•ืช ื ืฉืคืš ืœืชื•ืš ื”ื™ื•ืžื ื™ื, ื•ืœื ื”ื™ื” ื‘ืจื•ืจ ืœื’ืžืจื™ ืžื” ืœืขืฉื•ืช ืื™ืชืŸ. ื‘ื“ื™ื•ืŸ ืขื ืจื•ืžืŸ ืœื•ืžื•ื ื•ืกื•ื‘ (ืžื—ื‘ืจ carbon-clickhouse, graphite-clickhouse ื•ืจื‘ื™ื ืจื‘ื™ื ื ื•ืกืคื™ื) ื”ืžื‘ื•ื’ืจ ื™ื•ืชืจ ื ื‘ื—ืจ ื’ืจืกื” 1.1.54236. ื”ืฉื’ื™ืื•ืช ื ืขืœืžื• - ื”ื›ืœ ื”ืชื—ื™ืœ ืœืขื‘ื•ื“ ื‘ืจืขืฉ ื’ื“ื•ืœ.

ื ื‘ื—ืจ ืœืงืจื•ื ื ืชื•ื ื™ื ืž-ClickHouse ื’ืจืคื™ื˜-ืกืœื™ืงื”ืื•ืก (ื’ื•ืœื ื’). ื›-API ืขื‘ื•ืจ ื’ืจืคื™ื˜ - ืงืจื‘ื•ื ืคื™ (ื’ื•ืœื ื’). ClickHouse ืฉื™ืžืฉ ืœืืจื’ื•ืŸ ืฉื›ืคื•ืœ ื‘ื™ืŸ ื˜ื‘ืœืื•ืช ืฉื•ืžืจ ื—ื™ื•ืช. ืขื‘ื•ืจ ืžื“ื“ื™ ื ื™ืชื•ื‘, ืขื–ื‘ื ื• ืืช ืื”ื•ื‘ืชื ื• ืžืžืกืจ ืคื—ืžืŸ-c (C) (ืจืื” ืžืืžืจ ืงื•ื“ื).

ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก. ืžื‘ื ื” ื”ืฉื•ืœื—ืŸ

"ื’ืจืคื™ื˜" ื”ื•ื ืžืกื“ ื ืชื•ื ื™ื ืฉื™ืฆืจื ื• ืœื ื™ื˜ื•ืจ ื˜ื‘ืœืื•ืช.

"graphite.metrics" - ื˜ื‘ืœื” ืขื ืžื ื•ืข ReplicatedReplacingMergeTree (ืžืฉื•ื›ืคืœ ืžื—ืœื™ืฃMergeTree). ื˜ื‘ืœื” ื–ื• ืžืื—ืกื ืช ืืช ืฉืžื•ืช ื”ืžื“ื“ื™ื ื•ื”ื ืชื™ื‘ื™ื ืืœื™ื”ื.

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 (ืžืฉื•ื›ืคืœ GraphiteMergeTree). ื˜ื‘ืœื” ื–ื• ืžืื—ืกื ืช ืขืจื›ื™ ืžื“ื“ื™ื.

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 (ืžืฉื•ื›ืคืœ ืฆื‘ื™ืจื”MergeTree). ื˜ื‘ืœื” ื–ื• ืžืชืขื“ืช ืืช ืžืกืคืจ ื”ืžื“ื“ื™ื ื”ื ื›ื ืกื™ื, ื‘ื—ืœื•ืงื” ืœ-4 ืจืžื•ืช ืงื™ื ื•ืŸ.

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+Whisper ืœ-Graphite+ClickHouse

ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก. ื”ืขื‘ืจืช ื ืชื•ื ื™ื

ื›ืคื™ ืฉืื ื• ื–ื•ื›ืจื™ื ืžื”ืฆื™ืคื™ื•ืช ืžื”ืคืจื•ื™ืงื˜ ื”ื–ื”, ื”ืžืขื‘ืจ ืœ-ClickHouse ืฆืจื™ืš ืœื”ื™ื•ืช ืœืœื ื–ืžื ื™ ื”ืฉื‘ืชื”; ื‘ื”ืชืื, ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืื™ื›ืฉื”ื• ืœื”ืขื‘ื™ืจ ืืช ื›ืœ ืžืขืจื›ืช ื”ื ื™ื˜ื•ืจ ืฉืœื ื• ืœืื—ืกื•ืŸ ื”ื—ื“ืฉ ื‘ืฆื•ืจื” ืฉืงื•ืฃ ื›ื›ืœ ื”ืืคืฉืจ ืขื‘ื•ืจ ื”ืžืฉืชืžืฉื™ื ืฉืœื ื•.
ื›ืš ืขืฉื™ื ื• ืืช ื–ื”.

  • ื›ืœืœ ื ื•ืกืฃ ืœ-carbon-c-relay ื›ื“ื™ ืœืฉืœื•ื— ื–ืจื ื ื•ืกืฃ ืฉืœ ืžื“ื“ื™ื ืœ-carbon-clickhouse ืฉืœ ืื—ื“ ื”ืฉืจืชื™ื ื”ืžืฉืชืชืคื™ื ื‘ืฉื›ืคื•ืœ ืฉืœ ื˜ื‘ืœืื•ืช ClickHouse.

  • ื›ืชื‘ื ื• ืกืงืจื™ืคื˜ ืงื˜ืŸ ื‘-python, ืฉื‘ืืžืฆืขื•ืช ืกืคืจื™ื™ืช whisper-dump, ืงืจื ืืช ื›ืœ ืงื‘ืฆื™ ื”-wsp ืžื”ืื—ืกื•ืŸ ืฉืœื ื• ื•ืฉืœื—ื ื• ืืช ื”ื ืชื•ื ื™ื ื”ืืœื” ืœ-carbon-clickhouse ื”ืžืชื•ืืจ ืœืขื™ืœ ื‘-24 ืฉืจืฉื•ืจื™ื. ืžืกืคืจ ื”ืขืจื›ื™ื ื”ืžื˜ืจื™ื™ื ื”ืžืงื•ื‘ืœื™ื ื‘-carbon-clickhouse ื”ื’ื™ืข ืœ-125 ืžื™ืœื™ื•ืŸ ืœื“ืงื”, ื•-ClickHouse ืืคื™ืœื• ืœื ื”ื–ื™ืขื”.

  • ื™ืฆืจื ื• DataSource ื ืคืจื“ ื‘-Grafana ื›ื“ื™ ืœื ืคื•ืช ื‘ืื’ื™ื ื‘ืคื•ื ืงืฆื™ื•ืช ื”ืžืฉืžืฉื•ืช ื‘ืžืจื›ื–ื™ ืžื—ื•ื•ื ื™ื ืงื™ื™ืžื™ื. ื–ื™ื”ื™ื ื• ืจืฉื™ืžื” ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืฉื”ืฉืชืžืฉื ื• ื‘ื”ืŸ, ืืš ื”ืŸ ืœื ื™ื•ืฉืžื• ื‘-carbonapi. ื”ื•ืกืคื ื• ืืช ื”ืคื•ื ืงืฆื™ื•ืช ื”ืœืœื• ื•ืฉืœื—ื ื• ื™ื—ืกื™ ืฆื™ื‘ื•ืจ ืœืžื—ื‘ืจื™ carbonapi (ืชื•ื“ื” ืžื™ื•ื—ื“ืช ืœื”ื).

  • ื›ื“ื™ ืœื”ื—ืœื™ืฃ ืืช ืขื•ืžืก ื”ืงืจื™ืื” ื‘ื”ื’ื“ืจื•ืช ื”ืื™ื–ื•ืŸ, ืฉื™ื ื™ื ื• ืืช ื ืงื•ื“ื•ืช ื”ืงืฆื” ืž-graphite-api (ืžืžืฉืง API ืขื‘ื•ืจ Graphite+Whisper) ืœ-carbonapi.

ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก. ืชื•ืฆืื•ืช

  • ื”ืคื—ืชืช ื ื™ืฆื•ืœ ืชืช-ืžืขืจื›ืช ื”ื“ื™ืกืง ืž-30% ืœ-1%;

    ืื—ืกื•ืŸ ืžื“ื“ื™ื: ืื™ืš ืขื‘ืจื ื• ืž-Graphite+Whisper ืœ-Graphite+ClickHouse

  • ื”ืคื—ื™ืช ืืช ื›ืžื•ืช ื”ืฉื˜ื— ื”ืชืคื•ืกื” ืž-1 TB ืœ-300 GB;
  • ื™ืฉ ืœื ื• ืืช ื”ื™ื›ื•ืœืช ืœืงื‘ืœ 125 ืžื™ืœื™ื•ืŸ ืžื“ื“ื™ื ืœื“ืงื” ืœืชื•ืš ื”ืฉืจืช (ืฉื™ืื™ื ื‘ื–ืžืŸ ื”ื”ื’ื™ืจื”);
  • ื”ืขื‘ื™ืจ ืืช ื›ืœ ื”ืžื“ื“ื™ื ืœืžืจื•ื•ื— ืื—ืกื•ืŸ ืฉืœ ืฉืœื•ืฉื™ื ืฉื ื™ื•ืช;
  • ืฉื›ืคื•ืœ ื ืชื•ื ื™ื ืฉื”ืชืงื‘ืœื• ื•ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช;
  • ื”ืชื—ืœืฃ ืœืœื ื–ืžืŸ ื”ืฉื‘ืชื”;
  • ื–ื” ืœืงื— ื‘ืขืจืš 7 ืฉื‘ื•ืขื•ืช ื›ื“ื™ ืœื”ืฉืœื™ื ื”ื›ืœ.

ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก. ื‘ืขื™ื•ืช

ื‘ืžืงืจื” ืฉืœื ื•, ื”ื™ื• ื›ืžื” ืžืœื›ื•ื“ื•ืช. ื–ื” ืžื” ืฉื ืชืงืœื ื• ื‘ื• ืœืื—ืจ ื”ืžืขื‘ืจ.

  1. ClickHouse ืœื ืชืžื™ื“ ืงื•ืจื ืžื—ื“ืฉ ื”ื’ื“ืจื•ืช ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”; ืœืคืขืžื™ื ืฆืจื™ืš ืœืืชื—ืœ ืื•ืชื• ืžื—ื“ืฉ. ืœื“ื•ื’ืžื”, ื‘ืžืงืจื” ืฉืœ ื”ืชื™ืื•ืจ ืฉืœ ืืฉื›ื•ืœ ืฉื•ืžืจ ื’ืŸ ื”ื—ื™ื•ืช ื‘ืชืฆื•ืจืช ClickHouse, ืœื ื ืขืฉื” ื‘ื• ืฉื™ืžื•ืฉ ืขื“ ืฉื”-Clickhouse-ืฉืจืช ืื•ืชื—ืœ ืžื—ื“ืฉ.
  2. ื‘ืงืฉื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ClickHouse ืœื ืขื‘ืจื•, ืื– ื‘-graphite-clickhouse ืžื—ืจื•ื–ืช ื”ื—ื™ื‘ื•ืจ ืฉืœื ื• ืœ-ClickHouse ื ืจืื™ืช ื›ืš:
    url = "http://localhost:8123/?max_query_size=268435456&max_ast_elements=1000000"
  3. ClickHouse ืžืฉื—ืจืจืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ืฉืœ ืžื”ื“ื•ืจื•ืช ื™ืฆื™ื‘ื•ืช; ื”ืŸ ืขืฉื•ื™ื•ืช ืœื”ื›ื™ืœ ื”ืคืชืขื•ืช: ื”ื™ื–ื”ืจ.
  4. ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉื ื•ืฆืจื• ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ื‘-kubernetes ืฉื•ืœื—ื™ื ืžืกืคืจ ืจื‘ ืฉืœ ืžื“ื“ื™ื ืขื ืื•ืจืš ื—ื™ื™ื ืงืฆืจ ื•ืืงืจืื™. ืื™ืŸ ื”ืจื‘ื” ื ืงื•ื“ื•ืช ืœืžื“ื“ื™ื ื›ืืœื”, ื•ืื™ืŸ ื‘ืขื™ื•ืช ืขื ืฉื˜ื—. ืื‘ืœ ื‘ืขืช ื‘ื ื™ื™ืช ืฉืื™ืœืชื•ืช, ClickHouse ืงื•ืœื˜ ืžืกืคืจ ืขืฆื•ื ืฉืœ ืื•ืชื ืžื“ื“ื™ื ืžื˜ื‘ืœืช ื”'ืžื“ื“ื™ื'. ื‘-90% ืžื”ืžืงืจื™ื ืื™ืŸ ื ืชื•ื ื™ื ืขืœื™ื”ื ืžืขื‘ืจ ืœื—ืœื•ืŸ (24 ืฉืขื•ืช). ืื‘ืœ ื”ื–ืžืŸ ืžื•ืฉืงืข ื‘ื—ื™ืคื•ืฉ ืื—ืจ ื”ื ืชื•ื ื™ื ื”ืืœื” ื‘ื˜ื‘ืœืช 'ื ืชื•ื ื™ื', ื•ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื ืชืงืœ ื‘ืคืกืง ื–ืžืŸ. ืขืœ ืžื ืช ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื•, ื”ืชื—ืœื ื• ืœืฉืžื•ืจ ืขืœ ืชืฆื•ื’ื” ื ืคืจื“ืช ืขื ืžื™ื“ืข ืขืœ ืžื“ื“ื™ื ืฉื ืชืงืœื• ื‘ื”ื ื‘ืžื”ืœืš ื”ื™ื•ื. ืœืคื™ื›ืš, ื‘ืขืช ื‘ื ื™ื™ืช ื“ื•ื—ื•ืช (ื’ืจืคื™ื) ืขื‘ื•ืจ ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉื ื•ืฆืจื• ื‘ืื•ืคืŸ ื“ื™ื ืžื™, ืื ื• ืžื‘ืฆืขื™ื ืฉืื™ืœืชื•ืช ืจืง ืœืื•ืชื ืžื“ื“ื™ื ืฉื ืชืงืœื• ื‘ื—ืœื•ืŸ ื ืชื•ืŸ, ื•ืœื ื‘ืžืฉืš ื›ืœ ื”ื–ืžืŸ, ืžื” ืฉื”ืื™ืฅ ืžืฉืžืขื•ืชื™ืช ืืช ื‘ื ื™ื™ืช ื”ื“ื•ื—ื•ืช ืขืœื™ื”ื. ืขื‘ื•ืจ ื”ืคืชืจื•ืŸ ื”ืžืชื•ืืจ ืœืขื™ืœ, ืืกืคืชื™ ื’ืจืคื™ื˜-ืงืœื™ืง ื”ืื•ืก (ืžื–ืœื’), ื”ื›ื•ืœืœ ื”ื˜ืžืขืช ืขื‘ื•ื“ื” ืขื ื˜ื‘ืœืช date_metrics.

ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก. ืชื’ื™ื

ืขื ื’ืจืกื” 1.1.0 ื’ืจืคื™ื˜ ื”ืคืš ืœืจืฉืžื™ ืชื’ื™ ืชืžื™ื›ื”. ื•ืื ื—ื ื• ื—ื•ืฉื‘ื™ื ื‘ืื•ืคืŸ ืคืขื™ืœ ืขืœ ืžื” ื•ืื™ืš ืœืขืฉื•ืช ื›ื“ื™ ืœืชืžื•ืš ื‘ื™ื•ื–ืžื” ื–ื• ื‘ืขืจื™ืžืช ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก.

ื’ืจืคื™ื˜+ืงืœื™ืงื”ืื•ืก. ื’ืœืื™ ืื ื•ืžืœื™ื•ืช

ื‘ื”ืชื‘ืกืก ืขืœ ื”ืชืฉืชื™ืช ืฉืชื•ืืจื” ืœืขื™ืœ, ื”ื˜ืžืขื ื• ืื‘ ื˜ื™ืคื•ืก ืฉืœ ื’ืœืื™ ืื ื•ืžืœื™ื”, ื•ื–ื” ืขื•ื‘ื“! ืื‘ืœ ืขื•ื“ ืขืœื™ื• ื‘ื›ืชื‘ื” ื”ื‘ืื”.

ื”ื™ืจืฉื, ืœื—ืฅ ืขืœ ื”ื—ืฅ ืœืžืขืœื” ื•ื”ื™ื” ืžืื•ืฉืจ!

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”