Thanos β€” ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для студСнтов курса Β«DevOps ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ инструмСнты».

Π€Π°Π±ΠΈΠ°Π½ Π Π΅ΠΉΠ½Π°Ρ€Ρ† (Fabian Reinartz) β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ„Π°Π½Π°Ρ‚ Go ΠΈ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ мэйнтСйнСр Prometheus ΠΈ ΡΠΎΡƒΡ‡Ρ€Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Kubernetes SIG instrumentation. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΎΠ½ Π±Ρ‹Π» production-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠΌ Π² SoundCloud ΠΈ возглавлял Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² CoreOS. Π’ настоящСС врСмя Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Google.

Π‘Π°Ρ€Ρ‚Π΅ΠΊ ΠŸΠ»ΠΎΡ‚ΠΊΠ° (Bartek Plotka) β€” инфраструктурный ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Π² Improbable. УвлСкаСтся Π½ΠΎΠ²Ρ‹ΠΌΠΈ тСхнологиями ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ распрСдСлСнных систСм. Π˜ΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ программирования Π² Intel, ΠΎΠΏΡ‹Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€Π° Π² Mesos ΠΈ production-ΠΎΠΏΡ‹Ρ‚ SRE ΠΌΠΈΡ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° Π² Improbable. ЗанимаСтся ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΈΡ€Π° микросСрвисов. Π’Ρ€ΠΈ Π΅Π³ΠΎ любви: Golang, open source ΠΈ Π²ΠΎΠ»Π΅ΠΉΠ±ΠΎΠ».

Глядя Π½Π° наш флагманский ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ SpatialOS, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ для Improbable Π½ΡƒΠΆΠ½Π° высокодинамичная облачная инфраструктура глобального ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° с дСсятками кластСров Kubernetes. ΠœΡ‹ Π±Ρ‹Π»ΠΈ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΡ‚ΠΎ Π½Π°Ρ‡Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСму ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Prometheus. Prometheus способСн ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ поставляСтся с ΠΌΠΎΡ‰Π½Ρ‹ΠΌ языком запросов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ Prometheus являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· основных Π΅Π³ΠΎ прСимущСств. Однако, пройдя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±, ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с нСсколькими нСдостатками. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Thanos β€” ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, созданный ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Improbable, для бСсшовной трансформации ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… кластСров Prometheus Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ систСму ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ историчСских Π΄Π°Π½Π½Ρ‹Ρ…. Thanos доступСн Π½Π° Github здСсь.

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π² курсС послСдних новостСй ΠΎΡ‚ Improbable.

Наши Ρ†Π΅Π»ΠΈ с Thanos

ΠŸΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, выходящиС Π·Π° Ρ€Π°ΠΌΠΊΠΈ возмоТностСй ванильного Prometheus. Как Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈ экономно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ‚Π°Π±Π°ΠΉΡ‚Ρ‹ историчСских Π΄Π°Π½Π½Ρ‹Ρ…? МоТно Π»ΠΈ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° запрос? МоТно Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ, располоТСнных Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… сСрвСрах Prometheus, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ API-запроса? МоТно Π»ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, собранныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Prometheus HA?

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих вопросов ΠΌΡ‹ создали Thanos. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… описываСтся ΠΊΠ°ΠΊ ΠΌΡ‹ подошли ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ этих вопросов ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ Ρ†Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ прСслСдовали.

Запрос Π΄Π°Π½Π½Ρ‹Ρ… с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… экзСмпляров Prometheus (global query)

Prometheus ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³Ρƒ. Π”Π°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ Prometheus-сСрвСр обСспСчиваСт Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ‚ слоТностСй Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³Π° практичСски Π²ΠΎ всСх Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ… использования.

Π₯отя это отличная модСль развСртывания, Π½ΠΎ часто трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… сСрвСрах Prometheus Ρ‡Π΅Ρ€Π΅Π· Π΅Π΄ΠΈΠ½Ρ‹ΠΉ API ΠΈΠ»ΠΈ UI β€” global view. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ нСсколько запросов Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Grafana, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запрос ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ сСрвСр Prometheus. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Thanos Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвСров Prometheus, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΎΠ½ΠΈ доступны с ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

Π Π°Π½Π΅Π΅, для получСния global view Π² Improbable, ΠΌΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ наши экзСмпляры Prometheus Π² ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ Hierarchical Federation. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ созданиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚Π°-сСрвСра Prometheus, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ с ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ β€œΠ»ΠΈΡΡ‚ΠΎΠ²ΠΎΠ³ΠΎ" сСрвСра.

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ оказался ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ. Он ΠΏΡ€ΠΈΠ²Π΅Π» ΠΊ ΡƒΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, добавлСнию Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ слоТных ΠΏΡ€Π°Π²ΠΈΠ» для прСдоставлСния federated-ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, federation Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Π½Π΅ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ настоящСС global view, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ всС Π΄Π°Π½Π½Ρ‹Π΅ доступны ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ API-запроса.

Π‘ этим тСсно связано Π΅Π΄ΠΈΠ½ΠΎΠ΅ прСдставлСниС Π΄Π°Π½Π½Ρ‹Ρ…, собранных Π½Π° высокодоступных (high-availability, HA) сСрвСрах Prometheus. HA-модСль Prometheus нСзависимо собираСт Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π²Π°ΠΆΠ΄Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ просто, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚. Однако ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ объСдинСнноС ΠΈ Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² высокодоступных сСрвСрах Prometheus сущСствуСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. Π’ Improbable ΠΌΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ относимся ΠΊ Π΅ΠΆΠ΅ΠΌΠΈΠ½ΡƒΡ‚Π½ΠΎΠΌΡƒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ экзСмпляра Prometheus Π½Π° кластСр являСтся Π΅Π΄ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΎΡ‚ΠΊΠ°Π·Π°. Π›ΡŽΠ±Π°Ρ ошибка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ сбой оборудования ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°ΠΆΠ΅ простоС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСбольшим сбоям Π² сборС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСзапуск ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ дольшС ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° скрапинга.

НадСТноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ историчСских Π΄Π°Π½Π½Ρ‹Ρ…

Π”Π΅ΡˆΠ΅Π²ΠΎΠ΅, быстроС ΠΈ долгосрочноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ β€” это наша ΠΌΠ΅Ρ‡Ρ‚Π° (раздСляСмая Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Prometheus). Π’ Improbable ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срок хранСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π½Π° Π΄Π΅Π²ΡΡ‚ΡŒ Π΄Π½Π΅ΠΉ (для Prometheus 1.8). Π­Ρ‚ΠΎ добавляСт ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ограничСния Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π°Π·Π°Π΄.

Prometheus 2.0 Π² этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ стал Π»ΡƒΡ‡ΡˆΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ количСство time series большС Π½Π΅ влияСт Π½Π° ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСрвСра (см. KubeCon keynote about Prometheus 2). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Prometheus Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° локальном дискС. Π₯отя высокоэффСктивноС сТатиС Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ использованиС локального SSD, Π½ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС всС Ρ€Π°Π²Π½ΠΎ сущСствуСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° объСм сохраняСмых историчСских Π΄Π°Π½Π½Ρ‹Ρ….

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Improbable ΠΌΡ‹ заботимся ΠΎ надСТности, простотС ΠΈ стоимости. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ диски слоТнСС Π² эксплуатации ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Они стоят Π΄ΠΎΡ€ΠΎΠΆΠ΅ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большС инструмСнтов для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ излишнСй слоТности.

Даунсэмплинг

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с историчСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΌΡ‹ поняли, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ слоТности c O-большим, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ запросы всС ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ссли ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π·Π° Π½Π΅Π΄Π΅Π»ΠΈ, мСсяцы ΠΈ Π³ΠΎΠ΄Ρ‹.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ даунсэмплинг (downsampling) β€” ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ частоты дискрСтизации сигнала. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пониТСния дискрСтизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ β€œΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±β€ Π΄ΠΎ большСго Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅ количСство Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ запросов.

Даунсэмплинг старых Π΄Π°Π½Π½Ρ‹Ρ… являСтся Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ любого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для долгосрочного хранСния ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ ванильного Prometheus.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ

Одной ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Thanos Π±Ρ‹Π»Π° бСсшовная интСграция с Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ установками Prometheus. Вторая Ρ†Π΅Π»ΡŒ состояла Π² простой эксплуатации с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π±Π°Ρ€ΡŒΠ΅Ρ€ΠΎΠΌ. Π›ΡŽΠ±Ρ‹Π΅ зависимости Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Ρ‹ ΠΊΠ°ΠΊ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ…, Ρ‚Π°ΠΊ ΠΈ для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ.

АрхитСктура Thanos

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±Ρ‹Π»ΠΈ пСрСчислСны наши Ρ†Π΅Π»ΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΈ посмотрим, ΠΊΠ°ΠΊ Thanos Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Global view

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ global view ΠΏΠΎΠ²Π΅Ρ€Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… экзСмпляров Prometheus, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° запросов со всСми сСрвСрами. ИмСнно этим ΠΈ занимаСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Thanos Sidecar. Он развСртываСтся рядом с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ сСрвСром Prometheus ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ прокси, обслуТивая Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Prometheus Ρ‡Π΅Ρ€Π΅Π· gRPC-интСрфСйс Store API, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ time series Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌΡƒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны находится Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Querier Π±Π΅Π· сохранСния состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡ΡƒΡ‚ΡŒ большС, Ρ‡Π΅ΠΌ просто ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° запросы PromQL Ρ‡Π΅Ρ€Π΅Π· стандартный Prometheus HTTP API. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Querier, Sidecar ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Thanos Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ gossip.

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

  1. Querier ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ запроса ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ сСрвСру Store API, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊ нашим Sidecar’ам ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ time series Π΄Π°Π½Π½Ρ‹Π΅ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Prometheus-сСрвСров.
  2. ПослС этого ΠΎΠ½ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ выполняСт ΠΏΠΎ Π½ΠΈΠΌ PromQL-запрос. Querier ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π½Π΅ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с HA-сСрвСров Prometheus.

Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ нашСй Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠΈ β€” объСдинСниС Π΄Π°Π½Π½Ρ‹Ρ… с ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сСрвСров Prometheus Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ прСдставлСниС. ЀактичСски Thanos ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π΄ΠΈ этой возмоТности. Π’ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сСрвСра Prometheus Π½Π΅ трСбуСтся Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ измСнСния!

НСограничСнный срок хранСния!

Однако Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, выходящиС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ хранСния Prometheus. Для хранСния историчСских Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Оно ΡˆΠΈΡ€ΠΎΠΊΠΎ доступно Π² любом ΠΎΠ±Π»Π°ΠΊΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π¦ΠžΠ”Π°Ρ… ΠΈ ΠΎΡ‡Π΅Π½ΡŒ экономично. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, практичСски любоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ доступно Ρ‡Π΅Ρ€Π΅Π· Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстный S3 API.

Prometheus записываСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π½Π° диск ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ Π΄Π²Π° часа. Π‘Π»ΠΎΠΊ сохраняСмых Π΄Π°Π½Π½Ρ‹Ρ… содСрТит всС Π΄Π°Π½Π½Ρ‹Π΅ для фиксированного ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ являСтся нСизмСняСмым. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Thanos Sidecar ΠΌΠΎΠΆΠ΅Ρ‚ просто ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄Π°Π½Π½Ρ‹Ρ… Prometheus ΠΈ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ появлСния Π½ΠΎΠ²Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈΡ… Π² Π±Π°ΠΊΠ΅Ρ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ сразу послС записи Π½Π° диск позволяСт Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ простоту β€œΡΠΊΡ€Π°ΠΏΠ΅Ρ€Π°β€ (Prometheus ΠΈ Thanos Sidecar). Π§Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ систСмы.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… рСализуСтся ΠΎΡ‡Π΅Π½ΡŒ просто. Но Ρ‡Ρ‚ΠΎ насчСт запроса ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅?

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Thanos Store дСйствуСт ΠΊΠ°ΠΊ прокси для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Как ΠΈ Thanos Sidecar, ΠΎΠ½ участвуСт Π² gossip-кластСрС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Store API. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Querier ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Sidecar, Π² качСствС Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ источника time series Π΄Π°Π½Π½Ρ‹Ρ… β€” Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ настройки Π½Π΅ трСбуСтся.

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

Π‘Π»ΠΎΠΊΠΈ time series Π΄Π°Π½Π½Ρ‹Ρ… состоят ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΡ… ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ Π±Ρ‹Π»Π° Π±Ρ‹ довольно нСэффСктивной, Π° локальноС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ памяти ΠΈ дискового пространства.

ВмСсто этого Store Gateway Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ хранСния Prometheus. Благодаря ΡƒΠΌΠ½ΠΎΠΌΡƒ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ запросов ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… индСксных частСй Π±Π»ΠΎΠΊΠΎΠ², стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ слоТныС запросы Π΄ΠΎ минимального количСства HTTP-запросов ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ число запросов Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅-ΡˆΠ΅ΡΡ‚ΡŒ порядков ΠΈ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² Ρ†Π΅Π»ΠΎΠΌ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ запросов ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° локальном SSD.

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ΡˆΠ΅, Thanos Querier Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТаСт Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΎΠ΄ΠΈΠ½ запрос ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ хранСния Prometheus ΠΈ размСщая связанныС Π΄Π°Π½Π½Ρ‹Π΅ рядом. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ мноТСство ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… запросов Π² минимальноС количСство bulk-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π£ΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅ ΠΈ даунсэмплинг

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ time series Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΌΡ‹ рассматриваСм Π΅Π³ΠΎ ΠΊΠ°ΠΊ β€œΠΈΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅β€ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сразу ΠΆΠ΅ становятся доступны Ρ‡Π΅Ρ€Π΅Π· Store Gateway.

Однако Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π±Π»ΠΎΠΊΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ источника (Prometheus с Sidecar) Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΡƒΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ вСсь ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» индСксации. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Compactor. Он просто примСняСт Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ уплотнСния Prometheus ΠΊ историчСским Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΊΠ°ΠΊ простоС пСриодичСскоС ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅.

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

Благодаря эффСктивному ΡΠΆΠ°Ρ‚ΠΈΡŽ, запрос Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ прСдставляСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Однако ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ распаковки ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠ³ΠΎΠ½ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ запросов Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ€Π΅Π·ΠΊΠΎΠΌΡƒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния запроса. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль экрана приходятся сотни Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, становится Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π΄Π°ΠΆΠ΅ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, даунсэмплинг Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, Π½ΠΎ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ точности.

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

Для даунсСмплинга Π΄Π°Π½Π½Ρ‹Ρ… Compactor Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚ ΠΈ ΠΎΠ΄ΠΈΠ½ час. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TSDB XOR-сТатия, хранятся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ min, max ΠΈΠ»ΠΈ sum для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Π­Ρ‚ΠΎ позволяСт Querier автоматичСски Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π°Π³Ρ€Π΅Π³Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ PromQL-запроса.

Для использования Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ трСбуСтся Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Querier автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этим Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€œstep” Π² запросС.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ хранСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π“Π‘ являСтся нСбольшой, Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Thanos сохраняСт исходныС Π΄Π°Π½Π½Ρ‹Π΅, Π΄Π°Π½Π½Ρ‹Π΅ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚ ΠΈ Π² ΠΎΠ΄ΠΈΠ½ час. НСт нСобходимости ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ исходныС Π΄Π°Π½Π½Ρ‹Π΅.

Recording rules

Π”Π°ΠΆΠ΅ с Thanos recording rules ΡΠ²Π»ΡΡŽΡ‚ΡΡ сущСствСнной Ρ‡Π°ΡΡ‚ΡŒΡŽ стСка ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Они ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ запросов. Они Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ для получСния Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ. Thanos базируСтся Π½Π° Π²Π°Π½ΠΈΠ»ΡŒΠ½Ρ‹Ρ… экзСмплярах Prometheus, поэтому Π²ΠΏΠΎΠ»Π½Π΅ допустимо Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ recording rules ΠΈ alerting rules Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ сСрвСрС Prometheus. Однако Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях этого ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточно:

  • Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ alert ΠΈ rule (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° сСрвис Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π΄Π²ΡƒΡ… ΠΈΠ· Ρ‚Ρ€Π΅Ρ… кластСров).
  • Rule для Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½Π΅ локального Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.
  • Π‘Ρ‚Ρ€Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС rule ΠΈ alert Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС.

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

Для всСх этих случаСв Thanos Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ruler, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вычисляСт rule ΠΈ alert Ρ‡Π΅Ρ€Π΅Π· Thanos Queries. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстный StoreAPI, ΡƒΠ·Π΅Π» Query ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свСТим вычислСнным ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ. ПозТС ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ становятся доступны Ρ‡Π΅Ρ€Π΅Π· Store Gateway.

ΠœΠΎΡ‰ΡŒ Thanos

Thanos достаточно Π³ΠΈΠ±ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ваши трСбования. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ с простого Prometheus. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° нСбольшом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ быстро вспомним, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Thanos. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ пСрСнСсти ваш Π²Π°Π½ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Prometheus Π² ΠΌΠΈΡ€ β€œΠ±Π΅Π·Π»ΠΈΠΌΠΈΡ‚Π½ΠΎΠ³ΠΎ хранСния мСтрик”:

Thanos — ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Prometheus

  1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Thanos Sidecar ΠΊ вашим сСрвСрам Prometheus β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сосСдний ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² Kubernetes pod.
  2. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ нСсколько Ρ€Π΅ΠΏΠ»ΠΈΠΊ Thanos Querier для возмоТности просмотра Π΄Π°Π½Π½Ρ‹Ρ…. На Π΄Π°Π½Π½ΠΎΠΌ этапС Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ gossip ΠΌΠ΅ΠΆΠ΄Ρƒ Scraper ΠΈ Querier. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ взаимодСйствия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ ‘thanos_cluster_members’.

Волько этих Π΄Π²ΡƒΡ… шагов достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ global view ΠΈ Π±Π΅ΡΡˆΠΎΠ²Π½ΡƒΡŽ Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… HA-Ρ€Π΅ΠΏΠ»ΠΈΠΊ Prometheus! ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свои Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Ρ‹ ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ HTTP Querier ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ интСрфСйс Thanos UI Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Однако Ссли Π²Π°ΠΌ трСбуСтся Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ долгосрочноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ‚Ρ€ΠΈ шага:

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π±Π°ΠΊΠ΅Ρ‚ AWS S3 ΠΈΠ»ΠΈ GCS. НастройтС Sidecar для копирования Π΄Π°Π½Π½Ρ‹Ρ… Π² эти Π±Π°ΠΊΠ΅Ρ‚Ρ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ локальноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….
  2. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Store Gateway ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ gossip-кластСру. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… копиях!
  3. Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Compactor, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ запросов для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅ ΠΈ даунсэмплинг.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ, посмотритС Π½Π° наши ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ манифСста kubernetes ΠΈ getting started!

ВсСго Π·Π° ΠΏΡΡ‚ΡŒ шагов ΠΌΡ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Prometheus Π² Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ систСму ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° с global view, Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ хранСния ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ высокой доступности ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ.

Pull request: Π²Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ Π½Π°ΠΌ!

Thanos с самого Π½Π°Ρ‡Π°Π»Π° Π±Ρ‹Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π‘Π΅ΡΡˆΠΎΠ²Π½Π°Ρ интСграция с Prometheus ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ Thanos Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ прСкрасным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… усилий.

ΠœΡ‹ всСгда Ρ€Π°Π΄Ρ‹ GitHub Pull Request ΠΈ Issues. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Github Issues ΠΈΠ»ΠΈ slack Improbable-eng #thanos, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ использования! Если Π²Π°ΠΌ нравится Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π² Improbable, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π°ΠΌ β€” Ρƒ нас всСгда Π΅ΡΡ‚ΡŒ вакансии!

Π£Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ курсС.

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