Hamıya salam. Aşağıda transkript var .
– müxtəlif sistemlər və xidmətlər üçün monitorinq sistemi, onun köməyi ilə sistem administratorları sistemlərin cari parametrləri haqqında məlumat toplaya və sistemlərin işində sapmalar barədə bildirişlər almaq üçün xəbərdarlıqlar qura bilərlər.
Hesabatda müqayisə də olacaq и — Prometheus metriklərinin uzunmüddətli saxlanması üçün layihələr.



Əvvəlcə sizə Prometey haqqında danışacağam. Bu, müəyyən edilmiş hədəflərdən ölçüləri toplayan və onları yerli yaddaşa saxlayan monitorinq sistemidir. Prometheus ölçüləri uzaq yaddaşa yaza bilər və xəbərdarlıqlar və qeyd qaydaları yarada bilər.

Prometey məhdudiyyətləri:
- Onun qlobal sorğu görünüşü yoxdur. Bu, bir çox müstəqil prometey nümunəsinə sahib olduğunuz zamandır. Metrikləri toplayırlar. Və siz müxtəlif prometey nümunələrindən toplanmış bütün bu ölçülərin üstünə sorğu vermək istəyirsiniz. Prometey buna icazə vermir.
- Prometheus ilə performans yalnız bir serverlə məhdudlaşır. Prometheus avtomatik olaraq birdən çox server arasında ölçülənmir. Hədəflərinizi yalnız çoxlu Prometheus arasında əl ilə bölə bilərsiniz.
- Prometheus-da ölçülərin əhatə dairəsi yalnız bir serverlə məhdudlaşır, çünki o, avtomatik olaraq birdən çox server arasında miqyaslandıra bilmir.
- Prometheus-da məlumat təhlükəsizliyini təşkil etmək o qədər də asan deyil.

Bu problemlərin/çağırışların həlli yolları?
Həlllər bunlardır:
Bütün bu həllər Prometey tərəfindən toplanmış məlumatların uzaqdan saxlanması üçündür. Əvvəlki slayddan uzaq yaddaş problemini müxtəlif yollarla həll edirlər. Bu təqdimatda mən yalnız ilk iki həll yolu haqqında danışacağam: и .
haqqında ilk dəfə məlumat tərəfindən ortaya çıxdı . Orada memarlıq təsvir edilmişdir və necə işləyir.

Thanos, Prometeyin saxladığı məlumatları yerli diskə götürür və S3-ə kopyalayır və ya başqa obyekt anbarına.

Beləliklə, Thanos qlobal sorğu görünüşünü təmin edir. Bir çox Prometheus instansiyasından obyekt yaddaşında saxlanılan məlumatları sorğulaya bilərsiniz.

Thanos PromQL və dəstəkləyir .

Thanos məlumatları saxlamaq üçün Prometheus kodundan istifadə edir.

Thanos, Prometheus ilə eyni tərtibatçılar tərəfindən hazırlanmışdır.
haqqında . Burada , haqqında ilk danışdığımız yer .

VictoriaMetrics bir neçə prometeydən məlumat alır Prometey tərəfindən dəstəklənən protokol.

VictoriaMetrics qlobal sorğu görünüşünü təmin edir, çünki çoxsaylı Prometheus nümunələri bir VictoriaMetrics-ə məlumat yaza bilər. Müvafiq olaraq, bütün bu məlumatlar üzrə sorğular edə bilərsiniz.

VictoriaMetrics həmçinin Thanos, PromQL və Prometheus sorğu API-lərini dəstəkləyir.

Thanos-dan fərqli olaraq, VictoriaMetrics mənbə kodu sıfırdan yazılır və sürət və resurs sərfiyyatı üçün optimallaşdırılıb.

VictoriaMetrics, Thanos-dan fərqli olaraq, həm şaquli, həm də üfüqi şəkildə ölçü götürür. Yemək şaquli tərəzi. Siz bir prosessor və 1 GB yaddaşla başlaya və tədricən yüzlərlə prosessor və 1 TB yaddaşa yüksələ bilərsiniz. VictoriaMetrics bütün bu resurslardan istifadə edə bilər. Onun performansı 100 nüvəli sistemlə müqayisədə təxminən 1 dəfə artacaq.

Thanos-un tarixi 2017-ci ilin noyabrında, ilk ictimai öhdəliyin ortaya çıxdığı zaman başladı. Bundan əvvəl Thanos daxili olaraq hazırlanmışdı .

2019-cu ilin iyun ayında 0.5.0 əlamətdar buraxılışı var idi protokol. O, yaxşı çıxış etmədiyi üçün Thanosdan uzaqlaşdırıldı. Tez-tez Thanos klasteri düzgün işləmirdi, dedi-qodu protokolu səbəbindən ona səhv bağlanan qovşaqlar. Ona görə də onu oradan uzaqlaşdırmaq qərarına gəldik. Hesab edirəm ki, bu, düzgün qərardır.

Eyni 2019-cu ilin iyun ayında ərizə nömrəsini göndərdilər в .

Və bir neçə aydan sonra Thanos qəbul edildi Prometheus, Kubernetes və digər məşhur layihələri ehtiva edir.

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

2018-ci ilin sentyabrında mən ilk dəfə açıq şəkildə VictoriaMetrics-i qeyd etdim.

2018-ci ilin dekabrında Tək qovşaqlı versiya nəşr olundu.

2019 may ayında həm tək düyünlü, həm də çoxluq versiyalarının mənbələri.

2019-cu ilin iyun ayında Thanos kimi biz də nömrə altında CNCF fonduna ərizə təqdim etdik. . Thanos müraciət etməzdən bir gün əvvəl müraciət etdik.

Amma təəssüf ki, bizi hələ də ora qəbul etməyiblər. İctimai yardım lazımdır.

Thanos və VictoriaMetrics-in arxitekturasını göstərən ən vacib slaydlara baxaq.

Thanos ilə başlayaq. Sarı komponentlər Prometey komponentləridir. Qalan hər şey Thanos komponentləridir. Ən vacib komponentdən başlayaq. Thanos Sidecar hər Prometeyin yanında quraşdırılan komponentdir. O, Prometheus məlumatlarını yerli yaddaşdan S3 və ya başqa Obyekt Yaddaşına yükləyir.
Thanos Store Gateway adlı komponent də var, Thanos Query-dən gələn sorğular əsasında Obyekt Yaddaşından bu məlumatları oxuya bilər. Thanos Query PromQL və Prometheus API tətbiq edir. Yəni kənardan Prometey kimi görünür. PromQL sorğularını qəbul edir, onları Thanos Store Gateway-ə göndərir, Thanos Store Gateway Obyekt Yaddaşından lazımi məlumatları alır, geri göndərir.
Lakin Thanos Sidecar tətbiqinin xüsusiyyətinə görə məlumatları Object Storage-da son iki saat olmadan saxlayırıq, bu xüsusiyyət son iki saatı Object Storage S3-ə yükləyə bilmir, çünki Prometheus yerli yaddaşda bu iki saat üçün faylları hələ yaratmayıb.
Bunun öhdəsindən gəlməyə necə qərar verdiniz? Thanos Query, Thanos Store Gateway-ə edilən sorğulara əlavə olaraq, Prometeyin yanında yerləşən hər Thanos Sidecar-a paralel sorğular göndərir.
Thanos Sidecar, öz növbəsində, Prometheus-a əlavə sorğular göndərir və son iki saat ərzində məlumatları əldə edir.
Bu komponentlərə əlavə olaraq, isteğe bağlı bir komponent də var ki, onsuz Thanos yaxşı performans göstərməyəcək. Bu, Obyekt Yaddaşındakı kiçik faylları Thanos Sidecars tərəfindən yüklənmiş daha böyük fayllara birləşdirməyə cavabdeh olan Thanos Compact-dır. Thanos Sidecar orada iki saat ərzində məlumat fayllarını yükləyir. Bu fayllar, daha böyük fayllara birləşdirilməsələr, onların sayı çox əhəmiyyətli dərəcədə arta bilər. Belə fayllar nə qədər çox olarsa, Thanos Store Gateway üçün bir o qədər çox yaddaş tələb olunur, şəbəkə və metadata üzərindən məlumat ötürmək üçün bir o qədər çox resurs tələb olunur. Thanos Store Gateway səmərəsiz olur. Buna görə də, kiçik faylları daha böyüklərə birləşdirən Thanos Compact-ı işə salmaq lazımdır ki, belə fayllar daha az olsun və Thanos Store Gateway-də yükü azaltsın.
Thanos Ruler kimi bir komponent də var. O, Prometey xəbərdarlığı qaydalarını yerinə yetirir və məlumatları Obyekt Yaddaşına geri yazmaq üçün Prometheus qeyd qaydalarını qiymətləndirə bilər. Amma bu komponentdən istifadə etmək tövsiyə edilmir, çünki... O .
Bu Thanosun sadə sxemidir.

İndi onu VictoriaMetrics sxemi ilə müqayisə edək.
VictoriaMetrics-in 2 versiyası var: Tək düyünlü və klasterli versiya. Tək qovşaq bir kompüterdə işləyir. Tək qovşaqda bu komponentlər yoxdur, sadəcə bir binar. Slayddakı bu binar bu kvadrata bənzəyir. Kvadratın içərisində olan hər şey Tək node versiyası üçün ikili faylın məzmunudur. Onun haqqında bilmək lazım deyil. Siz sadəcə binar sistemi işlədirsiniz və hər şey bizim üçün işləyir.
Klaster versiyası daha mürəkkəbdir. Onun içərisində üç fərqli komponent var: vmselect, vminsert və vmstorage. Adlarından hər birinin nə işlə məşğul olduğu aydın olmalıdır. Insert komponenti müxtəlif formatlarda məlumatları qəbul edir: Prometheus uzaqdan yazma API-dən, Influx line protokolundan, Graphite protokolundan və OpenTSDB protokolundan. Insert komponenti onları qəbul edir, təhlil edir və verilənlərin artıq saxlandığı mövcud saxlama komponentləri arasında paylayır. Select komponenti öz növbəsində PromQL sorğularını qəbul edir. Həyata keçirir , həmçinin Prometheus sorğu API-si kimi və o, Grafana və ya digər Prometheus API müştərilərində Prometheus üçün əvəz kimi istifadə edilə bilər. Select promql sorğusunu qəbul edir, onu təhlil edir, saxlama qovşaqlarından bu sorğunun yerinə yetirilməsi üçün lazımi məlumatları oxuyur, bu məlumatları emal edir və cavab qaytarır.

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

Thanos ilə başlayaq. Thanos ilə işləməyə başlamazdan əvvəl S3 və ya GCS kimi Obyekt Yaddaşında bir vedrə yaratmalısınız ki, Thanos Sidecar ona məlumat yaza bilsin.

Sonra hər Prometheus üçün Thanos Sidecar quraşdırmalısınız. Bundan əvvəl, Prometheus-da məlumatların sıxılmasını söndürməyi unutmayın. Məlumatların sıxlaşdırılması resurs istehlakını azaltmaq üçün yerli Prometheus yaddaşında məlumatları vaxtaşırı sıxır.
Thanos Sidecar-ı Prometheus-a quraşdırdığınız zaman, bu məlumat yığımını deaktiv etməlisiniz, çünki Thanos Sidecar məlumat sıxlaşdırması aktiv olduqda düzgün işləmir. Bu o deməkdir ki, Prometeyiniz məlumatları iki saatlıq bloklarda saxlamağa başlayır və həmin blokları daha böyük bloklara birləşdirməyi dayandırır. Müvafiq olaraq, əgər siz son iki saatın müddətini aşan sorğular etsəniz, məlumatların sıxlaşdırılması aktivləşdirildikdə, onlar işləyə biləcəkləri qədər səmərəli işləməyəcəklər.

Buna görə də, Thanos çox sayda kiçik blokun yükünü azaltmaq üçün yerli yaddaşda məlumatların saxlanma müddətini 6-8 saata qədər azaltmağı tövsiyə edir.
Thanos Sidecar-ı quraşdırdıqdan sonra hər Obyekt Saxlama Bucket üçün iki komponent quraşdırmalısınız. Bunlar Thanos Compactor və Thanos Store Gateway-dir.

Bundan sonra, Thanos Query-ni quraşdırmalı və onu konfiqurasiya etməlisiniz ki, o, malik olduğunuz bütün Thanos Store Gateway-lərə qoşula bilsin, həmçinin bütün Thanos Sidecars-a qoşula bilsin.
Burada kiçik bir problem ola bilər.

Thanos Query-dən bu komponentlərə etibarlı və təhlükəsiz əlaqəni konfiqurasiya etməlisiniz. Prometheusunuz müxtəlif məlumat mərkəzlərində və ya fərqli VPC-lərdə yerləşirsə, kənardan onlara qoşulmaq qadağandır. Ancaq Thanos Query-nin işləməsi üçün oradakı əlaqəni birtəhər konfiqurasiya etməlisiniz və bir yol tapmalısınız.
Əgər belə bir çox məlumat mərkəzləriniz varsa, müvafiq olaraq bütün sistemin etibarlılığı azalır. Thanos Query daim müxtəlif məlumat mərkəzlərində yerləşən bütün Thanos Sidecars ilə əlaqə saxlamalıdır. Hər daxil olan sorğu üçün sorğuları bütün Thanos Sidecars-a yönləndirəcək. Bağlantı kəsilərsə, siz ya natamam məlumat dəstini alacaqsınız, ya da “klaster bağlanıb” cavabı alacaqsınız.

VictoriaMetrics-də hər şey bir az daha sadədir. Tək qovşaqlı versiya üçün sadəcə bir ikilik işlətməlisiniz və hər şey işləyir.

Klaster versiyasında yuxarıda göstərilən üç növ komponentin hamısını sizə lazım olan istənilən miqdarda işlətmək və ya istifadə etmək kifayətdir. Kubernetes-də komponentlərin işə salınmasını avtomatlaşdırmaq. Biz həmçinin Kubernetes operatoru yaratmağı planlaşdırırıq. Helm cədvəli bəzi halları əhatə etmir və özünüzü ayağınızdan vurmağa imkan verir. Məsələn, bu, məlumatların itirilməsinə səbəb olacaq saxlama qovşaqlarının sayını azaltmağa imkan verir.

Bir ikili və ya klasterli versiyanı işə saldıqdan sonra konfiqurasiyaya Prometheus əlavə etməlisiniz. yerli yaddaşa və uzaq yaddaşa paralel olaraq məlumatları yazmağa başlayır. Gördüyünüz kimi, bu konfiqurasiya Thanos konfiqurasiyası ilə müqayisədə daha etibarlı şəkildə yerinə yetirilməlidir. VictoriaMetrics-dən bütün Prometeylərlə əlaqə saxlamağa ehtiyacımız yoxdur, çünki Prometey özləri VictoriaMetrics-ə qoşulur və məlumatları ötürür.

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

Thanos, Obyekt Yaddaşına məlumat yükləməyi dayandırmadığından əmin olmaq üçün Sidecar-a nəzarət etməlidir. Onlar endirmə xətalarına görə bu məlumatın endirilməsini dayandıra bilər, məsələn, Obyekt Yaddaşı ilə şəbəkə bağlantınız müvəqqəti olaraq kəsilib və ya Obyekt Yaddaşı müvəqqəti olaraq əlçatan deyil. Thanos Sidecar bu anda bunu görəcək, xəta barədə məlumat verəcək, qəzaya uğraya və sonra işləməyi dayandıracaq. Əgər ona nəzarət etməsəniz, məlumatların Object Storage-ə ötürülməsini dayandıracaqsınız. Əgər saxlama müddəti keçərsə (6-8 saat tövsiyə olunur), onda siz Obyekt Yaddaşında bitməyən məlumatları itirəcəksiniz.

Thanos kompaktatorları səbəbiylə işləməyi dayandıra bilər . Sıxlaşdırıcılar Obyekt Yaddaşından məlumatları götürür və daha böyük verilənlərə birləşdirirlər. Kompaktorlar Sidecars ilə sinxronlaşdırılmadığı üçün bu baş verə bilər: Sidecar hələ bloku tamamlamağa vaxt tapmayıb, Compactor bu blokun tamamilə yazıldığını qərara alır. Kompaktator onu oxumağa başlayır. Bloku tam oxumur və fəaliyyətini dayandırır. Detallara baxın .

Store Gateway Compactor və Sidecars arasındakı yarışlara görə uyğun olmayan məlumatları qaytara bilər. Burada da eyni şey var, çünki Mağaza Gateway heç bir şəkildə Kompaktorlar və Sidecars ilə sinxronlaşdırılmayıb. Müvafiq olaraq, Store Gateway məlumatların bir hissəsini görmədikdə və ya lazımsız məlumatları gördükdə yarış şərtləri yarana bilər.

Thanos-dakı Sorğu komponenti hal-hazırda bəzi Sidecars və ya Store Gateways mövcud deyilsə, defolt olaraq qismən nəticə qaytarır. Məlumatların bir hissəsini alacaqsınız və bütün məlumatları almadığınızı belə bilməyəcəksiniz. Defolt olaraq belə işləyir. Oxşar vəziyyətdə, VictoriaMetrics qeyd olunan məlumatları qismən qaytarır.

Thanos-dan fərqli olaraq, VictoriaMetrics nadir hallarda məlumatları itirir. Prometheus-dan VictoriaMetrics-ə əlaqə kəsilsə belə, bu problem deyil, çünki Prometey, ölçüsü 2 saat olan Write Ahead Log-da daxil olan yeni məlumatları qeyd etməyə davam edir. VictoriaMetrics ilə əlaqənizi iki saat ərzində bərpa etsəniz, məlumatlarınız itməyəcək. Prometey .

Yalnız iki saatdan sonra obyekt yaddaşına məlumat yazan Thanos-dan fərqli olaraq, Prometheus uzaqdan yazma protokolundan istifadə edərək məlumatları avtomatik olaraq VictoriaMetrics kimi uzaq yaddaşa təkrarlayır. Prometeydə yerli yaddaşı itirməkdən qorxmursunuz. Birdən yerli yaddaşını itirərsə, ən pis halda, uzaq yaddaşda qeyd etməyə vaxtı olmayan məlumatların son saniyələrini itirəcəksiniz.

Kubernetes, Thanos-dan fərqli olaraq, klasteri avtomatik idarə edir. VictoriaMetrics klaster komponentlərindən fərqli olaraq, bütün Thanos komponentlərini bir Kubernetes klasterinə yerləşdirmək çətindir.

VictoriaMetrics-in yeni versiyaya çox sadə yeniləməsi var. Sadəcə VictoriaMetrics-i dayandırın, ikili faylları yeniləyin və işə salın. SIGINT siqnalı ilə dayandırıldıqda, bütün VictoriaMetrics ikili faylları zərif bir şəkildə bağlanır. Lazımi məlumatları düzgün saxlayırlar, heç nə itirməmək üçün daxil olan əlaqələri düzgün bağlayırlar. Beləliklə, təkmilləşdirərkən heç nə itirməyəcəksiniz.

VictoriaMetrics klasteri genişləndirməyi çox asanlaşdırır. Sadəcə lazımi komponentləri əlavə edin və işə davam edin.

Thanos və VictoriaMetrics-dəki tələlər haqqında.

Thanosun aşağıdakı tələləri var. Prometey son iki saat ərzində məlumatları saxlamalıdır. Əgər onlar itirilsə, siz onları tamamilə itirəcəksiniz, çünki onlar hələ S3 kimi Obyekt Yaddaşına yazılmayıb.

Store Gateway komponenti və kompaktor komponenti böyük Obyekt Yaddaşı ilə işləmək üçün çoxlu yaddaş tələb edə bilər, əgər orada çoxlu kiçik fayllar saxlanılırsa. Faylların sayı və ölçüsü nə qədər çox olarsa, metainformasiyanın saxlanması üçün daha çox Store Gateway və kompaktor RAM tələb olunur. Thanosun bununla bağlı bir çox problemi var .

Thanos, sahib olduğunuz Prometey miqdarı ilə qeyri-müəyyən müddətə miqyaslanmaq üçün elan edilir. Bu əslində doğru deyil. Bütün sorğular Sorğu komponentindən keçdiyi üçün, o, eyni zamanda bütün Store Gateway komponentlərini və bütün Sidecar komponentlərini sorğulamalı, oradan məlumatları götürməli və sonra onu əvvəlcədən emal etməlidir. Aydındır ki, sorğu sürəti ən yavaş zəif keçid, ən yavaş Mağaza Gateway və ya ən yavaş Sidecar ilə məhdudlaşır.
Bu komponentlər qeyri-bərabər yüklənə bilər. Məsələn, sizdə saniyədə milyonlarla ölçü toplayan Prometey var. Və saniyədə minlərlə metrik toplayan Prometey var. Saniyədə milyonlarla ölçü toplayan Prometheus, işlədiyi serverə daha çox yük qoyur. Müvafiq olaraq, Sidecar orada daha yavaş işləyir. Və ümumiyyətlə orada hər şey yavaş işləyir. Sorğu komponenti oradan məlumatları çox yavaş çəkəcək. Müvafiq olaraq, bütün klasterinizin performansı bu yavaş Sidecar tərəfindən məhdudlaşdırılacaq.

Varsayılan olaraq, bəzi Sidecars və ya Mağaza Gateway mövcud olmadıqda Thanos qismən məlumat verir. Məsələn, Sidecar'larınız müxtəlif məlumat mərkəzlərində dünyanın hər yerinə səpələnibsə, o zaman əlaqənin pozulması və komponentin əlçatmazlığı ehtimalı xeyli artır. Müvafiq olaraq, əksər hallarda siz hətta bilmədən qismən məlumat alacaqsınız.

VictoriaMetrics-in də tələləri var. İlk tələ VictoriaMetrics keşi üçün istifadə olunan RAM miqdarını məhdudlaşdıran seçimdir. Varsayılan olaraq, VictoriaMetrics-in işlədiyi maşındakı RAM-ın 60%-nə və ya Kubernetes-də VictoriaMetrics podunun RAM-ın 60%-nə bərabərdir.
Bu dəyəri səhv dəyişdirsəniz, VictoriaMetrics-in performansını poza bilərsiniz. Məsələn, dəyəri çox aşağı təyin etsəniz, məlumatlar daha VictoriaMetrics keşinə sığmaya bilər. Bu səbəbdən o, əlavə iş görməli, prosessor və diski yükləməli olacaq. Bu seçimi çox böyük etsəniz, bu, birincisi, VictoriaMetrics-in yaddaş çatışmazlığı xətası ilə qəzaya uğrama ehtimalını artırır və ikincisi, əməliyyat sisteminin yaddaşında çox az RAM qalmasına səbəb olacaqdır. fayl önbelleği. VictoriaMetrics performans üçün fayl keşinə əsaslanır. Bu kifayət deyilsə, diskdəki yük çox arta bilər. Buna görə də məsləhət: çox zərurət olmadıqca parametri dəyişməyin.

İkinci variant. Bu saxlama müddətidir - defolt olaraq 1 aya təyin edilmiş müddət. Bu VictoriaMetrics məlumatların saxlandığı müddətdir. Bu müddətdən sonra VictoriaMetrics məlumatları silir.
Bir çox insanlar VictoriaMetrics-i bu parametr olmadan işlədir və bir ay ərzində məlumatları qeyd edir. Və sonra soruşurlar: niyə əvvəlki ayın məlumatları yoxa çıxdı? Çünki standart saxlama müddəti 1 aydır. Buna görə də, düzgün saxlama müddətini bilməli və təyin etməlisiniz.

Unikal xüsusiyyətlərə nəzər salaq.

Thanos-un aşağı seçmə adlı bir xüsusiyyəti var: tez-tez 5 dəqiqəlik və saatlıq intervallar . Əgər siz google-da github-da onların məsələsinə baxsanız, bu aşağı seçmə ilə bağlı çoxlu problemlər var ki, o, bəzən düzgün işləmir və ya istifadəçilərin gözlədiyi kimi işləmir.

Thanos-da Prometheus HA cütləri üçün məlumat təkmilləşdirməsi var. İki Prometey eyni hədəflərdən eyni ölçüləri topladıqda və Thanos onları Obyekt Yaddaşında saxladıqda. Thanos VictoriaMetrics-dən fərqli olaraq bu məlumatları düzgün şəkildə təkmilləşdirə bilər.

Thanos, Thanos sxemində olan bir xəbərdarlıq komponentinə malikdir. Amma onu .

Thanos-un üstünlüyü Thanos və Prometheus-un eyni kodu paylaşmasıdır. Thanos və Prometheus eyni tərtibatçılar tərəfindən hazırlanmışdır. Thanos və ya Prometeydəki təkmilləşdirmələrlə qarşı tərəf qalib gəlir.

VictoriaMetrics-in əsas xüsusiyyəti MetricsQL-dir. Bunlar, əvvəlki böyük monitorinq görüşündə danışdığım PromQL üçün VictoriaMetrics uzantılarıdır.

VictoriaMetrics bir çox müxtəlif protokollardan istifadə edərək məlumatların yüklənməsini dəstəkləyir. VictoriaMetrics yalnız Prometheus-dan məlumatları qəbul edə bilməz, həm də Influx, OpenTSDB və Graphite protokolları vasitəsilə.

VictoriaMetrics məlumatları Thanos və Prometheus ilə müqayisədə daha az yer tutur.
Real məlumatları qeyd etsəniz, istifadəçilər Prometheus və Thanos ilə müqayisədə diskdəki məlumatların ölçüsünün 2-5 dəfə azalmasından danışırlar.

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

Gəlin infrastrukturun dəyərinə baxaq.

Thanos-un üstünlüklərindən biri məlumatların obyekt yaddaşında saxlanmasıdır ki, bu da nisbətən ucuzdur.
Obyekt yaddaşında verilənləri saxlayarkən, məlumatların yazılması və oxunması əməliyyatları üçün ödəniş etməlisiniz (bir milyon əməliyyat üçün 10 dollar). Obyekt yaddaşına məlumat yazdığınız zaman məlumatların İnternetə yüklənməsi üçün hostinq xərclərini ödəyirsiniz; əgər klasteriniz AWS-də deyilsə, orada pulsuzdur. Məlumatı oxuduğunuz zaman 10TB üçün 230 ilə 1 dollar arasında ödəyirsiniz. Thanos klasterindən tarixi məlumatları tez-tez sorğulayırsınızsa, bu əhəmiyyətli ola bilər.

Thanos klasteri üçün siz Compact, Store Gateway, çox yaddaş tələb edən Sorğu komponentləri və böyük həcmdə məlumat üçün CPU üçün serverlər üçün ödəniş etməlisiniz.

VictoriaMetrics aşağıdakı xərclərə malikdir. GCE HDD disklərində məlumat saxlayırsınızsa, o zaman 40TB üçün 1 dollara çıxır. VictoriaMetrics üçün adi HDD diskləri kifayətdir, dəyəri beş dəfə baha olan SSD-lərə ehtiyac yoxdur. VictoriaMetrics HDD üçün optimallaşdırılıb.

VictoriaMetrics komponentlər üçün server tələb edir: Thanos komponentlərindən fərqli olaraq, daha az CPU və RAM tələb edən və ya daha ucuz başa gələn tək başlı və ya klasterli komponentlər.

İcra nümunələri.

Thanos-un Gitlab-da tətbiq nümunəsi var. Gitlab tamamilə Thanos üzərində işləyir. Amma orada hər şey o qədər də hamar deyil. Onlara baxsanız , onda siz onların daim bəzilərinin olduğunu görə bilərsiniz : Store Gateway və ya Query komponentləri üçün kifayət qədər yaddaş yoxdur. Onlar daim yaddaşın həcmini artırmalıdırlar.
Ona görə də bu problemlərin həlli xərcləri artır.
Daha uğurlu ola biləcək ikinci tətbiq Thanos-u inkişaf etdirməyə başlayan Improbable şirkətidir. Thanos mənbə kodunu dərc etdilər. Improbable, oyun mühərrikləri hazırlayan bir şirkətdir.

VictoriaMetrics-də ictimai tətbiq nümunələri var:
- wix.com veb sayt qurucusu
- Adidas VictoriaMetrics tətbiq edir və hətta son PromCon 2019-da təqdimat keçirdi
- TrafficStars - reklam şəbəkəsi
- Seznam.cz məşhur Çex axtarış sistemidir.
Və sonra adı olmayan şirkətlər var idi ki, indi adını çəkə bilmirəm. Razılıq vermədilər.
- Bir böyük oyun inkişaf etdiricisi. İmkansızdan daha böyük.
- Böyük qrafik proqram tərtibatçısı.
- Böyük rus bankı.
- VictoriaMetrics-i uğurla sınaqdan keçirən Avropa külək turbinləri istehsalçısı. Bu istehsalçı külək turbinlərindən toplanmış məlumatları sensorda saniyədə 50 nümunə ilə izləmək üçün VictoriaMetrics tətbiq edir. Hər bir külək turbinində bir neçə yüz sensor var. Onların bir neçə yüz külək turbinləri var.
- VictoriaMetrics tətbiq etmək istəyən, lakin hələ də edə bilməyən Rusiya aviaşirkətləri. Biz onlarla müqavilə mərhələsindəyik.
Nəticələr.
VictoriaMetrics və Thanos oxşar problemləri həll edir, lakin müxtəlif yollarla:
- Qlobal sorğu görünüşü
- üfüqi miqyaslama
- ixtiyari saxlama

Təşəkkür edirik.
Sizi öz məkanımızda gözləyirik .

Sorğuda yalnız qeydiyyatdan keçmiş istifadəçilər iştirak edə bilər. xahiş edirəm.
Prometey üçün uzunmüddətli saxlama üçün nə istifadə edirsiniz?
35,3%Thanos 6
0,0%Korteks0
0,0%M3DB0
41,2%Victoria Metrics 7
23,5%digər 4
17 istifadəçi səs verib. 16 istifadəçi bitərəf qalıb.
Mənbə: www.habr.com
