Сайн уу. Бичлэгийг доор харуулав .
- янз бүрийн систем, үйлчилгээний хяналтын систем бөгөөд үүний тусламжтайгаар системийн администраторууд системийн одоогийн параметрүүдийн талаар мэдээлэл цуглуулж, системийн үйл ажиллагааны хазайлтын талаар мэдэгдэл хүлээн авах дохиог тохируулах боломжтой.
Тайлан нь харьцуулалтыг агуулсан болно и - Prometheus хэмжигдэхүүнийг удаан хугацаагаар хадгалах төслүүд.



Эхлээд би Прометейгийн тухай танд хэлье. Энэ нь заасан зорилтуудаас хэмжигдэхүүнүүдийг цуглуулж, дотоод санах ойд хадгалдаг хяналтын систем юм. Prometheus нь алсын санах ойд хэмжигдэхүүнийг бичиж, анхааруулга, бичлэг хийх дүрмийг үүсгэж болно.

Prometheus хязгаарлалт:
- Энэ нь дэлхийн хайлтын харагдац байхгүй байна. Энэ нь танд прометейгийн бие даасан олон тохиолдлуудтай байх үед юм. Тэд хэмжүүр цуглуулдаг. Мөн та өөр өөр прометей тохиолдлуудаас цуглуулсан эдгээр бүх хэмжүүрүүд дээр асуулга хийхийг хүсч байна. Прометей үүнийг зөвшөөрдөггүй.
- Prometheus-ийн хувьд гүйцэтгэл нь зөвхөн нэг серверээр хязгаарлагддаг. Prometheus автоматаар олон серверт масштабтай байдаггүй. Та олон Prometheus хооронд өөрийн зорилтуудыг зөвхөн гараар хувааж болно.
- Prometheus-ийн хэмжүүрийн хамрах хүрээ нь зөвхөн нэг серверээр хязгаарлагддаг, учир нь энэ нь олон серверт автоматаар масштаблагдах боломжгүй байдаг.
- Прометейд мэдээллийн аюулгүй байдлыг зохион байгуулах нь тийм ч хялбар биш юм.

Эдгээр асуудал/сорилтуудын шийдэл?
Шийдлүүд нь:
Эдгээр бүх шийдлүүд нь Prometheus-ийн цуглуулсан өгөгдлийг алсаас хадгалахад зориулагдсан. Тэд өмнөх слайдаас алсаас хадгалах асуудлыг янз бүрийн аргаар шийддэг. Энэ танилцуулгад би зөвхөн эхний хоёр шийдлийн талаар ярих болно. и .
тухай мэдээлэл анх удаа гарч ирсэн . Архитектурыг тэнд дүрсэлсэн байдаг мөн энэ нь хэрхэн ажилладаг.

Thanos нь Prometheus-ийн хадгалсан өгөгдлийг дотоод диск рүү авч, S3 руу хуулдаг эсвэл өөр объектын хадгалах газар руу.

Тиймээс Thanos нь дэлхийн хайлтын харагдах байдлыг хангадаг. Та Prometheus-ийн олон тохиолдлоос объектын санд хадгалагдсан өгөгдлийг асууж болно.

Thanos PromQL болон дэмждэг .

Thanos өгөгдөл хадгалахдаа Prometheus кодыг ашигладаг.

Thanos-ийг Prometheus-тай ижилхэн хөгжүүлэгчид бүтээсэн.
дээр Байна. Энд байна , бидний анх ярилцсан газар .

VictoriaMetrics нь хэд хэдэн прометейгээс мэдээлэл хүлээн авдаг Прометей дэмжсэн протокол.

Олон Prometheus instances нь нэг VictoriaMetrics-д өгөгдөл бичих боломжтой тул VictoriaMetrics нь дэлхийн хайлтын харагдацаар хангадаг. Үүний дагуу та энэ бүх өгөгдлийн талаар асууж болно.

VictoriaMetrics нь Thanos, PromQL болон Prometheus хайлтын API-г бас дэмждэг.

Thanos-аас ялгаатай нь VictoriaMetrics-ийн эх код нь эхнээс нь бичигдсэн бөгөөд хурд, нөөцийн хэрэглээнд тохируулан хийгдсэн.

VictoriaMetrics нь Thanos-аас ялгаатай нь босоо болон хэвтээ байдлаар хэмждэг. Идэх , аль нь босоо масштабтай. Та нэг процессор, 1 ГБ санах ойтойгоор эхэлж, аажмаар хэдэн зуун процессор, 1 TB санах ойтой болж өсөх боломжтой. VictoriaMetrics эдгээр бүх нөөцийг ашиглах боломжтой. Түүний гүйцэтгэл нь 100 цөмт системтэй харьцуулахад ойролцоогоор 1 дахин нэмэгдэх болно.

Thanos-ийн түүх 2017 оны XNUMX-р сард анхны олон нийтийн амлалт гарч ирснээр эхэлсэн. Үүнээс өмнө Thanos-ийг дотооддоо хөгжүүлсэн .

2019 оны 0.5.0-р сард XNUMX хувилбар гарсан бөгөөд үүнд протокол. Тэр сайн тоглоогүй учраас Thanos-оос хасагдсан. Ихэнхдээ Thanos кластер зөв ажилладаггүй, хов жив протоколын улмаас зангилаанууд буруу холбогдсон байдаг. Тиймээс бид түүнийг тэндээс зайлуулахаар шийдсэн. Энэ бол зөв шийдвэр гэж бодож байна.

2019 оны XNUMX-р сард тэд өргөдлийн дугаар илгээсэн в .

Хэдэн сарын дараа Таносыг хүлээн авав , үүнд Prometheus, Kubernetes болон бусад алдартай төслүүд орно.

2018 оны XNUMX-р сард VictoriaMetrics-ийн хөгжүүлэлт эхэлсэн.

2018 оны XNUMX-р сард би VictoriaMetrics-ийг олон нийтэд анх удаа дурдсан.

2018 оны XNUMX-р сард Нэг зангилаатай хувилбар хэвлэгдсэн.

5 дугаар сард 2019 Нэг зангилаа болон кластер хувилбаруудын эх сурвалж.

2019 оны XNUMX-р сард бид Thanos шиг CNCF санд дугаарын дагуу өргөдөл гаргасан. . Бид Thanos өргөдөл гаргахаас нэг өдрийн өмнө өргөдөл гаргасан.

Гэвч харамсалтай нь биднийг тэнд хүлээж аваагүй л байна. Олон нийтийн тусламж хэрэгтэй байна.

Thanos болон VictoriaMetrics-ийн архитектурыг харуулсан хамгийн чухал слайдуудыг харцгаая.

Thanos-аас эхэлцгээе. Шар бүрэлдэхүүн хэсгүүд нь Prometheus бүрэлдэхүүн хэсгүүд юм. Бусад бүх зүйл бол Thanos-ийн бүрэлдэхүүн хэсгүүд юм. Хамгийн чухал бүрэлдэхүүн хэсгээс эхэлцгээе. Thanos Sidecar бол Prometheus бүрийн хажууд суурилуулсан бүрэлдэхүүн хэсэг юм. Энэ нь Prometheus-ийн өгөгдлийг локал сангаас S3 эсвэл өөр Object Storage руу ачаалдаг.
Мөн Thanos Store Gateway хэмээх бүрэлдэхүүн хэсэг байдаг бөгөөд энэ нь Thanos Query-ээс ирсэн хүсэлтийн дагуу Object Storage-аас энэ өгөгдлийг унших боломжтой. Thanos Query нь PromQL болон Prometheus API-г хэрэгжүүлдэг. Энэ нь гаднаас нь харахад Прометей шиг харагдаж байна. PromQL асуулгыг хүлээн авч, Thanos Store Gateway руу илгээдэг, Thanos Store Gateway нь Объект хадгалах сангаас шаардлагатай өгөгдлийг авч, буцааж илгээдэг.
Гэхдээ бид Thanos Sidecar хэрэгжүүлэлтийн онцлогоос шалтгаалан Object Storage-д сүүлийн хоёр цагийн турш өгөгдлийг хадгалдаг бөгөөд энэ нь сүүлийн хоёр цагийг Object Storage S3-д байршуулах боломжгүй, учир нь Prometheus дотоод санах ойд эдгээр хоёр цагийн файлыг хараахан үүсгээгүй байна.
Та яаж үүнийг даван туулахаар шийдсэн бэ? Thanos Query нь Thanos Store Gateway руу илгээх хүсэлтээс гадна Prometheus-ийн хажууд байрлах Thanos Sidecar бүрт зэрэгцээ хүсэлт илгээдэг.
Мөн Thanos Sidecar нь эргээд Prometheus-д хүсэлт илгээж, сүүлийн хоёр цагийн өгөгдлийг авдаг.
Эдгээр бүрэлдэхүүн хэсгүүдээс гадна Thanos сайн ажиллахгүй нэмэлт бүрэлдэхүүн хэсэг байдаг. Энэ бол Object Storage дээрх жижиг файлуудыг Thanos Sidecars-ын энд байршуулсан том хэмжээтэй файл болгон нэгтгэх үүрэгтэй Thanos Compact юм. Thanos Sidecar хоёр цагийн дотор дата файлуудыг тэнд байршуулдаг. Эдгээр файлууд, хэрэв тэдгээрийг илүү том файл болгон нэгтгээгүй бол тэдний тоо мэдэгдэхүйц өсөх болно. Ийм файл их байх тусам Thanos Store Gateway-д илүү их санах ой шаардагдах тусам сүлжээ болон мета өгөгдлийг дамжуулахад илүү их нөөц шаардлагатай болно. Thanos Store Gateway үр дүнгүй болно. Тиймээс жижиг файлуудыг том файл болгон нэгтгэдэг Thanos Compact програмыг ажиллуулах шаардлагатай бөгөөд ингэснээр ийм файлууд цөөрч, Thanos Store Gateway дээрх ачааллыг багасгах хэрэгтэй.
Thanos Ruler гэх мэт бүрэлдэхүүн хэсэг бас байдаг. Энэ нь Prometheus-ийн анхааруулах дүрмийг хэрэгжүүлдэг ба Объект хадгалах сан руу өгөгдлийг буцааж бичихийн тулд Prometheus бичлэгийн дүрмийг үнэлж чаддаг. Гэхдээ энэ бүрэлдэхүүн хэсгийг ашиглахыг зөвлөдөггүй, учир нь... Тэр .
Энэ бол Thanos-ийн энгийн схем юм.

Одоо үүнийг VictoriaMetrics схемтэй харьцуулж үзье.
VictoriaMetrics нь 2 хувилбартай: Нэг зангилаа болон кластер хувилбар. Нэг зангилаа нь нэг компьютер дээр ажилладаг. Нэг зангилаа нь эдгээр бүрэлдэхүүн хэсгүүдийг агуулдаггүй, зөвхөн нэг хоёртын системтэй. Слайд дээрх хоёртын файл нь энэ квадрат шиг харагдаж байна. Квадрат дотор байгаа бүх зүйл нь нэг зангилаа хувилбарын хоёртын файлын агуулга юм. Чи түүний тухай мэдэх шаардлагагүй. Та зүгээр л хоёртын файлыг ажиллуулж, бүх зүйл бидний төлөө ажилладаг.
Кластер хувилбар нь илүү төвөгтэй байдаг. Дотор нь vmselect, vminsert, vmstorage гэсэн гурван өөр бүрэлдэхүүн хэсэгтэй. Тэдний нэрнээс харахад тус бүр нь юу хийдэг нь тодорхой байх ёстой. Insert бүрэлдэхүүн хэсэг нь Prometheus алсаас бичих API, Influx line протокол, Graphite протокол, OpenTSDB протокол зэрэг өөр өөр форматтай өгөгдлийг хүлээн авдаг. Insert бүрэлдэхүүн нь тэдгээрийг хүлээн авч, задлан шинжилж, өгөгдөл нь аль хэдийн хадгалагдсан байгаа хадгалалтын бүрэлдэхүүн хэсгүүдийн хооронд хуваарилдаг. Select бүрэлдэхүүн хэсэг нь эргээд PromQL асуулга хүлээн авдаг. Тэр хэрэгжүүлдэг , түүнчлэн Prometheus query API ба үүнийг Grafana дахь Prometheus эсвэл бусад Prometheus API үйлчлүүлэгчид орлуулах болгон ашиглаж болно. Select нь promql хүсэлтийг хүлээн авч, задлан шинжилж, хадгалах цэгүүдээс энэ хүсэлтийг гүйцэтгэхэд шаардлагатай өгөгдлийг уншиж, энэ өгөгдлийг боловсруулж, хариуг нь буцаана.

Thanos болон VictoriaMetrics-ийг суулгах нарийн төвөгтэй байдлыг харьцуулж үзье.

Thanos-аас эхэлцгээе. Та Thanos-тай ажиллаж эхлэхээсээ өмнө S3 эсвэл GCS гэх мэт Object Storage дээр хувин үүсгэх хэрэгтэй бөгөөд ингэснээр Thanos Sidecar түүнд өгөгдөл бичих боломжтой болно.

Дараа нь Prometheus бүрийн хувьд та Thanos Sidecar суулгах хэрэгтэй. Үүнээс өмнө та Prometheus дахь өгөгдөл нягтруулах ажиллагааг идэвхгүй болгохоо санах хэрэгтэй. Өгөгдлийн нягтрал нь нөөцийн хэрэглээг багасгахын тулд орон нутгийн Prometheus хадгалах сан дахь өгөгдлийг үе үе шахдаг.
Та өөрийн Prometheus дээр Thanos Sidecar-г суулгахдаа өгөгдөл нягтруулах функц идэвхжсэн үед Thanos Sidecar зөв ажиллахгүй тул энэ өгөгдөл нягтруулахыг идэвхгүй болгох ёстой. Энэ нь таны Prometheus өгөгдлийг хоёр цагийн блок болгон хадгалж, тэдгээр блокуудыг илүү том блок болгон нэгтгэхээ больсон гэсэн үг юм. Үүний дагуу, хэрэв та сүүлийн хоёр цагийн хугацаанаас хэтэрсэн асуулга хийвэл өгөгдөл нягтруулахыг идэвхжүүлсэн тохиолдолд тэдгээр нь ажиллахгүй байх болно.

Тиймээс Thanos нь олон тооны жижиг блокуудын ачааллыг багасгахын тулд дотоод санах ойд өгөгдөл хадгалах хугацааг 6-8 цаг хүртэл багасгахыг зөвлөж байна.
Та Thanos Sidecar-г суулгасны дараа Объект хадгалах хувин тус бүрт хоёр бүрэлдэхүүн хэсэг суулгах ёстой. Эдгээр нь Thanos Compactor болон Thanos Store Gateway юм.

Үүний дараа та Thanos Query-г суулгаж, танд байгаа бүх Thanos Store Gateway-тай холбогдох, мөн бүх Thanos Sidecars-тай холбогдох боломжтой байхаар тохируулах хэрэгтэй.
Энд бага зэрэг асуудал үүсч магадгүй юм.

Та Thanos Query-ээс эдгээр бүрэлдэхүүн хэсгүүдийн найдвартай, найдвартай холболтыг тохируулах хэрэгтэй. Хэрэв таны Prometheus өөр өөр мэдээллийн төв эсвэл өөр VPC-д байрладаг бол тэдгээртэй гаднаас холбогдохыг хориглоно. Гэхдээ Thanos Query ажиллахын тулд та ямар нэгэн байдлаар тэнд холболтыг тохируулах хэрэгтэй бөгөөд та арга замыг олох хэрэгтэй.
Хэрэв танд ийм олон мэдээллийн төв байгаа бол бүхэл системийн найдвартай байдал буурдаг. Thanos Query нь өөр өөр мэдээллийн төвд байрладаг бүх Thanos Sidecars-тай байнга холбоотой байх ёстой. Ирж буй хүсэлт бүрийн хувьд энэ нь хүсэлтийг бүх Thanos Sidecars руу чиглүүлнэ. Хэрэв холболт тасарсан бол та бүрэн бус өгөгдөл хүлээн авах эсвэл "кластер унтарсан" гэсэн хариуг хүлээн авах болно.

VictoriaMetrics-д бүх зүйл арай хялбар байдаг. Нэг зангилаа хувилбарын хувьд та зөвхөн нэг хоёртын файлыг ажиллуулахад л хангалттай.

Кластер хувилбарт дээрх гурван төрлийн бүрэлдэхүүн хэсгүүдийг хүссэн хэмжээгээрээ ажиллуулах эсвэл ашиглахад хангалттай. Kubernetes дахь бүрэлдэхүүн хэсгүүдийг эхлүүлэхийг автоматжуулах. Мөн бид Kubernetes оператор хийхээр төлөвлөж байна. Helm график нь зарим тохиолдлыг хамардаггүй бөгөөд хөл рүүгээ буудах боломжийг олгодог. Жишээлбэл, энэ нь хадгалалтын зангилааны тоог багасгах боломжийг олгодог бөгөөд энэ нь өгөгдөл алдагдахад хүргэдэг.

Та нэг хоёртын хувилбар эсвэл кластер хувилбарыг ажиллуулсны дараа тохиргоонд Prometheus-ийг нэмэхэд л хангалттай. Ингэснээр дотоод санах ой болон алсын хадгалалттай зэрэгцэн өгөгдөл бичиж эхэлдэг. Таны харж байгаагаар энэ тохиргоо нь Thanos тохиргоотой харьцуулахад илүү найдвартай байх ёстой. Прометей өөрөө VictoriaMetrics-тэй холбогдож өгөгдөл дамжуулдаг тул бид VictoriaMetrics-ээс бүх Prometheus-тай холболт хийх шаардлагагүй.

Thanos болон VictoriaMetrics-ийн дэмжлэгийг авч үзье.

Thanos нь Object Storage руу өгөгдөл ачаалахаа зогсоохгүйн тулд Sidecar-ийг хянах хэрэгтэй. Татаж авах алдааны улмаас энэ өгөгдөл татан авалтыг зогсоож магадгүй, жишээ нь таны Объект хадгалах сүлжээний холболт түр тасалдсан эсвэл Объект хадгалах хэсэг түр боломжгүй байна. Thanos Sidecar яг энэ мөчид үүнийг анзаарч, алдаа мэдээлэх, эвдэрч магадгүй бөгөөд дараа нь ажиллахаа болино. Хэрэв та үүнийг хянахгүй бол Объект хадгалах сан руу өгөгдөл дамжуулахаа болино. Хадгалах хугацаа өнгөрвөл (6-8 цагийг санал болгож байна) Объект хадгалах санд дуусаагүй өгөгдлийг алдах болно.

Үүний улмаас Thanos нягтруулагч ажиллахаа больж магадгүй юм . Нягтруулагч нь Объект хадгалах сангаас өгөгдлийг авч, илүү том өгөгдөл болгон нэгтгэдэг. Нягтруулагч нь Sidecars-тай синхрончлогдоогүй тул дараахь зүйл тохиолдож болно: Sidecar блокыг дуусгаж амжаагүй байгаа тул Compactor энэ блокыг бүрэн бичсэн гэж шийднэ. Compactor үүнийг уншиж эхэлдэг. Энэ нь блокийг бүрэн уншихгүй бөгөөд ажиллахаа болино. Дэлгэрэнгүйг үзнэ үү .

Дэлгүүрийн гарц нь Compactor болон Sidecars хоорондын уралдааны улмаас зөрчилтэй өгөгдөл буцаах магадлалтай. Дэлгүүрийн гарц нь нягтруулагч болон хажуугийн машинтай ямар ч байдлаар синхрончлогдоогүй тул ижил зүйл энд тохиолддог. Үүний дагуу Дэлгүүрийн гарц нь мэдээллийн зарим хэсгийг харахгүй эсвэл шаардлагагүй өгөгдлийг олж харах үед уралдааны нөхцөл байдал үүсч болно.

Thanos дахь Query бүрэлдэхүүн хэсэг нь одоогоор зарим хажуугийн машин эсвэл дэлгүүрийн гарц байхгүй тохиолдолд хэсэгчилсэн үр дүнг буцаана. Та мэдээллийн зарим хэсгийг хүлээн авах бөгөөд та бүх өгөгдлийг хүлээн аваагүй гэдгээ ч мэдэхгүй байх болно. Энэ нь анхдагч байдлаар ийм байдлаар ажилладаг. Үүнтэй төстэй нөхцөлд VictoriaMetrics нь тэмдэглэсэн өгөгдлийг хэсэгчилсэн байдлаар буцаадаг.

Thanos-аас ялгаатай нь VictoriaMetrics нь мэдээллээ алдах нь ховор. Prometheus-аас VictoriaMetrics-ийн холболт тасалдсан ч гэсэн энэ нь асуудал биш юм, учир нь Прометей ирж буй шинэ өгөгдлийг Урьдчилан бичих бүртгэлд бүртгэсээр байгаа бөгөөд хэмжээ нь 2 цаг байна. Хэрэв та VictoriaMetrics-тэй холболтоо хоёр цагийн дотор сэргээвэл таны өгөгдөл устахгүй. Прометей .

Өгөгдлийг хоёр цагийн дараа объектын санах ойд бичдэг Thanos-аас ялгаатай нь Prometheus нь VictoriaMetrics гэх мэт алсын санах ойд алсаас бичих протокол ашиглан өгөгдлийг автоматаар хуулбарладаг. Та Prometheus дахь орон нутгийн хадгалах санг алдахаас айдаггүй. Хэрэв тэр гэнэт локал санах ойгоо алдсан бол хамгийн муу тохиолдолд та алсын санах ойд бүртгэж чадаагүй сүүлийн секундын өгөгдлийг алдах болно.

Кубернетес нь Thanos-аас ялгаатай нь кластерыг автоматаар удирддаг. VictoriaMetrics кластерийн бүрэлдэхүүн хэсгүүдээс ялгаатай нь Thanos-ын бүх бүрэлдэхүүн хэсгүүдийг нэг Kubernetes кластерт байрлуулах нь хэцүү байдаг.

VictoriaMetrics нь шинэ хувилбарт маш энгийн шинэчлэлттэй. Зүгээр л VictoriaMetrics-ийг зогсоож, хоёртын файлуудыг шинэчилж, ажиллуул. SIGINT дохиогоор зогсоход VictoriaMetrics-ийн бүх хоёртын файлууд бүрэн унтрах болно. Тэд шаардлагатай өгөгдлийг зөв хадгалж, юу ч алдахгүйн тулд ирж буй холболтыг зөв хаадаг. Тиймээс та шинэчлэх үед юу ч алдахгүй.

VictoriaMetrics нь кластерийг өргөжүүлэхэд маш хялбар болгодог. Зүгээр л шаардлагатай бүрэлдэхүүн хэсгүүдийг нэмээд үргэлжлүүлэн ажиллана уу.

Thanos болон VictoriaMetrics дахь алдааны тухай.

Thanos-д дараах бэрхшээлүүд бий. Прометей сүүлийн хоёр цагийн турш өгөгдлийг хадгалах ёстой. Хэрэв тэд алдагдсан бол S3 шиг Object Storage-д хараахан бичигдээгүй байгаа тул та тэдгээрийг бүрмөсөн алдах болно.

Дэлгүүрийн гарцын бүрэлдэхүүн хэсэг болон нягтруулагчийн бүрэлдэхүүн хэсэг нь олон жижиг файлууд хадгалагдсан бол том хэмжээний объект хадгалах сантай ажиллахад их хэмжээний санах ой шаардагдана. Файлын тоо, хэмжээ их байх тусам мета мэдээллийг хадгалахад илүү их дэлгүүрийн гарц болон нягтруулагчийн RAM шаардагдана. Thanos үүнтэй холбоотой олон асуудалтай байдаг .

Thanos-ийг Prometheus-ийн хэмжээгээр хязгааргүй хэмжээгээр нэмэгдүүлэхийг сурталчилж байна. Энэ нь үнэндээ үнэн биш юм. Бүх хүсэлтүүд нь Дэлгүүрийн гарцын бүх бүрэлдэхүүн хэсэг болон хажуугийн машины бүх бүрэлдэхүүн хэсгүүдийг нэгэн зэрэг авах ёстой Query бүрэлдэхүүнээр дамждаг тул тэндээс өгөгдлийг татаж аваад дараа нь урьдчилан боловсруулна. Хүсэлтийн хурд нь хамгийн удаан сул холбоос, хамгийн удаан Дэлгүүрийн гарц эсвэл хамгийн удаан Sidecar зэргээр хязгаарлагддаг нь ойлгомжтой.
Эдгээр бүрэлдэхүүн хэсгүүд жигд бус ачаалалтай байж болно. Жишээлбэл, танд секундэд сая сая хэмжигдэхүүн цуглуулдаг Prometheus байна. Мөн секундэд олон мянган хэмжүүр цуглуулдаг Прометей байдаг. Секундэд олон сая хэмжигдэхүүн цуглуулдаг Prometheus нь ажиллаж байгаа сервертээ илүү их ачаалал өгдөг. Үүний дагуу Sidecar тэнд удаан ажилладаг. Тэгээд ерөнхийдөө тэнд бүх зүйл удаан ажилладаг. Query бүрэлдэхүүн хэсэг нь тэндээс өгөгдлийг маш удаан татах болно. Үүний дагуу таны бүх кластерын гүйцэтгэл энэ удаан Sidecar-аар хязгаарлагдах болно.

Анхдагч байдлаар, зарим Sidecars болон Store Gateway боломжгүй бол Thanos хэсэгчилсэн өгөгдлийг өгдөг. Жишээлбэл, хэрэв таны хажуугийн машинууд дэлхийн өнцөг булан бүрт өөр өөр мэдээллийн төвүүдэд тархсан бол холболтын эвдрэл, бүрэлдэхүүн хэсэг байхгүй байх магадлал эрс нэмэгддэг. Үүний дагуу ихэнх тохиолдолд та өөрөө ч мэдэлгүй хэсэгчилсэн өгөгдлийг хүлээн авах болно.

VictoriaMetrics-д бас бэрхшээл бий. Эхний алдаа бол VictoriaMetrics кэшэд ашигладаг RAM-ийн хэмжээг хязгаарлах сонголт юм. Анхдагч байдлаар, энэ нь VictoriaMetrics ажиллаж байгаа машин дээрх RAM-ийн 60% эсвэл Kubernetes дахь VictoriaMetrics pod-ийн RAM-ийн 60% -тай тэнцүү байна.
Хэрэв та энэ утгыг буруу өөрчилвөл VictoriaMetrics-ийн гүйцэтгэлийг сүйтгэж болно. Жишээлбэл, хэрэв та хэт бага утгыг тохируулсан бол өгөгдөл VictoriaMetrics кэшэд багтахаа больсон. Үүнээс болж тэрээр нэмэлт ажил хийж, процессор болон дискийг ачаалах шаардлагатай болно. Хэрэв та энэ сонголтыг хэт том болговол, нэгдүгээрт, VictoriaMetrics нь санах ойн алдаанаас болж эвдрэх магадлалыг нэмэгдүүлж, хоёрдугаарт, үйлдлийн системийн санах ойд маш бага хэмжээний RAM үлдэх болно. файлын кэш. VictoriaMetrics нь гүйцэтгэлийн хувьд файлын кэш дээр тулгуурладаг. Хэрэв энэ нь хангалтгүй бол диск дээрх ачаалал ихээхэн нэмэгдэх болно. Тиймээс зөвлөгөө: Онцын шаардлагагүй бол параметрийг бүү өөрчил.

Хоёр дахь сонголт. Энэ нь хадгалах хугацаа юм - анхдагчаар 1 сараар тохируулсан хугацаа. Энэ бол VictoriaMetrics-ийн өгөгдөл хадгалах хугацаа юм. Энэ хугацааны дараа VictoriaMetrics өгөгдлийг устгадаг.
Олон хүмүүс VictoriaMetrics-ийг энэ параметргүйгээр ажиллуулж, нэг сарын турш өгөгдлийг бүртгэдэг. Тэгээд тэд асууж байна: яагаад өмнөх сарын өгөгдөл алга болсон бэ? Учир нь анхдагч хадгалах хугацаа нь 1 сар байна. Тиймээс та хадгалах хугацааг зөв мэдэж, тохируулах хэрэгтэй.

Өвөрмөц шинж чанаруудыг харцгаая.

Thanos-д 5 минутын зайтай, цагийн интервалтай байдаг бөгөөд энэ нь ихэвчлэн "downsampling" гэсэн онцлогтой . Хэрэв та google-ээр хайж, github дээр тэдний асуудлыг харвал, энэ нь заримдаа зөв ажиллахгүй эсвэл хэрэглэгчдийн таамаглаж байгаагаар ажиллахгүй байх зэрэг олон асуудал гарч ирдэг.

Thanos нь Prometheus HA хосуудад зориулсан мэдээллийн давхардалтай. Хоёр Prometheus ижил зорилтот хэмжигдэхүүнийг цуглуулж, Thanos тэдгээрийг Объект хадгалах санд хадгалах үед. Thanos нь VictoriaMetrics-ээс ялгаатай нь энэ өгөгдлийг зохих ёсоор хувилах боломжтой.

Thanos нь Thanos схемд байсан дохиоллын бүрэлдэхүүн хэсэгтэй. Гэхдээ тэр .

Thanos нь Thanos болон Prometheus нар ижил кодтой байдаг нь давуу талтай. Thanos болон Prometheus хоёрыг ижил хөгжүүлэгчид хөгжүүлдэг. Thanos эсвэл Prometheus-ийг сайжруулснаар нөгөө тал нь ялна.

VictoriaMetrics-ийн гол онцлог нь MetricsQL юм. Эдгээр нь PromQL-д зориулсан VictoriaMetrics өргөтгөлүүд бөгөөд миний өмнөх томоохон мониторингийн уулзалт дээр ярьсан.

VictoriaMetrics нь олон төрлийн протокол ашиглан өгөгдөл ачаалахыг дэмждэг. VictoriaMetrics нь зөвхөн Prometheus-ийн өгөгдлийг хүлээн авахаас гадна Influx, OpenTSDB болон Graphite протоколоор дамжуулан хүлээн авах боломжтой.

VictoriaMetrics өгөгдөл нь Thanos болон Prometheus-тай харьцуулахад хамаагүй бага зай эзэлдэг.
Хэрэв та бодит өгөгдлийг бүртгэвэл хэрэглэгчид Prometheus, Thanos-тай харьцуулахад диск дээрх өгөгдлийн хэмжээ 2-5 дахин багассан тухай ярьдаг.

VictoriaMetrics-ийн өөр нэг давуу тал нь хурдыг оновчтой болгосон явдал юм.

Дэд бүтцийн өртөгийг харцгаая.

Thanos-ын нэг давуу тал нь объект хадгалахад өгөгдөл хадгалдаг нь харьцангуй хямд юм.
Өгөгдлийг объектын санд хадгалахдаа та өгөгдөл бичих, унших үйлдлүүдийн төлбөрийг төлөх ёстой (сая үйлдэл тутамд 10 доллар). Та объектын санд өгөгдөл бичихдээ, хэрэв таны кластер AWS-д байхгүй бол интернетэд өгөгдөл байршуулсны төлбөрөө төлдөг; Та өгөгдлийг уншихдаа 10TB тутамд 230-1 доллар төлнө. Хэрэв та Thanos кластераас түүхэн өгөгдлийг байнга асуудаг бол энэ нь чухал ач холбогдолтой байж болох юм.

Thanos кластерын хувьд та компакт, дэлгүүрийн гарц, их хэмжээний санах ой шаарддаг Query бүрэлдэхүүн хэсэг, их хэмжээний өгөгдөлд CPU-ийн серверүүдийг төлөх шаардлагатай.

VictoriaMetrics нь дараах зардлуудтай. Хэрэв та GCE HDD диск дээр өгөгдөл хадгалдаг бол 40TB-ийн үнэ 1 доллар болно. VictoriaMetrics-ийн хувьд энгийн HDD хөтчүүд хангалттай биш бөгөөд үүнээс тав дахин их үнэтэй SSD хэрэггүй. VictoriaMetrics нь HDD-д зориулагдсан.

VictoriaMetrics нь бүрэлдэхүүн хэсгүүдэд сервер шаарддаг: Нэг зангилаа эсвэл кластер бүрэлдэхүүн хэсгүүд нь Thanos-ийн бүрэлдэхүүн хэсгүүдээс ялгаатай нь CPU болон RAM-ыг бага шаарддаг бөгөөд үүний дагуу хямд байх болно.

Хэрэгжүүлэх жишээ.

Thanos нь Gitlab дээр хэрэгжүүлэх жишээтэй. Gitlab нь бүхэлдээ Thanos дээр ажилладаг. Гэхдээ тэнд бүх зүйл тийм ч жигд байдаггүй. Хэрэв та тэднийг харвал , тэгвэл тэд байнга зарим нь байдаг гэдгийг харж болно : Store Gateway эсвэл Query бүрэлдэхүүн хэсгүүдэд хангалттай санах ой байхгүй байна. Тэд санах ойн хэмжээг байнга нэмэгдүүлэх шаардлагатай болдог.
Үүнээс болж эдгээр асуудлыг шийдвэрлэх зардал нэмэгддэг.
Илүү амжилттай байж болох хоёр дахь хэрэгжилт бол Thanos-ийг хөгжүүлж эхэлсэн Improbable компани юм. Тэд Thanos эх кодыг нийтэлсэн. Improbable бол тоглоомын хөдөлгүүрийг хөгжүүлдэг компани юм.

VictoriaMetrics олон нийтэд хэрэгжүүлэх жишээтэй:
- wix.com вэбсайт бүтээгч
- Adidas нь VictoriaMetrics-ийг хэрэгжүүлж байгаа бөгөөд тэр ч байтугай сүүлийн PromCon 2019 дээр танилцуулга хийсэн
- TrafficStars - зар сурталчилгааны сүлжээ
- Seznam.cz бол Чехийн алдартай хайлтын систем юм.
Тэгээд одоо би нэрлэж чадахгүй байгаа нэргүй компаниуд байсан. Тэд зөвшөөрөөгүй.
- Нэг том тоглоом хөгжүүлэгч. Im-ээс том. Боломжгүй.
- График програм хангамжийн томоохон хөгжүүлэгч.
- Оросын томоохон банк.
- VictoriaMetrics-ийг амжилттай туршсан Европын салхин турбин үйлдвэрлэгч. Энэхүү үйлдвэрлэгч нь салхин турбинуудаас цуглуулсан өгөгдлийг мэдрэгч тутамд секундэд 50 дээжийн хурдаар хянахын тулд VictoriaMetrics-ийг хэрэгжүүлж байна. Салхин сэнс бүр хэдэн зуун мэдрэгчтэй. Тэд хэдэн зуун салхин турбинтай.
- Оросын агаарын тээврийн компаниуд VictoriaMetrics-ийг хэрэгжүүлэхийг хүсч байгаа ч чадахгүй байна. Бид тэдэнтэй гэрээ байгуулах шатандаа явж байна.
Дүгнэлт.
VictoriaMetrics болон Thanos ижил төстэй асуудлуудыг шийддэг боловч өөр өөр аргаар:
- Глобал асуулгын харагдац
- хэвтээ масштаблах
- дур зоргоороо хадгалах

Баярлалаа.
Бид таныг манай байранд хүлээж байна .

Зөвхөн бүртгэлтэй хэрэглэгчид санал асуулгад оролцох боломжтой. , гуйя.
Та Prometheus-ийн урт хугацааны хадгалалтанд юу ашигладаг вэ?
35,3%Thanos 6
0,0%Cortex0
0,0%M3DB0
41,2%VictoriaMetrics7
23,5%бусад4
17 хэрэглэгч санал өгсөн. 16 хэрэглэгч түдгэлзсэн.
Эх сурвалж: www.habr.com
