Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ с Graphite+Whisper Π½Π° Graphite+ClickHouse

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! Π’ своСй ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я писал ΠΎΠ± ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. НичСго Π½Π΅ стоит Π½Π° мСстС, наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ постоянно растёт, ΠΈ количСство Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ β€” Ρ‚ΠΎΠΆΠ΅. Как ΠΌΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с Graphite+Whisper Π½Π° Graphite+ClickHouse Π² условиях высоких Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, ΠΎΠ± оТиданиях ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚ΠΎΠΌ.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ с 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-Ρ„Π°ΠΉΠ» создаСтся с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ всСго retention ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°, ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ объСм мСста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ нас Π±Ρ‹Π» Ρ€Π°Π²Π΅Π½ ~2Мб. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° усугубляСтся Π΅Ρ‰Ρ‘ ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ появляСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΏΡ€ΠΈ построСнии ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΏΠΎ Π½ΠΈΠΌ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ пустых Ρ‚ΠΎΡ‡Π΅ΠΊ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ рСсурсов.

Π‘Ρ€Π°Π·Ρƒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, описанными Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ с Ρ€Π°Π·Π½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ эффСктивности, Π½ΠΎ Ρ‡Π΅ΠΌ большС ΠΊ Π²Π°ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π΅ΠΌ сильнСС ΠΎΠ½ΠΈ ΠΎΠ±ΠΎΡΡ‚Ρ€ΡΡŽΡ‚ΡΡ.

ИмСя всС Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ (с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ), Π° Ρ‚Π°ΠΊΠΆΠ΅ постоянный рост количСства ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ пСрСвСсти всС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρƒ хранСния Π² 30 сСк. (ΠΏΡ€ΠΈ нСобходимости β€” Π΄ΠΎ 10 сСк.), ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Graphite+ClickHouse Π² качСствС пСрспСктивной Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Whisper.

Graphite+ClickHouse. ОТидания

ΠŸΠΎΡΠ΅Ρ‚ΠΈΠ² нСсколько ΠΌΠΈΡ‚Π°ΠΏΠΎΠ² рСбят ΠΈΠ· ЯндСкса, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΏΠ°Ρ€Ρƒ статСй Π½Π° Π₯Π°Π±Ρ€Π΅, ΠΏΡ€ΠΎΡˆΠ΅Ρ€ΡΡ‚ΠΈΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ найдя вмСняСмыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для обвязки ClickHouse ΠΏΠΎΠ΄ Graphite, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ!

Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ дисковой подсистСмы с 30% Π΄ΠΎ 5%;
  • ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ объСм Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ мСста с 1Π’Π± Π΄ΠΎ 100Π“Π±;
  • ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎ 100 ΠΌΠ»Π½ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ Π² сСрвСр;
  • Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ;
  • Π½Π΅ ΡΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π°Π΄ этим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π³ΠΎΠ΄ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π·Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ вмСняСмый срок;
  • ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π±Π΅Π· Π΄Π°ΡƒΠ½Ρ‚Π°ΠΉΠΌΠ°.

Достаточно Π°ΠΌΠ±ΠΈΡ†ΠΈΠΎΠ·Π½ΠΎ, ΠΏΡ€Π°Π²Π΄Π°?

Graphite+ClickHouse. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ Graphite ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ записи ΠΈΡ… Π² ClickHouse, Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ carbon-clickhouse (golang).

Π’ качСствС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для хранСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ послСдний Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π΅Π»ΠΈΠ· ClickHouse ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии 1.1.54253. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: Π² Π»ΠΎΠ³ΠΈ сыпало Π³ΠΎΡ€Ρƒ ошибок, ΠΈ Π±Ρ‹Π»ΠΎ Π½Π΅ совсСм понятно Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ. Π’ обсуТдСнии с Π ΠΎΠΌΠ°Π½ΠΎΠΌ Ломоносовым (Π°Π²Ρ‚ΠΎΡ€ carbon-clickhouse, graphite-clickhouse ΠΈ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ-ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ) Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Π±ΠΎΠ»Π΅Π΅ старый Ρ€Π΅Π»ΠΈΠ· 1.1.54236. Ошибки ΠΏΡ€ΠΎΠΏΠ°Π»ΠΈ β€” всС стало Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΡƒΡ€Π°.

Для чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ClickHouse Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ graphite-сlickhouse (golang). Π’ качСствС API-интСрфСйса для Graphite β€” carbonapi (golang). Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ClickHouse Π±Ρ‹Π» использован zookeeper. Для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΌΡ‹ оставили Π½Π°ΠΌΠΈ горячо Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ carbon-c-relay (Π‘) (см. ΠΏΡ€ΠΎΡˆΠ»ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ).

Graphite+ClickHouse. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ‚Π°Π±Π»ΠΈΡ†

β€œgraphite” β€” Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, созданная Π½Π°ΠΌΠΈ для Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

β€œgraphite.metrics” β€” Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄Π²ΠΈΠΆΠΊΠΎΠΌ ReplicatedReplacingMergeTree (Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ReplacingMergeTree). Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ хранятся ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ Π½ΠΈΡ….

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 (Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ AggregatingMergeTree). Π’ эту Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ записываСтся количСство входящих ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, с Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ Π΄ΠΎ 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+ClickHouse. Π‘Ρ…Π΅ΠΌΠ° взаимодСйствия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ с Graphite+Whisper Π½Π° Graphite+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%;

    Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ с Graphite+Whisper Π½Π° Graphite+ClickHouse

  • снизили объСм Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ мСста с 1 Π’Π± Π΄ΠΎ 300 Π“Π±;
  • ΠΈΠΌΠ΅Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎ 125 ΠΌΠ»Π½ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ Π² сСрвСр (ΠΏΠΈΠΊΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ);
  • ΠΏΠ΅Ρ€Π΅Π²Π΅Π»ΠΈ всС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½Π° тридцатисСкундный ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» хранСния;
  • ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ;
  • ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π±Π΅Π· Π΄Π°ΡƒΠ½Ρ‚Π°ΠΉΠΌΠ°;
  • Π½Π° всС ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 7 нСдСль.

Graphite+ClickHouse. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Π’ нашСм случаС Π½Π΅ обошлось ΠΈ Π±Π΅Π· ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°ΠΌΠ½Π΅ΠΉ. Π’ΠΎΡ‚ с Ρ‡Π΅ΠΌ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ послС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°.

  1. ClickHouse Π½Π΅ всСгда ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ Π½Π° Π»Π΅Ρ‚Ρƒ, ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² случаС с описаниСм кластСра zookeeper Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ ClickHouse β€” ΠΎΠ½ Π½Π΅ примСнялся Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ clickhouse-server.
  2. НС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ большиС запросы ClickHouse, поэтому Ρƒ нас Π² graphite-clickhouse строка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ClickHouse выглядит Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:
    url = "http://localhost:8123/?max_query_size=268435456&max_ast_elements=1000000"
  3. Π’ ClickHouse довольно часто выходят Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ², Π² Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·Ρ‹: Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.
  4. ДинамичСски создаваСмыС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² kubernetes ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ большоС количСство ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ ΠΈ случайным ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ ΠΆΠΈΠ·Π½ΠΈ. Π’ΠΎΡ‡Π΅ΠΊ ΠΏΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с мСстом Π½Π΅Ρ‚. Но Π²ΠΎΡ‚ ΠΏΡ€ΠΈ построСнии запросов ClickHouse ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство этих самых ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ β€˜metrics’. Π’ 90% случаСв Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π½ΠΈΠΌ Π·Π° ΠΎΠΊΠ½ΠΎ (24 часа) ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. А Π²ΠΎΡ‚ врСмя Π½Π° поиск этих Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ β€˜data’ затрачиваСтся, ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС упираСтся Π² Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΌΡ‹ стали вСсти ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²ΡŒΡŽΡˆΠΊΡƒ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ»ΠΈΡΡŒ Π·Π° сутки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ построСнии ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² (Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²) ΠΏΠΎ динамичСски создаваСмым ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ, ΠΌΡ‹ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π° Π½Π΅ Π·Π° всё врСмя, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π·Ρ‹ ускорило построСниС ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΏΠΎ Π½ΠΈΠΌ. Для Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±Ρ‹Π» собран graphite-clickhouse (fork), Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ date_metrics.

Graphite+ClickHouse. Π’Π΅Π³ΠΈ

Π‘ вСрсии 1.1.0 Graphite стал ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π³ΠΈ. И ΠΌΡ‹ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π΄ΡƒΠΌΠ°Π΅ΠΌ Π½Π°Π΄ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ эту ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρƒ Π² стСкС graphite+clickhouse.

Graphite+ClickHouse. Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ

На Π±Π°Π·Π΅ описанной Π²Ρ‹ΡˆΠ΅ инфраструктуры, ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ, ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! Но ΠΎ Π½Π΅ΠΌ β€” Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ, ΠΆΠΌΠΈΡ‚Π΅ стрСлку Π²Π²Π΅Ρ€Ρ… ΠΈ Π±ΡƒΠ΄ΡŒΡ‚Π΅ счастливы!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ