Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Hər kəsə salam. Aşağıda Big Monitoring Meetup 4.

Prometheus üçün təqdimatın izahı verilmişdir – müxtəlif sistemlər və xidmətlərin monitorinqi sistemi. Bu sistem vasitəsilə sistem administratorları cari sistem parametrləri haqqında məlumat toplaya və sistemlərin işindəki pozulmalara dair bildirişlər üçün xəbərdarlıqlar qura bilərlər.

Təqdimatda müqayisə ediləcək ThanosVictoriaMetrics – Prometheus metriklərinin uzunmüddətli saxlanması layihələri.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Videonu izləyin

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

İlk öncə Prometheus haqqında danışacağam. Bu, verilmiş target’lərdən metrikləri toplayan və onları yerli saxlama vasitəsini ötürən monitorinq sistemidir. Prometheus, metrikləri uzaq saxlama yerinə yazmağı, xəbərdarlıqlar və qeyd qaydaları yaratmağı bacarır.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Prometheusun məhdudiyyətləri:

  • Onun qlobal sorğu görünüşü yoxdur. Bu, bir neçə müstəqil Prometheus nümunəniz varsa baş verir. Onlar metrikləri toplayır. Və siz bu fərqli Prometheus nümunələrindən toplanan bütün bu metriklər üzərində sorğu icra etmək istəyirsiniz. Prometheus buna imkan vermir.
  • Prometheus yalnız bir server tərəfindən məhdudlaşdırılmış performansa malikdir. Prometheus avtomatik olaraq bir neçə serverə miqyaslana bilmir. Yalnız hədəflərinizi bir neçə Prometheus arasında əl ilə bölmək mümkün olacaq.
  • Prometheusdakı metriklərin həcmi də eyni səbəbdən yalnız bir server tərəfindən məhdudlaşdırılır, çünki o avtomatik olaraq bir neçə serverə miqyaslana bilmir.
  • Prometheusda məlumatların saxlanılması elə də asan deyil.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Bu problemlərin/hədəflərin həlləri?

Həllər bunlardır:

Bütün bu həllər, Prometheus tərəfindən toplanmış məlumatların uzaq saxlanması üçündür. Onlar əvvəlki slaydın uzaq saxlama problemini müxtəlif yollarla həll edir. Bu təqdimatda yalnız ilk iki həll haqqında danışacağam: ThanosVictoriaMetrics.

İlk dəfə məlumat Thanos burada bağlantıyagöründü. Orada Thanos arxitektura

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

və onun necə işlədiyi haqqında danışılır. Thanos, Prometheus tərəfindən yerli diske saxlanılan məlumatları alır və onları S3, GCS

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

və ya digər obyekt saxlama xidmətlərinə köçürür.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Beləliklə, Thanos qlobal sorğu görünüşünü təmin edir. Siz, obyekt saxlama xidmətində saxlanılan məlumatları bir neçə Prometheus nümunəsindən sorğu icra edə bilərsiniz. Thanos PromQL və.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Prometheus sorğu API

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

işlətmək üçün Prometheus-un kodunu istifadə edir.

Barədə VictoriaMetrics. Budur keçid, burada biz ilk dəfə VictoriaMetrics.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics haqqında danışdıq. VictoriaMetrics, bir neçə Prometheusdan məlumat alır uzaq yazma API protokolu ilə, Prometheus tərəfindən dəstəklənir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics də Thanos kimi qlobal sorğu görünüşünü təmin edir; çünki bir neçə Prometheus nümunəsi məlumatları bir VictoriaMetrics-ə yaza bilər. Buna görə də, bu bütün məlumatlar üzrə sorğu icra edə bilərsiniz.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics, Thanosla eyni şəkildə -- PromQL və Prometheus sorğu API-ni dəstəkləyir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanosdan fərqli olaraq, VictoriaMetrics-in açıq kodu sıfırdan yazılmışdır və sürət və resurs istehlakına görə optimallaşdırılmışdır.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics, Thanosdan fərqli olaraq, həm şaquli, həm də üfüqi olaraq miqyaslana bilir. Burada Tək nümunə versiyası var., şaquli miqyaslana bilən bir həll. Siz bir prosessor və 1 GB yaddaşla başlayıb, tədricən yüz prosessora və 1 TB yaddaşa qədər inkişaf edə bilərsiniz. VictoriaMetrics bütün bu resurslardan istifadə edə bilir. Onun performansı 1 nüvəli sistemlə müqayisədə təxminən 100 dəfə artacaq.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanosun tarixi 2017-ci ilin noyabrında ilk ictimai komit ortaya çıxdıqda başlayıb. Ondan əvvəl Thanos şirkət daxilində inkişaf etdirilirdi. improbable.io.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

2019-cu ilin iyun ayında 0.5.0 versiyası ilə əlamətdar bir buraxılış oldu, burada aradan qaldırdılar gossip protokol. Onu Thanosdan çıxardılar, çünki o, özünü yaxşı tərəfdən göstərmədi. Tez-tez Thanos klasteri düzgün işləmirdi, node-lar gossip protokolu səbəbindən düzgün qoşulmurdu. Bu səbəbdən onu oradan çıxarmaq qərarına gəldilər. Mən bunun doğru qərar olduğunu düşünürəm.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Eyni iyun ayında onlar 256 daxilindədir. Cloud Native Computing Foundation.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

üçün müraciət etdilər və Cloud Native Computing Foundation, Prometheus, Kubernetes və digər populyar layihələri əhatə edən.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

2018-ci ilin yanvar ayında VictoriaMetrics-in inkişafına başladıq.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

2018-ci ilin sentyabrında ilk dəfə VictoriaMetrics-dən ictimai olaraq söz açdım.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

2018-ci ilin dekabrında tək-nodlu versiyası nəşr olundu.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

2019-cu ilin mayında həm tək-nodlu, həm də klaster versiyasının mənbə kodları nəşr olundu.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

2019-cu ilin iyununda Thanosla eyni zamanda, CNCF fonduna müraciət etdik, müraciət nömrəmiz 255idi. Biz müraciətimizi Thanosdan bir gün əvvəl etdik.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Amma, təəssüf ki, hələlik oraya qəbul olunmamışıq. İcmanın köməyinə ehtiyac var.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos və VictoriaMetrics-in arxitekturasını əks etdirən ən vacib slaydlara baxaq.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanosdan başlayaq. Sarı komponentlər – Prometheus komponentləridir. Qalan hər şey Thanos komponentləridir. Ən əsas komponentdən başlayaq. Thanos Sidecar - hər Prometheus ilə yanaşı quraşdırılan bir komponentdir. O, Prometheus-dan məlumatları yerli saxlamadan S3-ə və ya digər Objeck Saklama sisteminə yükləyir.

Bundan başqa, Thanos Store Gateway adlı bir komponent var ki, o, Thanos Query-dən gələn sorğularla bu məlumatları Objeck Saxlamadan oxumağa qadir. Thanos Query PromQL və Prometheus API-ni həyata keçirir. Yəni, xaricdən Prometheus kimi görünür. PromQL sorğularını qəbul edir, onları Thanos Store Gateway-ə göndərir, Thanos Store Gateway lazım olan məlumatları Objeck Saxlamadan alır, geri göndərir.

Amma bizim Objeck Saxlamamızda son iki saatın məlumatları yoxdur, çünki Thanos Sidecar-ın yerinə yetirilməsi ilə bağlı bir xüsusiyyət var, o, son iki saatı S3-ə yükləyə bilmir, çünki bu iki saat ərzində Prometheus hələ yerli saxlanmada fayllar yaratmamışdır.

Bəs bunu necə əvəz etdik? Thanos Query, Thanos Store Gateway-ə göndərdiyi sorğulardan başqa, həm də Prometheus ilə yanaşı olan hər Thanos Sidecar-a da eyni zamanda sorğular göndərir.

Thanos Sidecar isə öz növbəsində sorğuları daha da Prometheus-a proxy edir və son iki saatın məlumatlarını alır.

Bunlardan əlavə, Thanosun narahat olmasına səbəb olan bir əlavə komponent var. Bu, Thanos Compact-dır ki, o da Object Storage-də kiçik faylları daha böyük fayllara birləşdirir. Thanos Sidecar bu faylları burada yükləyir. Bu fayllar 2 saatlıq məlumatları özündə saxlayır. Əgər bu kiçik fayllar birləşdirilməzsə, onların sayı çox artacaq. Beləliklə, kiçik faylların sayı artdıqca, Thanos Store Gateway üçün daha çox yaddaş, məlumatların şəbəkə üzərindən ötürülməsi, metadata üçün daha çox resurs tələb olunur. Thanos Store Gateway-in işi effektiv olmur. Buna görə də, Thanos Compact mütləq işə salınmalıdır ki, bu kiçik fayllar daha böyük fayllara birləşsin və Thanos Store Gateway-dəki əlavə yük azalsın.

Birdə Thanos Ruler komponenti var. O, Prometheus alerting qaydalarını yerinə yetirir və Prometheus recording qaydalarını hesablaya bilər ki, məlumatları yenidən Object Storage-ə yazsın. Ancaq bu komponentin istifadəsi tövsiyə edilmir, çünki o tam olmayan məlumat döndərməyə meyllidir.

Thanos-un sadə sxeması belədir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

İndi VictoriaMetrics-in sxeması ilə müqayisə edək.

VictoriaMetrics-in 2 versiyası var: Single-node və klaster versiyası. Single-node bir kompüterdə işləyir. Single-node-da bu komponentlər yoxdur, sadəcə bir binar fayl vardır. Bu binar fayl slaydda bu kvadrat görünür. Kvadratın içindəki hər şey Single-node versiyasının binar faylının məzmunudur. Onu bilmək sizə vacib deyil. Sadəcə binarı işə salırsınız və hər şey işə düşür.

Klaster versiyası daha mürəkkəbdır. Onun içərisində üç fərqli komponent var: vmselect, vminsert və vmstorage. Onların adından hər birinin nə etdiyini anlamaq lazımdır. Insert komponenti məlumatları müxtəlif formatlarda qəbul edir: Prometheus remote write API, Influx line protokolu, Graphite protokolu və OpenTSDB protokolu vasitəsilə. Insert komponenti bu məlumatları qəbul edir, analiz edir və mövcud storage komponentləri arasında paylayır, burada məlumatlar artıq saxlanılır. Select komponenti isə PromQL sorğularını qəbul edir. O, PromQL, həmçinin Prometheus sorğu API-sini həyata keçirir, və o, Grafana-da və ya digər Prometheus API müştərilərində Prometheus-un əvəzlənməsi kimi istifadə oluna bilər. Select promql sorğunu qəbul edir, onu analiz edir, tələb olunan məlumatları storage nodlarından oxuyur, bu məlumatları emal edir və cavabı geri qaytarır.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos və VictoriaMetrics-in quraşdırılma mürəkkəbliyini müqayisə edək.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos ilə başlayaq. Thanos-u işə salmadan əvvəl, Thanos Sidecar-in məlumatları yazması üçün S3 və ya GCS kimi Object Storage-də bir bucket yaratmalısınız.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Sonra hər bir Prometheus üçün Thanos Sidecar quraşdırmalısınız. Bunun öncəsi, Prometheus-da data compaction-u söndürməyi unutmayın. Data compaction müntəzəm olaraq Prometheus-un yerli saxlama sistemində məlumatları sıxaraq resurs istehlakını azaltmaq üçün həyata keçirilir.

Thanos Sidecar'i Prometheus'lara quraşdırdığınızda, bu data compression'u deaktiv etməlisiniz, çünki Thanos Sidecar data compression aktiv olduqda düzgün işləyə bilmir. Bu, Prometheus'un məlumatları iki saatlıq bloklarla saxladığı və bu blokları daha böyük bloklara birləşdirməkdən imtina etdiyi deməkdir. Beləliklə, əgər son iki saat ərzində müddəti aşan sorğular edirsinizsə, bunlar data compression aktiv olsaydı daha effektiv işləyə biləcək şəkildə işləməyəcək.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Buna görə Thanos lokal saxlama üçün məlumatların saxlanma müddətini (data retention) 6-8 saat ərzində azaltmağı tövsiyə edir, ki bu da kiçik blokların çoxluğu ilə bağlı overhead-i azaldır.

Thanos Sidecar'i quraşdırdıqdan sonra, hər bir Object Storage Bucket üçün iki komponent quraşdırmalısınız. Bu, Thanos Compactor və Thanos Store Gateway-dir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Daha sonra Thanos Query quraşdırılmalı və onun bütün Thanos Store Gateway'lərinizə qoşulması, eləcə də bütün Thanos Sidecar'lara qoşulması üçün konfiqurasiya edilməlidir.

Burada kiçik bir problem ola bilər.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos Query'in bu komponentlərlə etibarlı və təhlükəsiz bir əlaqə qurması lazımdır. Və əgər Prometheus'larınız fərqli data mərkəzlərində, ya da fərqli VPC-lərdədirsə, onlara xarici əlaqələr qadağandır. Lakin Thanos Query'in oraya bir şəkildə qoşulması lazımdır və siz bir yol tapmalısınız.

Belə data mərkəzləriniz çoxdursa, sistemin etibarlılığı azalır. Çünki Thanos Query hər zaman müxtəlif data mərkəzlərində yerləşən bütün Thanos Sidecar'lara qoşulmalıdır. Hər daxil olan sorğuda, o, bütün Thanos Sidecar'lara sorğular göndərəcək. Əgər əlaqə kəsilərsə, siz ya tam məlumat dəsti almayacaqsınız, ya da "klaster işləmir" cavabını alacaqsınız.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics'da işlər biraz daha asandır. Single-node versiyası üçün sadəcə bir binary-i işə salmaq kifayətdir və hər şey işləyir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Klaster versiyasında yuxarıda qeyd olunan üç tip komponenti istədiyiniz qədər işə salmaq kifayətdir, ya da helm chart Kubernetes-də komponentləri başlatmağı avtomatlaşdırmaq üçün. Biz hələ Kubernetes operatoru etməyi planlaşdırırıq. Helm chart bəzən bəzi halları əhatə etmir və sizə ayağınızı güllələməyə imkan verir. Məsələn, o, storage node sayını azaltmağa imkan verir ki, bu da məlumat itkisinə səbəb olar.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Bir binary'i və ya klaster versiyasını işə saldıqdan sonra, Prometheus konfiqurasiya faylınıza remote write URL üçün bir konfiqurasiya əlavə etməlisiniz, beləliklə, məlumatları eyni zamanda lokal saxlama və remote saxlamaya yazmağa başlayacaq. Gördüyünüz kimi, bu konfiqurasiya Thanos konfiqurasiyası ilə müqayisədə daha etibarlı işləməlidir. VictoriaMetrics'e bütün Prometheus'lara bir bağlantı saxlamağa ehtiyacımız yoxdur, çünki Prometheus'lar özləri VictoriaMetrics'e qoşulub məlumatlarını ötürür.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos və VictoriaMetrics-in dəstəklənməsini nəzərdən keçirək.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos, Sidecar'ı izlemelidir ki, veri yükleme işlemini Object Storage'a sürdürebilsin. Veri yükleme işlemi, örneğin Object Storage ile ağ bağlantınızın geçici olarak kesilmesi ya da Object Storage'ın geçici olarak kullanılamaz hale gelmesi gibi hatalar yüzünden kesilebilir. Bu anda Thanos Sidecar durumu fark edecek, hata bildirecek, düşebilir ve sonrasında çalışmayı durdurabilir. Eğer onu izlemiyorsanız, Object Storage'a veri aktarımınız kesilecektir. Eğer retention süresi (tavsiye edilen 6-8 saat) geçerse, Object Storage'a ulaşmamış verileri kaybedebilirsiniz.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos compactor'ları, Sidecar ile yaşanan yarışmalar nedeniyle çalışmayı durdurabilir.Compactor'lar, Object Storage'tan veri alır ve bunları daha büyük veri parçalarına birleştirir. Compactor'lar, Sidecar'larla senkronize edilmediği için şu durum oluşabilir: Sidecar, henüz bloğu tamamlayamamışken, Compactor bu bloğun tamamen yazıldığını zanneder. Compactor, bloğu tam olarak okumadan okumaya başlar ve çalışmayı durdurur. Detaylar için bakınız. burada.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Store Gateway, Compactor'lar ve Sidecar'lar arasındaki yarışmalar nedeniyle tutarsız veriler verebilir. Burada benzer bir durum söz konusudur çünkü Store Gateway, Compactor'lar ve Sidecar'larla hiçbir şekilde senkronize edilmemiştir. Dolayısıyla, Store Gateway bazı verileri göremediği ya da fazladan veriler gördüğü yarı yarış durumu oluşabilir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos'taki Query bileşeni, varsayılan olarak bazı Sidecar'lar ya da Store Gateway şu anda erişilemez olduğunda kısmi sonuç verir. Bir kısmını alacaksınız ve aldığınız veri tam olmadığı hakkında hiçbir şey bilmeyeceksiniz. Bu, varsayılan olarak çalışır. Benzer bir durum için VictoriaMetrics, kısmi gibi işaretlenmiş verileri döndürür.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos'tan farklı olarak, VictoriaMetrics nadiren veri kaybeder. Prometheus'tan VictoriaMetrics'a bağlantı kesildiğinde sorun değil, çünkü Prometheus, yaklaşık iki saatlik bir Write Ahead Log'a yeni gelen verileri yazmaya devam eder. Eğer iki saat içinde VictoriaMetrics'a bağlantıyı yeniden sağlarsanız, veriler kaybolmayacaktır. Prometheus, bağlantı tekrar sağlandıktan sonra verileri yazmaya devam eder..

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos'un verileri ancak iki saat sonra object storage'a yazarken, Prometheus otomatik olarak remote write protokolüyle verileri, VictoriaMetrics gibi remote storage'a çoğaltır. Prometheus'taki local storage kaybı sizi korkutmaz. Eğer bir anda local storage'ı kaybederse, en kötü senaryoda, remote storage'a yazılmamış son saniyeleri kaybedersiniz.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Kubernetes, Thanos'tan farklı olarak, kümeyi otomatik olarak yönetir. Tüm Thanos bileşenlerini tek bir Kubernetes kümesine yerleştirmek zordur, VictoriaMetrics'in küme bileşenlerinin aksine.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics-dən yeni versiyaya keçid etmək çox asandır. Sadəcə, VictoriaMetrics-i dayandırın, ikili faylları yeniləyin və başladın. SIGINT siqnalı ilə dayandıranda, VictoriaMetrics-in bütün ikili faylları gracefull şəkildə bağlanır. Onlar lazım olan məlumatları düzgün saxlayır, gələn əlaqələri düzgün bağlayır ki, heç nə itirilməsin. Buna görə də, yeniləmə zamanı heç nə itirməyəcəksiniz.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics-də klasteri genişləndirmək çox asandır. Sadəcə, lazım olan komponentləri əlavə edin və işləməyə davam edin.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos və VictoriaMetrics-dəki çətinliklər haqqında.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanosta bir neçə çətinlik var. Prometheus son iki saatın məlumatlarını saxlamaq məcburiyyətindədir. Əgər onlar itirilərsə, onları tamamilə itirəcəksiniz, çünki hələ Object Storage-da, məsələn S3-də yazılmağa rəvac verilməmişdir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Store Gateway komponenti və compactors komponenti, böyük Object Storage ilə işləmək üçün çox yaddaş tələb edə bilər, əgər orada çox sayda kiçik fayl varsa. Faylların sayı və həcmi nə qədər çox olarsa, Store Gateway və compactors-un meta məlumatları saxlamaq üçün lazım olan əməli yaddaş da bir o qədər çox olmalıdır. Thanosta bununla bağlı bir çox məsələlər var. Store Gateway və compactors orta həcmlərdə yazılmış məlumatlar zamanı düşür..

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanosta, Prometheus-larınız üzrə sonsuz sayda skalala biləcəyi reklam olunur. Əslində, bu doğru deyil. Çünki bütün sorğular Query komponenti vasitəsilə gedir ki, bu da eyni anda bütün Store Gateway və bütün Sidecar komponentlərini sorğulamalıdır, oradan məlumatları çıxarıb sonra əvvəlcədən emal etməlidir. Aydındır ki, sorğuların sürəti ən yavaş zəif link, ən yavaş Store Gateway və ya ən yavaş Sidecar tərəfindən məhdudlaşır.

Bu komponentlər qeyri-bərabər yüklənə bilər. Məsələn, sizdə saniyədə milyonlarla metrik toplayan Prometheus var. Və dəqiqə ilə toplanan minlərlə metrik olan Prometheus var. Saniyədə milyonlarla metrik toplayan Prometheus, işlədiyi serveri daha çox yükləyir. Nəticədə, orada Sidecar daha yavaş işləyir. Və hətta orada hər şey yavaş işləyir. Və Query komponenti oradan məlumatları çox yavaş çıxarır. Nəticədə, bütün klasterinizin performansı bu yavaş Sidecar ilə məhdudlaşacaq.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Varsayılan olaraq Thanos, bəzi Sidecar-lar və ya Store Gateway əlçatmaz olduqda qismən məlumatlar təqdim edir. Məsələn, əgər Sidecar-larınız dünyada müxtəlif data mərkəzlərində yerləşirsə, əlaqənin kəsilməsi və komponentlərin əlçatmaz olma ehtimalı çox artır. Nəticədə, əksər hallarda qismən məlumatlar alacaqsınız, bununla bağlı heç bir məlumatınız olmadan.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics-də də çətinliklər var. İlk çətinlik, VictoriaMetrics-in keşi üçün istifadə olunan əməli yaddaşın həcmini məhdudlaşdıran seçimdir. Varsayılan olaraq, bu, VictoriaMetrics-in başladığı maşının əməli yaddaşının 60%-ni və ya Kubernetes-də VictoriaMetrics podunun 60%-ni təşkil edir.

Bu dəyəri səhv dəyişsəniz, VictoriaMetrics-in performansını əhəmiyyətli dərəcədə pisləşdirə bilərsiniz. Məsələn, əgər çox aşağı bir dəyər təyin etsəniz, məlumatlar VictoriaMetrics-in ön yaddaşına sığmaya bilər. Bu səbəbdən ona əlavə iş görməli olacaq və prosessoru və diski yükləyəcək. Bu seçimi çox böyük etsəniz, ilk öncə VictoriaMetrics-in "out of memory" xətası ilə işdən çıxma ehtimalını artıracaq, həmçinin əməliyyat sistemində fayl ön yaddaşı üçün çox az əməli yaddaş qalacaq. VictoriaMetrics, performansı üçün fayl ön yaddaşına güvənir. Əgər onun kifayət olmadığı halda, diskin yükü əhəmiyyətli dərəcədə artacaq. Buna görə də, parametri yalnız zəruri hallarda dəyişdirmək məsləhətdir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

İkinci seçim. Bu, retentionPeriod-dur — standart olaraq 1 ay olaraq təyin edilir. Bu müddət, VictoriaMetrics-in məlumatları saxladığı zamandır. Bu müddət bitdikdə, VictoriaMetrics məlumatları silir.

Bir çoxları VictoriaMetrics-i bu parametr olmadan işə salır, bir ay ərzində məlumatları yazır. Sonra soruşurlar: niyə keçmiş ay üçün məlumatlar itdi? Çünki retentionPeriod-un standart dəyəri 1 aydır. Buna görə də doğru retentionPeriod-u bilmək və təyin etmək vacibdir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Unikal imkanlara nəzər salaq.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos-da downsampling adında bir xüsusiyyət var: 5 dəqiqəlik və saatlıq intervallar, bunlar tez-tez səhv işləyir. Google-da axtarış etsəniz və onların github-da olan məsələlərini incələsəniz, downsampling ilə bağlı çox sayda məsələnin olduğunu görəcəksiniz, bəzən də səhv işləyir yaxud istifadəçilərin gözlədiyi kimi çalışmır.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos, Prometheus HA cütlükləri üçün məlumatların dublikasiyasını aradan qaldırmağı bacarır. İki Prometheus eyni hədəflərdən eyni metrikləri toplayır və Thanos onları Obkekt Saxlama sistemində birləşdirir. Thanos bu məlumatları düzgün düzdür, VictoriaMetrics-dən fərqli olaraq.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos-un, Thanos diaqramında olan bir alert komponenti var. Lakin onun istehsalatda istifadə edilməsi tövsiyə edilmir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos-un bir üstünlüyü odur ki, Thanos və Prometheus-un kodu ortaqdır. Thanos və Prometheus eyni geliştiricilər tərəfindən hazırlanmışdır. Thanos-da yaxud Prometheus-da edilən yeniləmələr digər tərəfə də müsbət təsir edir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics-in əsas xüsusiyyəti — MetricsQL-dır. Bu, VintageMetrics-in PromQL üçün genişlənməsidir ki, mən bunu keçmişdəki böyük monitoring mitinqində danışmışdım.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics bir çox fərqli protokol ilə məlumatların yüklənməsini dəstəkləyir. VictoriaMetrics yalnız Prometheus-dan məlumat qəbul etməklə qalmır, həm də Influx, OpenTSDB və Graphite protokolları ilə də işləyə bilir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics-in məlumatları, Thanos və Prometheus ilə müqayisədə əhəmiyyətli dərəcədə daha az yer tutur.

Real məlumatlar yazıldıqda, istifadəçilər Prometheus və Thanos ilə müqayisədə diskdə 2-5 dəfə daha az məlumat ölçüsü olduğu barədə məlumat verirlər.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics-in bir digər üstünlüyü — sürət üçün optimallaşdırılmasıdır.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

İnfrastrukturun qiymətini nəzərdən keçirək.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos-un bir üstünlüklərindən biri, məlumatları nisbətən ucuz olan obyekt saxlama sistemində saxlamasıdır.

Məlumatları obyekt saxlama sisteminə saxlayarkən, siz məlumatların oxunması və yazılması əməliyyatlarına görə ödəniş etməlisiniz (bir milyon əməliyyat üçün 10 $). Obyekt saxlama sisteminə məlumat yazarkən, bulud xidməti təminatçınıza, əgər klasteriniz AWS-də yerləşmirsə, internetə məlumat yükləmək üçün hostinq xərclərinizi ödəyirsiniz - orada bu pulsuzdur. Məlumatları oxuyarkən, 1TB üçün 10 $-dan 230 $-a qədər ödəniş edirsiniz. Bu, Thanos klasterindən tarixi məlumatları tez-tez soruşursunuzsa əhəmiyyətli ola bilər.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos klasteri üçün Compact, Store Gateway, Query komponentləri üçün serverlərə ödəniş etməli olacaqsınız ki, bu da böyük məlumat həcmində çoxlu RAM və CPU tələb edir.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics üçün xərclər belədir. GCE HDD disklərində məlumat saxlayarkən, 1TB üçün 40 $ olur. VictoriaMetrics üçün adi HDD diskləri kifayətdir, heç bir SSD-yə ehtiyac yoxdur, bunlar isə 5 dəfə bahadır. VictoriaMetrics HDD-lər üzrə optimallaşdırılıb.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics üçün ya Single-node, ya da klaster komponentləri üçün serverlərə ehtiyac var ki, bunlar Thanos komponentləri ilə müqayisədə daha az CPU və RAM tələb edir - buna görə də daha ucuz olacaq.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

İnkişaf nümunələri.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Thanos-un inkişaf nümunəsi Gitlab-dır. Gitlab tamamilə Thanos-la işləyir. Amma orada hər şey elə də əla deyil. Əgər onların məsələlər, baxsanız, demək olar ki, hər zaman bir şeylər baş verir Thanos ilə əməliyyat problemləri: Store Gateway və ya Query komponentləri üçün RAM çatışmazlığı var. Onlar daim RAM həcmini artırmağa məcburdurlar.

Buna görə də bu problemləri həll etmək üçün xərcləri artır.

İkinci daha uğurlu inkişaf nümunəsi Improbable şirkətidir, onlar Thanos-u inkişaf etdirməyə başladılar. Onlar Thanos-un mənbə kodunu yayımlamışdır. Improbable oyun mühərriklərinin inkişaf etdirilməsi ilə məşğuldur.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

VictoriaMetrics-in açıq inkişaf nümunələri bunlardır:

  • wix.com sayt qurma platforması
  • Adidas VictoriaMetrics-i tətbiq edir və hətta son PromCon 2019-da bir çıxış etdi
  • TrafficStars - reklam şəbəkəsi
  • Seznam.cz - məşhur çex axtarış sistemi.

Daha sonra adını çəkə bilmirəm olan tanınmamış şirkətlər gəldi. Onlar razılıq vermədilər.

  • Bir böyük oyun inkişaf etdiricisi. Improbable-dan daha iri.
  • Böyük qrafik proqram inkişaf etdiricisi.
  • Böyük rus bankı.
  • Avropanın külək turbinləri istehsalçısı, VictoriaMetrics-i uğurla test etdiyinə görə. Bu istehsalçı, hər sensor üçün 50 nümunə saniyə sürəti ilə külək turbinlərindən əldə olunan məlumatların monitorinqi üçün VictoriaMetrics-i tətbiq edir. Hər külək turbinində bir neçə yüz sensor var. Onların bir neçə yüz külək turbinləri var.
  • Rus hava yolları, VictoriaMetrics-i tətbiq etmək istəyir, amma hələ də edə bilmir. Biz razılaşma mərhələsindəyik.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetricsNəticələr.

VictoriaMetrics və Thanos oxşar problemləri, lakin müxtəlif üsullarla həll edir:

  • Qlobal sorğu görünüşü
  • horizontally scaling
  • istənilən saxlanma

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Təşəkkür edirəm.

Sizi gözləyirik telegram kanalımda.

Prometheus üçün məlumat depolama seçimi: Thanos vs VictoriaMetrics

Yalnız qeydiyyatdan keçmiş istifadəçilər sorğuda iştirak edə bilərlər. Daxil olun, xahiş edirəm.

Prometheus üçün uzunmüddətli yaddaş kimi nə istifadə edirsiniz?

  • 35,3%Thanos6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%digər4

17 istifadəçi səs verdi. 16 istifadəçi sakit qaldı.

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster