ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ! Π ΠΌΠΎΡ ΠΏΠΈΡΠ°Ρ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΠΈΡΠΎ Π½Π΅ ΡΡΠΎΠΈ Π½Π° ΠΌΡΡΡΠΎ, Π½Π°ΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΠ΅, ΠΈ Π±ΡΠΎΡΡ Π½Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΡΡΠΎ. ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΡΠ΅Ρ ΠΎΠ΄Π° ΠΎΡ Graphite+Whisper ΠΊΡΠΌ Graphite+ClickHouse ΠΏΡΠΈ Π²ΠΈΡΠΎΠΊΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ, ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΎΡ Π½Π΅Π³ΠΎ ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ°, ΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ.

ΠΡΠ΅Π΄ΠΈ Π΄Π° Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΡΠ΅Ρ ΠΎΠ΄Π° ΠΎΡ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² Graphite+Whisper ΠΊΡΠΌ Graphite+ClickHouse, Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π·Π°Π΄ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° Whisper, Ρ ΠΊΠΎΠΈΡΠΎ ΠΆΠΈΠ²Π΅Π΅Ρ ΠΌΠ΅ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Graphite+Whisper
1. ΠΠΈΡΠΎΠΊΠ° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΎΡΡ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΡΠ΅Ρ ΠΎΠ΄Π°, ΠΊΡΠΌ Π½Π°Ρ ΠΈΠ΄Π²Π°Ρ Π° ΠΎΠΊΠΎΠ»ΠΎ 1.5 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΠΌΠΈΠ½ΡΡΠ°. Π‘ ΡΠΎΠ·ΠΈ ΠΏΠΎΡΠΎΠΊ, Π΄ΠΈΡΠΊΠΎΠ²Π°ΡΠ° ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π±Π΅ΡΠ΅ ΠΎΠΊΠΎΠ»ΠΎ ~30%. ΠΠ±ΡΠΎ Π²Π·Π΅ΡΠΎ, ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ β Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ, Π±ΡΡΠ·ΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°ΡΠ΅, Π±ΡΡΠ·ΠΎ ΡΠ΅ ΡΠ΅ΡΠ΅ΡΠ΅β¦ ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΅ΠΊΠΈΠΏΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π΅ ΠΏΡΡΠ½Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π½Π΅ Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° Π½ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° 10 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΠΌΠΈΠ½ΡΡΠ°. Π’ΠΎΠ³Π°Π²Π° Π΄ΠΈΡΠΊΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠΈ, ΠΈ Π²ΠΈΠ΄ΡΡ ΠΌΠ΅ 100% ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π±Π΅ΡΠ΅ Π±ΡΡΠ·ΠΎ ΡΠ΅ΡΠ΅Π½, Π½ΠΎ Π½Π΅ ΠΎΡΡΠ°Π½Π° Π±Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ.
2. ΠΠΈΠΏΡΠ° Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡ
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΊΠ°ΠΊΡΠΎ Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ/ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ Graphite+Whisper, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΏΠΎΡΠΎΠΊ ΠΎΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Graphite ΡΡΡΠ²ΡΡΠ° Ρ ΡΠ΅Π» ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ. Π Ρ ΡΠΎΠ²Π° Π½ΡΠΌΠ°Ρ ΠΌΠ΅ ΠΎΡΠΎΠ±Π΅Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ β Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡΠ²ΡΡΠΈΡΠ΅ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° Π½Π΅ ΠΏΠ°Π΄Π½Π°. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΡΠΏΡΠ²Π°Ρ ΠΌΠ΅ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΠ°Π΄Π½Π°Π»ΠΈΡ ΡΡΡΠ²ΡΡ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π±ΡΡΠ·ΠΎ, Π° carbon-c-relay ΡΡΠΏΡΠ²Π°ΡΠ΅ Π΄Π° Π²Π»Π΅Π΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΠΊΠ΅Ρ, Π° ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π½Π΅. Π ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°ΡΠ΅ Π΄ΡΠΏΠΊΠ° Π² ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅, ΠΊΠΎΡΡΠΎ Π·Π°ΠΏΡΠ»Π²Π°Ρ ΠΌΠ΅ Ρ rsync. ΠΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΠ° Π΄ΡΠ»Π³Π°. Π‘ΠΏΠ°ΡΠ°Π²Π°ΡΠ΅ Π½ΠΈ ΡΠ°ΠΌΠΎ, ΡΠ΅ Π½Π΅ΡΠΎ ΡΠ°ΠΊΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΄ΠΊΠΎ. ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π²Π·Π΅ΠΌΠ°Ρ ΠΌΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈ Π³ΠΈ ΡΡΠ°Π²Π½ΡΠ²Π°Ρ ΠΌΠ΅ Ρ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° ΡΡΡΠ΅Π΄Π½ΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ Π² 5% ΠΎΡ ΡΠ»ΡΡΠ°ΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ Π°, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ Π½ΠΈ ΡΠ°Π΄Π²Π°ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ.
3. ΠΠΎΠ»ΡΠΌ ΠΎΠ±Π΅ΠΌ Π·Π°Π΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΈΡΠ΅ΠΌ Π² Graphite Π½Π΅ ΡΠ°ΠΌΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈ, Π½ΠΎ ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ (Π° ΡΠ΅Π³Π° ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Kubernetes), ΡΠ΅ΡΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°ΠΌΠ΅ Π² ΡΠΈΡΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΡΠΎ Π² ΠΌΠ΅ΡΡΠΈΠΊΠ°ΡΠ° ΠΏΡΠΈΡΡΡΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Π° .wsp ΡΠ°ΠΉΠ»ΡΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΠ΅Π»ΠΈΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π½Π° Π·Π°Π΄ΡΡΠΆΠ°Π½Π΅ ΠΈ Π·Π°Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΠΌΠΈΡ ΠΎΠ±Π΅ΠΌ ΠΌΡΡΡΠΎ, ΠΊΠΎΠΉΡΠΎ Π±Π΅ΡΠ΅ ΡΠ°Π²Π΅Π½ Π½Π° ~2ΠΠ±. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π° ΠΈ ΠΎΡ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΡΠ°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ, Π° ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΡΠ΅ΡΠΈ Π·Π° ΡΡΡ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ°Π·Π½ΠΈ ΡΠΎΡΠΊΠΈ ΠΎΡΠ½Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΡΠ΅ΡΡΡΡΠΈ.
ΠΠ΅Π΄Π½Π°Π³Π° ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠ°, ΡΠ΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π±ΠΎΡΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ, Π½ΠΎ ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΠΏΠΎΡΡΡΠΏΠ²Π°Ρ ΠΏΡΠΈ Π²Π°Ρ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-ΡΠΈΠ»Π½ΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΎΡΡΡΡΡ.
Π‘ Π²ΡΠΈΡΠΊΠΎ, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅ (Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ ), ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈΡΡ ΡΠ°ΡΡΠ΅ΠΆ Π½Π° Π±ΡΠΎΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΠΏΡΠ΅Π²Π΅Π΄Π΅ΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΡ 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ (ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ - Π΄ΠΎ 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ), ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Graphite+ClickHouse ΠΊΠ°ΡΠΎ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° Whisper.
Graphite+ClickHouse. ΠΡΠ°ΠΊΠ²Π°Π½ΠΈΡ
ΠΠΎΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ΅ΡΠΈ Ρ ΠΌΠΎΠΌΡΠ΅ΡΠ°ΡΠ° ΠΎΡ Π―Π½Π΄Π΅ΠΊΡΠ°, ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΠΌΠ΅ , ΠΏΡΠ΅Π³Π»Π΅Π΄Π°Ρ ΠΌΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΈ Π½Π°ΠΌΠ΅ΡΠΈΡ ΠΌΠ΅ ΡΠ°Π·ΡΠΌΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ClickHouse Ρ Graphite, ΡΠ΅ΡΠΈΠ»ΠΈ Π΄Π° Π΄Π΅ΠΉΡΡΠ²Π°ΠΌΠ΅!
ΠΡΠΊΠ°Ρ ΠΌΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
- Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ 30% Π΄ΠΎ 5%;
- Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π·Π°Π΅ΡΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ 1Π’Π± Π΄ΠΎ 100ΠΠ±;
- Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠ΅ ΠΏΠΎ 100 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΠΌΠΈΠ½ΡΡΠ° Π½Π° ΡΡΡΠ²ΡΡ;
- ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ Π½Π° ΠΎΡΠΊΠ°Π·ΠΈ ΠΎΡ ΠΊΡΡΠΈΡΡΠ°;
- Π΄Π° Π½Π΅ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ Ρ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈΠΌ ΠΏΡΠ΅Ρ ΠΎΠ΄Π° Π·Π° ΡΠ°Π·ΡΠΌΠ΅Π½ ΡΡΠΎΠΊ;
- Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ Π±Π΅Π· ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅.
ΠΠΎΡΡΠ° Π°ΠΌΠ±ΠΈΡΠΈΠΎΠ·Π½ΠΎ, Π½Π°Π»ΠΈ?
Graphite+ClickHouse. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ
ΠΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Graphite ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠΌ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π² ClickHouse, Π±Π΅ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½ (golang).
ΠΠ°ΡΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π±Π΅ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅Π»ΠΈΠ· Π½Π° ClickHouse, ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ 1.1.54253. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½Π΅Π³ΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ: Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ ΠΈΠ·Π»ΠΈΠ·Π°Ρ Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π½Π΅ Π±Π΅ΡΠ΅ ΡΡΠ²ΡΠ΅ΠΌ ΡΡΠ½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Ρ ΡΡΡ . Π ΠΎΠ±ΡΡΠΆΠ΄Π°Π½Π΅ Ρ (Π°Π²ΡΠΎΡ Π½Π° carbon-clickhouse, graphite-clickhouse ΠΈ ΠΎΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ) Π±Π΅ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½ ΠΏΠΎ-ΡΡΠ°ΡΠΈΡΡ . ΠΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΈΠ·ΡΠ΅Π·Π½Π°Ρ Π° β Π²ΡΠΈΡΠΊΠΎ Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
ΠΠ° ΠΏΡΠΎΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ClickHouse Π±Π΅ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½ (golang). ΠΠ°ΡΠΎ API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Graphite β (golang). ΠΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ClickHouse Π±Π΅ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ . ΠΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΡ ΠΌΠ΅ Π½Π°ΡΠ΅ΡΠΎ ΠΎΠ±ΠΈΡΠ°Π½ΠΎ (C) .
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 (ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠ°Π½ ). Π ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠ° Π΄ΠΎ 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, PrefixGraphite+ClickHouse. Π‘Ρ Π΅ΠΌΠ° Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅

Graphite+ClickHouse. ΠΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ
ΠΠ°ΠΊΡΠΎ ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΎΡ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΎΡ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ ClickHouse ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π±Π΅Π· Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΈΠ·ΠΎΡΡΠ°Π²Π°Π½ΠΈΡ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ Π½Π°ΡΠΈΠ½ Π·Π° Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»Π°ΡΠ° Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΊΡΠΌ Π½ΠΎΠ²ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π·Π° Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠ°ΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅ ΡΠΎΠ²Π° ΡΠ°ΠΊΠ°.
Π carbon-c-relay Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΏΠΎΡΠΎΠΊ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² carbon-clickhouse Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡΠ²ΡΡΠΈΡΠ΅, ΡΡΠ°ΡΡΠ²Π°ΡΠΈ Π² ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ClickHouse.
ΠΠ°ΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΠΌΠ°Π»ΡΠΊ ΡΠΊΡΠΈΠΏΡ Π½Π° Python, ΠΊΠΎΠΉΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° whisper-dump ΠΈΠ·Π²Π»ΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ .wsp ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Π½Π°ΡΠ΅ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡ ΠΏΠΎ-Π³ΠΎΡΠ΅ carbon-clickhouse Π² 24 ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠΎΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π² carbon-clickhouse Π΄ΠΎΡΡΠΈΠ³Π°ΡΠ΅ 125 ΠΌΠ»Π½/ΠΌΠΈΠ½ ΠΈ ClickHouse Π΄ΠΎΡΠΈ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΡΠΈ.
Π‘ΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΠΎΡΠ΄Π΅Π»Π΅Π½ DataSource Π² Grafana Ρ ΡΠ΅Π» ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ Π΄Π°ΡΠ±ΠΎΡΠ΄ΠΎΠ²Π΅. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΠΌΠ΅ ΡΠΏΠΈΡΡΠΊ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅, Π½ΠΎ Π½Π΅ Π±ΡΡ Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² carbonapi. ΠΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΡΠ΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠΈΡ ΠΌΠ΅ PR-ΠΎΠ²Π΅ Π½Π° Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° carbonapi (ΠΎΡΠ΄Π΅Π»Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π° ΡΡΡ ).
- ΠΠ° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΡΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡ ΠΌΠ΅ Π΅Π½Π΄ΠΏΠΎΠΈΠ½ΡΠΈΡΠ΅ ΠΎΡ graphite-api (API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Graphite+Whisper) Π½Π° carbonapi.
Graphite+ClickHouse. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ
Π½Π°ΠΌΠ°Π»ΠΈΡ ΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ 30% Π΄ΠΎ 1%;

- Π½Π°ΠΌΠ°Π»ΠΈΡ ΠΌΠ΅ ΠΎΠ±Π΅ΠΌΠ° Π½Π° Π·Π°Π΅ΡΠΎΡΠΎ ΠΌΡΡΡΠΎ ΠΎΡ 1 TB Π΄ΠΎ 300 GB;
- ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠ΅ ΠΏΠΎ 125 ΠΌΠ»Π½ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΠΌΠΈΠ½ΡΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ° (ΠΏΠΈΠΊΠΎΠ²Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ°);
- ΠΏΡΠ΅Π²Π΅Π΄ΠΎΡ ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° ΡΡΠΈΠ΄Π΅ΡΠ΅ΡΡΠ΅ΠΊΡΠ½Π΄Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅;
- ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ ΠΏΡΠΈ ΠΎΡΠΊΠ°Π·;
- ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡ ΠΌΠ΅ Π±Π΅Π· Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ΅ΡΡΠΎΠΉ;
- Π·Π° Π²ΡΠΈΡΠΊΠΎ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°Ρ ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 7 ΡΠ΅Π΄ΠΌΠΈΡΠΈ.
Graphite+ClickHouse. ΠΡΠΎΠ±Π»Π΅ΠΌΠΈ
Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ ΠΌΠΈΠ½Π°Ρ ΠΌΠ΅ Π±Π΅Π· ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΈ ΠΊΠ°ΠΌΡΠ½ΠΈ. ΠΡΠΎ Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ ΠΌΠ΅ ΡΠ»Π΅Π΄ ΠΏΡΠ΅Ρ ΠΎΠ΄Π°.
- ClickHouse Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΏΡΠΎΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π³ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Ρ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ° zookeeper Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ClickHouse β ΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅ Π΄ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° clickhouse-server.
- ΠΠ΅ ΠΌΠΈΠ½Π°Π²Π°Ρ
ΠΌΠ΅ ΠΏΡΠ΅Π· Π³ΠΎΠ»Π΅ΠΌΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ ClickHouse, Π·Π°ΡΠΎΠ²Π° Π½Π°ΡΠ°ΡΠ° Π²ΡΡΠ·ΠΊΠ° Π² graphite-clickhouse ΠΊΡΠΌ ClickHouse ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
url = "http://localhost:8123/?max_query_size=268435456&max_ast_elements=1000000" - Π ClickHouse Π΄ΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Ρ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ ΡΠ΅Π»ΠΈΠ·ΠΈ, Π² ΡΡΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΠ΅ΡΠ½Π°Ρ ΠΈΠ·Π½Π΅Π½Π°Π΄ΠΈ: Π±ΡΠ΄Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΈ.
- ΠΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² Kubernetes ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ ΠΊΡΠ°ΡΡΠΊ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΆΠΈΠ²ΠΎΡ. Π’ΠΎΡΠΊΠΈΡΠ΅ ΠΏΠΎ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΌΡΡΡΠΎΡΠΎ Π½ΡΠΌΠ°ΠΌΠ΅. ΠΠΎ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ, ClickHouse ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡ ΡΡΡΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ° βmetricsβ. Π 90% ΠΎΡ ΡΠ»ΡΡΠ°ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΡΡΡ ΠΎΡΡΡΡΡΠ²Π°Ρ Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄Π° (24 ΡΠ°ΡΠ°). Π Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ° βdataβ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡ. ΠΠ° Π΄Π° ΡΠ΅ΡΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ ΠΎΡΠ΄Π΅Π»Π½Π° ΠΈΠ·Π³Π»Π΅Π΄ΠΊΠ° Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ Π΄Π΅Π½. Π’Π°ΠΊΠ° ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΡΠ΅ΡΠΈ (Π³ΡΠ°ΡΠΈΠΊΠΈ) Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π±ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ Π² Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠΈΠΎΠ΄, Π° Π½Π΅ Π·Π° ΡΡΠ»ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΡΠ΅ΡΠΈ ΠΏΠΎ ΡΡΡ . ΠΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±Π΅ΡΠ΅ ΡΡΠ±ΡΠ°Π½ , Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°Π±Π»ΠΈΡΠ° date_metrics.
Graphite+ClickHouse. Π’Π°Π³ΠΎΠ²Π΅
ΠΡ Π²Π΅ΡΡΠΈΡ 1.1.0 Graphite ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ . Π Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΠΌΠΈΡΠ»ΡΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ, Π·Π° Π΄Π° ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠΈΠΌ ΡΠ°Π·ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π° Π² ΡΡΠ΅ΠΊΠ° graphite+clickhouse.
Graphite+ClickHouse. ΠΠ΅ΡΠ΅ΠΊΡΠΎΡ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ
ΠΠ° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΎΠΏΠΈΡΠ°Π½Π°ΡΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ, ΠΈ ΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈ! ΠΠΎ Π·Π° Π½Π΅Π³ΠΎ β Π² ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ.
ΠΠ±ΠΎΠ½ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅, Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ ΡΡΡΠ΅Π»ΠΊΠ°ΡΠ° Π½Π°Π³ΠΎΡΠ΅ ΠΈ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°ΡΡΠ»ΠΈΠ²ΠΈ!
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com

