Halo kabeh. Ing ngisor iki dekripsi
Laporan kasebut bakal mbandhingake
Ayo dakcritakake babagan Prometheus dhisik. Iki minangka sistem ngawasi sing ngumpulake metrik saka target tartamtu lan nyimpen ing panyimpenan lokal. Prometheus bisa nulis metrik menyang panyimpenan remot, bisa ngasilake tandha lan aturan rekaman.
Watesan Prometheus:
- Ora duwe tampilan pitakon global. Iki nalika sampeyan duwe sawetara kedadean prometheus independen. Dheweke ngumpulake metrik. Lan sampeyan pengin takon ing ndhuwur kabeh metrik iki sing diklumpukake saka macem-macem conto prometheus. Prometheus ora ngidini iki.
- Kanthi prometheus, kinerja diwatesi mung siji server. Prometheus ora bisa kanthi otomatis skala menyang macem-macem server. Sampeyan mung bisa kanthi manual pamisah target antarane sawetara Prometheus.
- Cakupan metrik ing Prometheus diwatesi mung ing siji server amarga alasan sing padha ora bisa otomatis skala menyang sawetara server kanthi otomatis.
- Ing Prometheus, ora gampang ngatur keamanan data.
Solusi kanggo masalah / tugas kasebut?
Solusi yaiku:
Kabeh solusi kasebut kanggo panyimpenan remot data sing diklumpukake dening Prometheus. Dheweke ngrampungake masalah panyimpenan remot saka slide sadurunge kanthi cara sing beda-beda. Ing presentasi iki, aku mung bakal ngomong babagan rong solusi pisanan:
Kanggo informasi pisanan babagan
Thanos njupuk data sing disimpen Prometheus menyang drive lokal lan nyalin menyang S3,
Mangkono Thanos nyedhiyakake tampilan pitakon global. Sampeyan bisa takon data sing disimpen ing panyimpenan obyek saka sawetara kedadean Prometheus.
Thanos ndhukung PromQL lan
Thanos nggunakake kode Prometheus kanggo nyimpen data.
Thanos dikembangake dening pangembang sing padha karo Prometheus.
ing
VictoriaMetrics nampa data saka sawetara prometheus
VictoriaMetrics nyedhiyakake tampilan pitakon global, amarga sawetara conto Prometheus bisa nulis data menyang VictoriaMetrics siji. Mulane, sampeyan bisa nggawe pitakon babagan kabeh data kasebut.
VictoriaMetrics uga ndhukung, kaya Thanos, PromQL lan Prometheus querying API.
Ora kaya Thanos, kode sumber VictoriaMetrics ditulis saka awal lan dioptimalake kanggo konsumsi kacepetan lan sumber daya.
VictoriaMetrics, ora kaya Thanos, timbangan vertikal lan horisontal. mangan
Sejarah Thanos diwiwiti ing November 2017, nalika komitmen umum pisanan muncul. Sadurunge iki, Thanos dikembangake ing omah
Ing wulan Juni 2019, ana rilis landmark 0.5.0, yaiku
Ing wulan Juni 2019 sing padha, dheweke ngirim nomer aplikasi
Lan sawise sawetara sasi, Thanos ditampa
Ing Januari 2018, pangembangan VictoriaMetrics diwiwiti.
Ing September 2018, aku pisanan nyebutake VictoriaMetrics.
Ing Desember 2018, versi Single-node diterbitake.
Ing Mei 2019
Ing wulan Juni 2019, kaya Thanos, kita ngirim aplikasi menyang yayasan CNCF miturut nomer kasebut
Nanging, sayangé, kita isih durung ditampa ing kono. Bantuan masyarakat dibutuhake.
Coba slide paling penting sing nuduhake arsitektur Thanos lan VictoriaMetrics.
Ayo dadi miwiti karo Thanos. Komponen kuning minangka komponen Prometheus. Kabeh liyane yaiku komponen Thanos. Ayo dadi miwiti karo komponen paling penting. Thanos Sidecar minangka komponen sing dipasang ing jejere saben Prometheus. Iku tanggung jawab kanggo loading data Prometheus saka panyimpenan lokal kanggo S3 utawa Storage Obyek liyane.
Ana uga komponen kayata Thanos Store Gateway, sing bisa maca data iki saka Object Storage nalika panjaluk mlebu saka Thanos Query. Thanos Query ngleksanakake PromQL lan Prometheus API. Yaiku, saka njaba katon kaya Prometheus. Iki nampa panjalukan PromQL, dikirim menyang Thanos Store Gateway, Thanos Store Gateway entuk data sing dibutuhake saka Object Storage, dikirim maneh.
Nanging kita duwe data sing disimpen ing Panyimpenan Obyek tanpa rong jam pungkasan amarga implementasine Thanos Sidecar, sing ora bisa ngunggah rong jam pungkasan menyang Obyek Storage S3, amarga Prometheus durung nggawe file ing panyimpenan lokal sajrone rong jam kasebut.
Kepiye sampeyan mutusake kanggo ngubengi iki? Thanos Query, saliyane kanggo panjalukan kanggo Thanos Store Gateway, ngirim panjalukan podo kanggo saben Thanos Sidecar sing jejere Prometheus.
Lan Thanos Sidecar, sabanjure, proxy njaluk luwih menyang Prometheus, lan entuk data sajrone rong jam pungkasan.
Saliyane komponen kasebut, ana uga komponen opsional, tanpa Thanos bakal krasa ala. Iki Thanos Compact, sing nggabungake file cilik ing Panyimpenan Obyek dadi file sing luwih gedhe sing wis diunggah ing kene dening Thanos Sidecars. Thanos Sidecar ngunggah file data ing kana suwene rong jam. File kasebut, yen ora digabung dadi file sing luwih gedhe, jumlahe bisa tuwuh kanthi signifikan. File liyane kuwi, memori liyane dibutuhake kanggo Thanos Store Gateway, sumber daya liyane sing dibutuhake kanggo transfer data liwat jaringan, metadata. Thanos Store Gateway dadi ora efisien. Mulane, perlu kanggo mbukak Thanos Compact, sing nggabungake file cilik dadi luwih gedhe, supaya file kasebut luwih sithik lan nyuda overhead ing Thanos Store Gateway.
Ana uga komponen kayata Thanos Ruler. Iku nglakokaké aturan tandha Prometheus lan bisa ngetung aturan rekaman Prometheus kanggo nulis data bali menyang Panyimpenan Obyek. Nanging komponen iki ora dianjurake kanggo digunakake, amarga. Dheweke
Iki minangka skema prasaja kanggo Thanos.
Saiki ayo mbandhingake karo skema VictoriaMetrics.
VictoriaMetrics nduweni 2 versi: Single-node lan versi cluster. Single-node mlaku ing siji komputer. Single-node ora duwe komponen kasebut, mung siji binar. Binar iki ing slide katon kaya kothak iki. Kabeh ing alun-alun iku isi file binar kanggo versi Single-node. Sampeyan ora perlu ngerti babagan iki. Mung mbukak binar - lan kabeh bisa kanggo kita.
Versi kluster luwih angel. Ing njero ana telung komponen sing beda: vmselect, vminsert lan vmstorage. Saka jenenge kudu jelas apa sing ditindakake saben wong. Komponen Insert nampa data ing macem-macem format: saka Prometheus remote write API, protokol Influx line, protokol Graphite, lan protokol OpenTSDB. Komponen Insert nampa, ngurai, lan nyebarake ing antarane komponen panyimpenan sing ana, ing ngendi data wis disimpen. Komponen Pilih, banjur, nampa panjalukan PromQL. Iku ngleksanakake
Ayo mbandhingake kerumitan nginstal Thanos lan VictoriaMetrics.
Ayo dadi miwiti karo Thanos. Sadurunge miwiti nggarap Thanos, sampeyan kudu nggawe ember ing Object Storage, kayata S3 utawa GCS, supaya Thanos Sidecar bisa nulis data ing kana.
Banjur kanggo saben Prometheus sampeyan kudu nginstal Thanos Sidecar. Sadurunge, sampeyan kudu ngelingi mateni pemadatan data ing Prometheus. Pemadatan data sacara periodik ngompres data ing panyimpenan lokal Prometheus supaya bisa nyuda konsumsi sumber daya.
Nalika sampeyan nginstal Thanos Sidecar ing Prometheus, sampeyan kudu mateni pemadatan data iki amarga Thanos Sidecar ora bisa digunakake kanthi bener nalika pemadatan data diaktifake. Iki tegese Prometheus sampeyan wiwit nyimpen data ing blok rong jam lan mandheg nggabungake blok kasebut dadi luwih gedhe. Dadi, yen sampeyan nggawe panjalukan sing ngluwihi durasi rong jam pungkasan, mula ora bakal bisa digunakake kanthi efisien yen pemadatan data diaktifake.
Mulane, Thanos nyaranake ngurangi wektu panyimpenan data ing panyimpenan lokal kanggo 6-8 jam kanggo ngurangi overhead iki saka nomer akeh pamblokiran cilik.
Sawise sampeyan nginstal Thanos Sidecar, sampeyan kudu nginstal rong komponen kanggo saben Ember Panyimpenan Obyek. Iki minangka Thanos Compactor lan Thanos Store Gateway.
Sawise iku, sampeyan kudu nginstal Thanos Query lan ngatur supaya bisa nyambung menyang kabeh Thanos Store Gateways sing sampeyan duwe, uga bisa nyambung menyang kabeh Thanos Sidecars.
Bisa uga ana masalah cilik ing kene.
Sampeyan kudu nyiyapake sambungan sing dipercaya lan aman saka Thanos Query menyang komponen kasebut. Lan yen sampeyan duwe Prometheus'y dumunung ing pusat data beda, utawa ing VPC beda, banjur sambungan menyang wong saka njaba dilarang. Nanging kanggo Thanos Query bisa, sampeyan kudu piye wae ngatur sambungan ana, lan sampeyan kudu teka munggah karo cara.
Yen sampeyan duwe akeh pusat data kasebut, mula, linuwih kabeh sistem mudhun. Wiwit Thanos Query kudu terus nyambungake kabeh Thanos Sidecars sing ana ing pusat data sing beda. Kanthi saben panjaluk sing mlebu, bakal ngirim panjaluk menyang kabeh Thanos Sidecars. Yen sambungan diganggu, sampeyan bakal nampa set data sing ora lengkap, utawa sampeyan bakal nampa respon "kluster ora bisa digunakake".
Ing VictoriaMetrics, samubarang luwih gampang. Kanggo versi Single-node, mung mbukak siji binar lan kabeh bisa.
Ing versi clustered, cukup kanggo mbukak kabeh telung jinis komponen ing ndhuwur kanthi jumlah sing dibutuhake, utawa nggunakake
Sawise sampeyan miwiti versi binar utawa clustered, sampeyan mung kudu nambah menyang konfigurasi Prometheus
Coba dhukungan kanggo Thanos lan VictoriaMetrics.
Thanos kudu ngati-ati Sidecar supaya ora mandheg ngunggah data menyang Panyimpenan Obyek. Padha bisa mungkasi ngundhuh data iki amarga kesalahan ngundhuh, kayata sambungan jaringan menyang Object Storage ilang sementara, utawa Object Storage ora kasedhiya kanggo sementara. Thanos Sidecar bakal sok dong mirsani iki, laporan kesalahan, bisa kacilakan lan banjur mandheg digunakake. Yen sampeyan ora ngawasi, data sampeyan ora bakal ditransfer maneh menyang Panyimpenan Obyek. Yen wektu retensi liwat (disaranake 6-8 jam), sampeyan bakal kelangan data sing ora mlebu ing Panyimpenan Obyek.
Kompaktor Thanos bisa mandheg kerja amarga
Store Gateway bisa ngasilake data sing ora konsisten amarga balapan antarane Compactor lan Sidecars. Iku bab sing padha kene, amarga Store Gateway ora diselarasake karo Compactors lan Sidecars ing sembarang cara. Patut, kahanan lomba bisa kelakon nalika Store Gateway ora ndeleng bagéan saka data, utawa ndeleng data ekstra.
Komponen Query ing Thanos ngasilake asil sebagean minangka standar yen sawetara Sidecars utawa Store Gateways ora kasedhiya ing wayahe. Sampeyan bakal nampa sawetara data, lan malah ora bakal ngerti sing ora nampa kabeh data. Iki cara kerjane kanthi gawan. Ing kahanan sing padha, VictoriaMetrics ngasilake data kanthi label minangka parsial.
Ora kaya Thanos, VictoriaMetrics arang kelangan data. Sanajan sambungan saka Prometheus menyang VictoriaMetrics diganggu, mula iki ora dadi masalah, amarga Prometheus terus nulis data anyar sing mlebu menyang Tulis Ahead Log, sing dawane 2 jam. Yen sampeyan mulihake sambungan menyang VictoriaMetrics sajrone rong jam, data kasebut ora bakal ilang. Prometheus
Ora kaya Thanos, sing nulis data menyang panyimpenan obyek mung sawise rong jam, Prometheus kanthi otomatis niru data liwat protokol nulis remot menyang panyimpenan remot, kayata VictoriaMetrics. Sampeyan ora wedi kelangan panyimpenan lokal ing Prometheus. Yen dumadakan ilang panyimpenan lokal, sampeyan bakal kelangan detik pungkasan data sing ora duwe wektu kanggo nulis menyang panyimpenan remot ing kasus paling awon.
Kubernetes ngatur kluster kanthi otomatis ora kaya Thanos. Pancen angel kanggo nyelehake kabeh komponen Thanos ing siji kluster Kubernetes, ora kaya komponen kluster VictoriaMetrics.
VictoriaMetrics duwe upgrade sing gampang banget menyang versi anyar. Mung mungkasi VictoriaMetrics, nganyari binari lan miwiti. Nalika mandheg liwat sinyal SIGINT, kabeh binari VictoriaMetrics bakal mateni kanthi apik. Dheweke nyimpen data sing dibutuhake kanthi bener, nutup sambungan sing mlebu kanthi bener supaya ora kelangan apa-apa. Dadi sampeyan ora bakal kelangan apa-apa nalika sampeyan nganyarke.
Gampang banget kanggo VictoriaMetrics nggedhekake kluster. Cukup nambah komponen sing dibutuhake lan terus kerja.
Babagan pitfalls ing Thanos lan VictoriaMetrics.
Thanos nduweni pitfalls ing ngisor iki. Prometheus kudu nyimpen data sajrone rong jam pungkasan. Yen padha ilang, sampeyan bakal ilang, amarga padha ora duwe wektu kanggo nulis kanggo Obyek Storage, kayata S3.
Komponen Store Gateway lan komponèn compactor bisa memori intensif kanggo menehi hasil karo Storage Obyek gedhe yen ana akeh file cilik disimpen ana. Sing luwih gedhe nomer lan ukuran file, luwih akeh RAM Store Gateway lan compactor mbutuhake kanggo nyimpen informasi meta. Thanos duwe akeh masalah babagan apa
Thanos diiklanake minangka bisa skala tanpa wates kanthi jumlah Prometheus sing sampeyan duwe. Bener iki ora bener. Wiwit kabeh panjalukan liwat komponen Query, sing kudu polling kabeh komponen Store Gateway lan kabeh komponen Sidecar ing podo karo, extract data saka ing kono banjur preprocessed. Iku ketok yen tingkat panjalukan diwatesi dening link paling alon, Store Gateway paling alon utawa Sidecar paling alon.
Komponen kasebut bisa diisi kanthi ora rata. Contone, sampeyan duwe Prometheus, sing ngumpulake mayuta-yuta metrik per detik. Lan ana Prometheus, sing nglumpukake ewu metrik per detik. Prometheus, sing nglumpukake mayuta-yuta metrik per detik, mbukak server sing luwih akeh digunakake. Mulane, Sidecar luwih alon ing kana. Lan ing umum, kabeh ana alon. Lan komponèn Query bakal narik data alon banget saka ing kono. Mulane, kinerja kabeh kluster sampeyan bakal diwatesi dening Sidecar sing alon iki.
Kanthi gawan, Thanos ngasilake data sebagean yen sawetara Sidecars lan salah siji Store Gateways ora kasedhiya. Contone, yen sampeyan duwe Sidecar sing kasebar ing saindenging jagad ing pusat data sing beda-beda, mula kemungkinan pedhot lan ora kasedhiya komponen mundhak banget. Mulane, ing umume kasus sampeyan bakal nampa data sebagean tanpa ngerti.
VictoriaMetrics uga duwe pitfalls. Jeblugan pisanan minangka pilihan sing mbatesi jumlah RAM sing digunakake kanggo cache VictoriaMetrics. Iku standar kanggo 60% RAM ing mesin ngendi VictoriaMetrics mlaku, utawa 60% RAM ing pod VictoriaMetrics ing Kubernetes.
Yen sampeyan salah ngganti nilai iki, sampeyan bisa ngrusak kinerja VictoriaMetrics. Contone, yen nilai disetel kurang banget, data kasebut bisa uga ora pas karo cache VictoriaMetrics. Amarga iki, dheweke kudu nindakake karya ekstra lan mbukak prosesor karo disk. Yen sampeyan nggawe pilihan iki gedhe banget, iku mundhak, sepisanan, kamungkinan sing VictoriaMetrics bakal kacilakan karo metu saka kesalahan memori, lan sareh, iku bakal mimpin kanggo kasunyatan sing sistem operasi bakal duwe RAM sethitik banget kanggo file. cache. Lan VictoriaMetrics gumantung ing cache file kanggo kinerja. Yen ora cukup, mula beban ing disk bisa nambah banget. Mulane, saran: aja ngganti parameter kajaba pancen perlu.
Pilihan kapindho. RetentionPeriod iki minangka periode sing disetel dadi 1 sasi kanthi standar. Iki wektu nalika VictoriaMetrics nyimpen data kasebut. Sawise wektu iki, VictoriaMetrics mbusak data kasebut.
Akeh wong sing mbukak VictoriaMetrics tanpa pilihan iki lan ngrekam data sajrone sewulan. Banjur padha takon: kenapa data ilang ing sasi sadurunge? Amarga wektu retensi standar yaiku 1 wulan. Mulane, sampeyan kudu ngerti lan nyetel retentionPeriod bener.
Ayo goleki fitur unik.
Thanos nduweni fitur sing diarani downsampling: interval 5 menit lan saben jam, sing asring
Thanos nduwe deduplikasi data kanggo pasangan Prometheus HA. Nalika loro Prometheus ngumpulake metrik sing padha saka target sing padha lan Thanos nambahake menyang Obyek Storage. Thanos bisa ngilangi data iki kanthi bener, ora kaya VictoriaMetrics.
Thanos nduweni komponen tandha sing ana ing skema Thanos. Nanging dheweke
Thanos nduweni kaluwihan yen Thanos lan Prometheus nuduhake kode sing padha. Thanos lan Prometheus dikembangake dening pangembang sing padha. Kanthi dandan ing Thanos utawa Prometheus, sisih liya menang.
Fitur utama VictoriaMetrics yaiku MetricsQL. Iki minangka ekstensi VictoriaMetrics kanggo PromQL, sing dakkandhakake ing metup ngawasi gedhe sadurunge.
VictoriaMetrics ndhukung upload data nggunakake akeh protokol beda. VictoriaMetrics ora mung bisa nampa data saka Prometheus, nanging uga liwat protokol Influx, OpenTSDB lan Graphite.
Data VictoriaMetrics njupuk luwih sithik tinimbang Thanos lan Prometheus.
Nalika nulis data nyata, pangguna ngomong babagan pengurangan ukuran data 2-5 ing disk dibandhingake karo Prometheus lan Thanos.
Kauntungan liyane saka VictoriaMetrics yaiku dioptimalake kanggo kacepetan.
Ayo kita nimbang biaya infrastruktur.
Salah sawijining kaluwihan Thanos yaiku nyimpen data ing panyimpenan obyek, sing relatif murah.
Nalika nyimpen data ing panyimpenan obyek, sampeyan kudu mbayar kanggo nulis data lan operasi maca ($ 10 saben yuta operasi). Nalika sampeyan nulis data menyang panyimpenan obyek, sampeyan mbayar biaya hosting kanggo ngunggah data menyang Internet, yen kluster sampeyan ora ana ing AWS - ana gratis. Nalika maca data, sampeyan mbayar antarane $10 lan $230 kanggo 1TB. Iki bisa dadi penting yen sampeyan kerep njaluk data historis saka kluster Thanos.
Kanggo kluster Thanos, sampeyan kudu mbayar server kanggo Compact, Store Gateway, komponen Query sing mbutuhake akeh memori, CPU kanggo data sing akeh.
VictoriaMetrics nduweni biaya ing ngisor iki. Yen sampeyan nyimpen data ing HDD GCE, banjur metu $40 kanggo 1TB. Kanggo VictoriaMetrics, drive HDD biasa cukup, ora perlu SSD, sing regane kaping lima luwih. VictoriaMetrics dioptimalake kanggo HDD.
VictoriaMetrics mbutuhake server kanggo komponen: siji-manthuk utawa kanggo komponen clustered, kang, ora kaya komponen Thanos, mbutuhake CPU luwih kurang, RAM - mungguh, iku bakal luwih murah.
Tuladha Implementasine.
Kanggo Thanos, conto implementasine yaiku Gitlab. Gitlab mlaku kabeh ing Thanos. Nanging ora kabeh dadi lancar ana. Yen sampeyan ndeleng wong-wong mau
Amarga iki, biaya kanggo ngrampungake masalah kasebut mundhak.
Implementasi kapindho, sing bisa uga luwih sukses, yaiku Improbable, sing miwiti pangembangan Thanos. Dheweke ngeculake sumber Thanos. Improbable minangka perusahaan sing ngembangake mesin game.
VictoriaMetrics duwe conto implementasine umum yaiku:
- wix pembangun situs web
- Adidas ngetrapake VictoriaMetrics lan malah nggawe presentasi ing PromCon 2019 pungkasan
- TrafficStars-jaringan iklan
- Seznam.cz minangka mesin telusur Ceko sing populer.
Banjur ana perusahaan tanpa jeneng sing aku ora bisa jeneng saiki. Dheweke ora setuju.
- Salah sawijining pangembang game utama. Luwih gedhe tinimbang im Improbable.
- Pangembang gedhe saka piranti lunak grafis.
- Bank Rusia gedhe.
- Produsen turbin angin Eropa sing wis sukses nguji VictoriaMetrics. Pabrikan iki ngetrapake VictoriaMetrics kanggo ngawasi data turbin angin kanthi laju 50 conto per detik per sensor. Saben turbin angin duwe sawetara atus sensor. Dheweke duwe sawetara atus turbin angin.
- Maskapai penerbangan Rusia sing pengin ngetrapake VictoriaMetrics nanging isih ora bisa. Kita ing tataran kontrak karo wong-wong mau.
Kesimpulan.
VictoriaMetrics lan Thanos ngrampungake masalah sing padha, nanging kanthi cara sing beda:
- Tampilan pitakon global
- skala horizontal
- penylametan sewenang-wenang
Спасибо.
Kita nunggu sampeyan ing kita
Mung pangguna pangguna sing bisa melu survey.
Apa sing digunakake minangka panyimpenan jangka panjang kanggo Prometheus?
-
35,3%Thanos6
-
0,0%Korteks0
-
0,0%M3DB0
-
41,2%VictoriaMetrics7
-
23,5%liyane4
17 pangguna milih. 16 kedhaftar abstained.
Source: www.habr.com