Hər kəsə salam. Aşağıda .
üçü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 və – Prometheus metriklərinin uzunmüddətli saxlanması layihələri.



İ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.

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.

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: və .
İlk dəfə məlumat burada göründü. Orada arxitektura

və onun necə işlədiyi haqqında danışılır. GCS

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

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. .

Prometheus sorğu API

işlətmək üçün Prometheus-un kodunu istifadə edir.
Barədə . Budur , burada biz ilk dəfə .

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

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.

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

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.

VictoriaMetrics, Thanosdan fərqli olaraq, həm şaquli, həm də üfüqi olaraq miqyaslana bilir. Burada , ş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.

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. .

2019-cu ilin iyun ayında 0.5.0 versiyası ilə əlamətdar bir buraxılış oldu, burada 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.

Eyni iyun ayında onlar daxilindədir. .

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

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

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

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

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

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

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

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

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 .
Thanos-un sadə sxeması belədir.

İ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, , 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.

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

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.

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.

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.

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.

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.

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.

Klaster versiyasında yuxarıda qeyd olunan üç tip komponenti istədiyiniz qədər işə salmaq kifayətdir, ya da 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.

Bir binary'i və ya klaster versiyasını işə saldıqdan sonra, Prometheus konfiqurasiya faylınıza , 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.

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

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.

Thanos compactor'ları, 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. .

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.

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.

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, .

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.

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.

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.

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.

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

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.

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. .

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.

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.

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.

İ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.

Unikal imkanlara nəzər salaq.

Thanos-da downsampling adında bir xüsusiyyət var: 5 dəqiqəlik və saatlıq intervallar, bunlar tez-tez . 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.

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.

Thanos-un, Thanos diaqramında olan bir alert komponenti var. Lakin onun .

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.

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.

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.

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.

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

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

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.

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.

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.

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.

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

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 , baxsanız, demək olar ki, hər zaman bir şeylər baş verir : 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.

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.
Nə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

Təşəkkür edirəm.
Sizi gözləyirik .

Yalnız qeydiyyatdan keçmiş istifadəçilər sorğuda iştirak edə bilərlər. , 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
