Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Ou te fautua atu ia e faitau le tusitusiga o le tuai o le 2019 lipoti a Alexander Valyalkin "Alu optimizations i VictoriaMetrics"

VictoriaMetrics - o se DBMS vave ma faʻaleleia mo le teuina ma le faʻaogaina o faʻamatalaga i le tulaga o se faasologa o taimi (o le faʻamaumauga o taimi ma se seti o tau e fetaui ma lenei taimi, mo se faʻataʻitaʻiga, maua mai i taimi uma palota o le tulaga o masini poʻo le aoina o fua faatatau).

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Ole feso'ota'iga lea ile vitiō o lenei lipoti - https://youtu.be/MZ5P21j_HLE

Ata faasolo

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Ta'u mai e uiga ia te oe lava. O aʻu o Alexander Valyalkin. O iinei la'u tala GitHub. Ou te fiafia e uiga i le Go ma le faʻaleleia o faʻatinoga. Sa ou tusia le tele o faletusi aoga ae le aoga tele. Latou te amata i se tasi fast, po o le quick prefix.

O lo'o ou galue nei ile VictoriaMetrics. O le a le mea ma o le a la'u mea o fai iina? O le a ou talanoa e uiga i lenei mea i lenei faʻamatalaga.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O le otootoga o le lipoti e faapea:

  • Muamua, o le a ou taʻu atu ia te oe le VictoriaMetrics.
  • Ona ou ta'u atu lea o le faasologa o taimi.
  • Ona ou ta'u atu lea ia te oe le auala e galue ai se fa'amaumauga fa'asologa o taimi.
  • Le isi, o le a ou taʻu atu ia te oe le fausaga o faʻamaumauga: mea e aofia ai.
  • Ona tatou aga'i atu ai lea ile fa'ata'ita'iga o lo'o maua e VictoriaMetrics. O se fa'ata'ita'iga lea mo le fa'asinomaga fa'aliliu ma se fa'ata'ita'iga mo le fa'atinoga o bitset i Go.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

E iloa e se tasi o le aofia le VictoriaMetrics? Oka, ua iloa e le to'atele o tagata. Ose tala fiafia. Mo i latou e le iloa, o se fa'amaumauga fa'asologa o taimi. E faʻavae i luga o le ata o le ClickHouse, i luga o nisi faʻamatalaga o le faʻatinoga o le ClickHouse. Mo se faʻataʻitaʻiga, i luga o le: MergeTree, faʻatusatusaga tutusa i luga o mea uma o loʻo avanoa ma faʻaleleia le faʻatinoga e ala i le galue i luga o poloka faʻamaumauga o loʻo tuʻuina i totonu o le pusa faʻapipiʻi.

VictoriaMetrics e maua ai fa'amaumauga sili atu nai lo isi fa'amaumauga fa'asologa o taimi.

E fua fa'atatau - o lona uiga, e mafai ona e fa'aopoopo nisi fa'agaioiga, sili atu le RAM i luga o le komepiuta e tasi. VictoriaMetrics o le a faʻaogaina lelei nei punaoa avanoa ma o le a faʻaleleia le gaosiga o laina laina.

VictoriaMetrics e fua fa'alava - o lona uiga, e mafai ona e fa'aopoopoina fa'aputu i le VictoriaMetrics fuifui, ma o lona fa'atinoga o le a fa'atupula'ia toeitiiti lava fa'alaina.

E pei ona e mateina, VictoriaMetrics o se faʻamaumauga vave, aua e le mafai ona ou tusia isi. Ma o loʻo tusia i le Go, o lea o loʻo ou talanoa i ai i lenei feiloaiga.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O ai na te iloa le fa'asologa o taimi? Na te silafia foi le toatele o tagata. O le faasologa o taimi o se faasologa o paga (timestamp, значение), lea e fa'avasega ai nei paga i le taimi. O le tau o se numera faʻafefe - float64.

O fa'asologa o taimi ta'itasi e fa'ailoa fa'apitoa e se ki. O a mea e aofia ai i lenei ki? E aofia ai se seti le gaogao o pa'aga autu-taua.

O se fa'ata'ita'iga lea o se faasologa o taimi. O le ki o lenei faasologa o se lisi o paga: __name__="cpu_usage" ole igoa ole metric, instance="my-server" - o le komipiuta lea e aoina ai lenei fua, datacenter="us-east" - o le nofoaga autu lea o lo'o i ai le komepiuta lenei.

Na matou fa'ai'u i se igoa fa'asologa o taimi e aofia ai ta'i-taua e tolu. O lenei ki e fetaui ma se lisi o paga (timestamp, value). t1, t3, t3, ..., tN - o faailoga taimi nei, 10, 20, 12, ..., 15 - o tau tutusa. Ole cpu-fa'aoga lea ile taimi atofaina mo se laina.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O fea e mafai ona fa'aoga ai fa'asologa o taimi? E i ai se tasi e i ai se manatu?

  • I DevOps, e mafai ona e fuaina le PPU, RAM, fesoʻotaʻiga, rps, numera o mea sese, ma isi.
  • IoT - e mafai ona tatou fuaina le vevela, mamafa, faʻasologa o geo ma isi mea.
  • Faʻapea foʻi mea tau tupe - e mafai ona tatou mataʻituina tau mo ituaiga uma o faʻasoa ma tupe.
  • E le gata i lea, e mafai ona faʻaogaina taimi faʻasologa i le mataʻituina o gaioiga gaosiga i fale gaosimea. E iai a matou tagata faʻaoga e faʻaogaina VictoriaMetrics e mataʻituina ai le matagi, mo robots.
  • E aoga fo'i fa'asologa o taimi mo le aoina mai o fa'amatalaga mai masini o masini eseese. Mo se faʻataʻitaʻiga, mo se afi; mo le fuaina o le mamafa o pa'u; mo le fuaina o le saoasaoa, mamao; mo le fuaina o le penisini, ma isi.
  • E mafai foi ona fa'aoga taimi fa'asologa e mata'ituina ai vaalele. O vaalele taʻitasi e iai se pusa uliuli e aoina ai faʻasologa o taimi mo vaega eseese o le soifua maloloina o le vaalele. O fa'asologa o taimi o lo'o fa'aaogaina fo'i i le alamanuia aerospace.
  • O le soifua maloloina ole toto maualuga, fatu, ma isi.

Atonu e tele atu talosaga ua galo ia te aʻu, ae ou te faʻamoemoe e te malamalama o taimi faʻasologa o loʻo faʻaaogaina ma le malosi i le lalolagi faʻaonaponei. Ma o le tele o lo latou faʻaaogaina o loʻo faʻatupulaia i tausaga taʻitasi.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Aisea e te mana'omia ai se fa'amaumauga fa'asologa o taimi? Aisea e le mafai ai ona e fa'aogaina se fa'amaumauga feso'ota'iga masani e teu ai fa'asologa o taimi?

Ona o le faasologa o taimi e masani ona aofia ai le tele o faʻamatalaga, lea e faigata ona teuina ma faʻagasolo i faʻamaumauga masani. O le mea lea, na fa'aalia ai fa'amaumauga fa'apitoa mo fa'asologa o taimi. O fa'avae nei e fa'atumauina lelei togi (timestamp, value) ma le ki ua tuuina atu. Latou te tuʻuina atu se API mo le faitauina o faʻamaumauga o loʻo teuina e ala i le ki, i se tasi ki-taua paʻaga, poʻo le tele o paʻu-taua, poʻo le regexp. Mo se faʻataʻitaʻiga, e te manaʻo e suʻe le uta CPU o au 'auʻaunaga uma i totonu o se nofoaga autu o faʻamatalaga i Amerika, ona e manaʻomia lea e faʻaaoga lenei pseudo-query.

E masani lava o fa'amaumauga fa'asologa o taimi e maua ai gagana fa'apitoa fa'atatau ona e le fetaui lelei le SQL fa'asologa o taimi. E ui lava o loʻo i ai faʻamaumauga e lagolagoina le SQL, e le talafeagai. Fesili gagana pei ole PromQL, InfluxQL, tafe, Q. Ou te faʻamoemoe o se tasi na faʻalogo i se tasi o nei gagana. E to'atele tagata ua fa'alogo e uiga i le PromQL. Ole gagana ole fesili lea a Prometheus.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Ole mea lea ole fa'asologa o taimi fa'aonaponei fa'asologa o fa'amaumauga fa'amaumauga e pei o le fa'aogaina o VictoriaMetrics e fai ma fa'ata'ita'iga.

E lua vaega. O le teuina lea mo le faasinoupu liliu ma le teuina mo tau fa'asologa o taimi. O nei fale teu oloa ua tuueseese.

A oʻo mai se faʻamaumauga fou i totonu o faʻamaumauga, matou te maua muamua le faʻailoga faʻaliliu e suʻe ai le faʻasologa o taimi mo se seti tuʻuina atu. label=value mo se metric ua tuuina atu. Matou te mauaina lenei faʻamatalaga ma faʻasaoina le tau i le faleoloa faʻamaumauga.

A oʻo mai se talosaga e toe aumai faʻamatalaga mai le TSDB, matou te alu muamua i le faʻasino igoa. Tatou maua mea uma timeseries_ids faamaumauga e fetaui ma lenei seti label=value. Ona matou maua uma lea o faʻamatalaga talafeagai mai le faleteuoloa faʻamaumauga, faʻasinoina e timeseries_ids.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Se'i va'ai i se fa'ata'ita'iga pe fa'apefea ona fa'agasolo e se fa'amaumauga fa'asologa o taimi se fesili filifilia o lo'o sau.

  • Muamua na te mauaina mea uma timeseries_ids mai se fa'ailoga fa'aliliu'ese o lo'o iai ta'i ta'i label=value, po o le faamalieina o se faaupuga masani.
  • Ona toe maua mai ai lea o faʻamatalaga uma mai le teuina o faʻamaumauga i se taimi atofaina mo mea na maua timeseries_ids.
  • A maeʻa lenei mea, e faʻatino e le database ni faʻatusatusaga i luga o nei faʻamaumauga, e tusa ai ma le talosaga a le tagata faʻaoga. Ma a uma lena e toe faafoi mai le tali.

I lenei faʻamatalaga o le a ou taʻuina atu ia te oe le vaega muamua. Ole su'esu'ega lea timeseries_ids e ala i fa'asino igoa. E mafai ona e matamata i le vaega lona lua ma le vaega lona tolu mulimuli ane VictoriaMetrics puna'oa, pe fa'atali se'i ou saunia isi lipoti :)

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Se'i o tatou agai i luma i le faasinoupu faafeagai. Atonu e manatu le to'atele e faigofie lenei mea. O ai na te iloa po'o le a le fa'asino igoa fa'aliliu ma pe fa'apefea ona galue? Oi, ua le toe toatele naua tagata. Sei o tatou taumafai e malamalama po o le a.

E matua faigofie lava. E na'o se lomifefiloi e fa'afanua se ki i se tau. O le a le ki? O lenei ulugalii label=valuefea label и value - o laina nei. Ma o tau o se seti timeseries_ids, lea e aofia ai le paga ua tuuina mai label=value.

Inverted index e mafai ai ona e mauaina vave mea uma timeseries_ids, ua tuuina mai label=value.

E mafai ai foi ona e vave maua timeseries_ids faasologa o taimi mo ni paga label=value, pe mo ulugalii label=regexp. E faapefea ona tupu lenei mea? E ala i le sailia o le vaeluaga o le seti timeseries_ids mo paga taitasi label=value.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Se'i tatou va'ava'ai i fa'atinoga 'ese'ese o le fa'ailoga fa'aliliu. Sei o tatou amata i le faʻatinoga faʻavalevalea sili ona faigofie. E fa'apenei o ia.

galuega tauave getMetricIDs maua se lisi o manoa. O laina taitasi e iai label=value. O lenei galuega e toe faafoi mai ai se lisi metricIDs.

E faapefea ona aoga? O iinei tatou te maua ai se fesuiaiga o le lalolagi e taʻua invertedIndex. Ole lomifefiloi masani lea (map), lea o le a fa'afanua le manoa e tipi ints. O le laina e iai label=value.

Fa'atinoga o galuega: maua metricIDs mo le muamua label=value, ona tatou uia lea o isi mea uma label=value, matou te maua metricIDs mo i latou. Ma valaau le galuega intersectInts, lea o le a talanoaina i lalo. Ma o lenei galuega e toe faʻafoʻi ai le vaeluaga o nei lisi.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

E pei ona mafai ona e vaʻai, o le faʻatinoina o se faʻailoga faʻaliliu e le faigata tele. Ae o se faatinoga valea lea. O a ni faaletonu o iai? O le mea sili ona le lelei o le faʻatinoina o le faʻaogaina o se faʻailoga faʻafefeteina o loʻo teuina i le RAM. A maeʻa ona toe amataina le talosaga matou te leiloa lenei faʻasino. E leai se fa'asaoina o lenei fa'asino i le tisiki. O sea fa'ailoga fa'aliliuina e foliga mai e le talafeagai mo se fa'amaumauga.

O le fa'aletonu lona lua e feso'ota'i fo'i ma le manatua. E tatau ona ofi le fa'asino igoa i totonu o le RAM. Afai e sili atu i le tele o le RAM, e manino lava o le a tatou maua - mai le mea sese manatua. Ma o le a le aoga le polokalama.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O lenei faʻafitauli e mafai ona foia i le faʻaaogaina o fofo ua saunia e pei ole LevelDB, po o RocksDB.

I se faapuupuuga, matou te manaʻomia se faʻamaumauga e mafai ai ona matou faia ni gaioiga se tolu vave.

  • O le taotoga muamua o le pueina ключ-значение i lenei fa'amaumauga. Na te faia lenei mea vave, i fea ключ-значение o manoa faifua.
  • O le gaioiga lona lua o se sailiga vave mo se tau e faʻaaoga ai se ki tuʻuina atu.
  • Ma o le taotoga lona tolu o se suʻesuʻega vave mo mea taua uma e ala i se prefix ua tuʻuina atu.

LevelDB ma RocksDB - o nei fa'amaumauga na fausia e Google ma Facebook. Muamua na sau LevelDB. Ona ave lea e tama mai le Facebook LevelDB ma amata ona faaleleia, na latou faia RocksDB. Ole taimi nei e toetoe lava o fa'amaumauga fa'alotoifale uma o lo'o galulue i luga ole RocksDB i totonu o le Facebook, e aofia ai ma i latou ua fa'aliliuina ile RocksDB ma MySQL. Sa latou faaigoaina o ia MyRocks.

E mafai ona fa'atinoina se fa'ailoga fa'aliliu e fa'aaoga ai le LevelDB. E faapefea ona fai? Matou te sefe o se ki label=value. Ma o le tau o le faʻamatalaga o le faasologa o taimi o loʻo iai le paga label=value.

Afai e tele a tatou faasologa o taimi ma se paga ua tuuina mai label=value, ona i ai lea o le tele o laina i totonu o lenei faʻamaumauga faʻatasi ma le ki tutusa ma eseese timeseries_ids. Ina ia maua se lisi o mea uma timeseries_ids, lea e amata i lenei label=prefix, matou te faia se su'esu'ega lautele lea e fa'asilisiliina ai lenei fa'amaumauga. O lona uiga, matou te filifilia laina uma e amata i label=prefix ma maua mea e tatau ai timeseries_ids.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Ole fa'ata'ita'iga lea ole fa'atinoga ole foliga ile Go. E iai la matou fa'ailoga fa'aliliu. Ole LevelDB lea.

Ole galuega e tutusa ma mo le faʻatinoga faʻavalevalea. Na te toe faia le faʻatinoga faʻavalevalea toetoe lava laina ma laina. Pau lava le manatu o le nai lo le liliu atu i map matou te maua le fa'ailoga fa'aliliu. Matou te maua uma tau mo le muamua label=value. Ona tatou pasia uma lea o paga o totoe label=value ma maua seti tutusa o metricIDs mo latou. Ona matou maua lea o le fetaulaiga.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

E foliga mai e lelei mea uma, ae o loʻo i ai faʻafitauli i lenei fofo. VictoriaMetrics na muamua fa'atinoina se fa'ailoga fa'aliliu e fa'avae ile LevelDB. Ae i le faaiuga sa tatau ona ou lafoaia.

Aisea? Ona o le LevelDB e telegese nai lo le faʻatinoga faʻavalea. I se faʻatinoga faʻavalevalea, tuʻuina atu se ki tuʻuina atu, matou te vave maua le fasi pepa atoa metricIDs. Ole fa'agaioiga vave tele lea - ua sauni le fasi pepa atoa mo le fa'aoga.

I LevelDB, so'o se taimi e vala'au ai se galuega GetValues e tatau ona e alu i laina uma e amata i label=value. Ma maua le tau mo laina taitasi timeseries_ids. O mea faapena timeseries_ids ao mai se vaega o nei mea timeseries_ids. E manino lava, e sili atu le lemu nai lo le na o le mauaina o se faafanua masani e ala i le ki.

O le toe fa'afo'i lona lua o le LevelDB o lo'o tusia i le C. Vala'au C galuega mai le Go e le vave tele. E fia selau nanoseconds. E le vave tele lenei mea, aua pe a faʻatusatusa i se telefoni masani e tusia i le alu, lea e manaʻomia ai le 1-5 nanoseconds, o le eseesega i le faʻatinoga e sefulu taimi. Mo VictoriaMetrics o se fa'aletonu mata'utia :)

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O lea na ou tusia ai laʻu lava faʻatinoga o le faʻasologa faʻasolosolo. Ona valaau atu lea o ia ia te ia mergeset.

Mergeset e fa'avae i luga o le fa'asologa o fa'amaumauga a MergeTree. O lenei faʻamaumauga faʻamaumauga o loʻo nono mai le ClickHouse. E manino lava, mergeset e tatau ona faʻamalieina mo suʻesuʻega vave timeseries_ids e tusa ai ma le ki ua tuuina mai. Mergeset ua tusia atoa ile Go. E mafai ona e va'ai VictoriaMetrics puna'oa ile GitHub. O le faʻatinoga o le mergeset o loʻo i totonu o le faila /lib/mergeset. E mafai ona e taumafai e suʻesuʻe le mea o loʻo tupu iina.

Ole mergeset API e tutusa lelei ile LevelDB ma RocksDB. O lona uiga, e mafai ai e oe ona vave faʻasaoina faʻamaumauga fou iina ma vave filifili faʻamaumauga i se prefix ua tuʻuina atu.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O le a tatou talanoa e uiga i le le lelei o le mergeset mulimuli ane. Sei o tatou talanoa e uiga i faʻafitauli na tulaʻi mai i VictoriaMetrics i le gaosiga pe a faʻatinoina se faʻasologa faʻasolosolo.

Aiseā na latou tulaʻi mai ai?

O le mafuaʻaga muamua o le maualuga o le faʻafefe. Fa'aliliuina i le gagana Rusia, o se suiga faifaipea lea i le faasologa o taimi. O le taimi lea e muta ai se faasologa o taimi ma amata se faasologa fou, pe amata le tele o faasologa o taimi fou. Ma e tupu soo lenei mea.

O le mafuaaga lona lua o le tele o numera o taimi faasologa. I le amataga, ina ua maua le taʻutaʻua o le mataʻituina, o le numera o taimi faʻasologa sa laʻititi. Mo se faʻataʻitaʻiga, mo komepiuta taʻitasi e te manaʻomia le mataʻituina o le PPU, manatua, fesoʻotaʻiga ma uta tisiki. 4 taimi fa'asologa ile komepiuta. Fa'apea e 100 au komepiuta ma le 400 taimi fa'asologa. E matua itiiti lava lenei.

I le aluga o taimi, na iloa ai e tagata e mafai ona latou fuaina faʻamatalaga sili atu. Mo se faʻataʻitaʻiga, fuaina le uta e le o le faʻaogaina atoa, ae faʻapitoa i totonu o le processor taʻitasi. Afai e 40 au fa'agasolo, ona fa'a 40 taimi e sili atu ai le fa'asologa o taimi e fua ai le uta o le gaosiga.

Ae e le na o le pau lena. E mafai ona i ai ni setete ta'itasi ta'itasi, e pei ole fa'aoga, pe a leai se aoga. Ma galue foi i avanoa faʻaoga, galue i le kernel space ma isi setete. Ma e mafai foi ona fuaina ia tulaga taitasi o se faasologa o taimi eseese. Ole mea lea e fa'aopoopoina ai le numera o laina ile 7-8 taimi.

Mai le tasi metric matou maua 40 x 8 = 320 metrics mo na'o le tasi komepiuta. Faatele i le 100, tatou te maua le 32 nai lo le 000.

Ona sau lea o Kubernetes. Ma na atili ai ona leaga ona e mafai e Kubernetes ona talimalo i le tele o auaunaga eseese. O 'au'aunaga ta'itasi i Kubernetes e aofia ai le tele o pods. Ma o nei mea uma e tatau ona mataʻituina. E le gata i lea, o loʻo i ai le matou faʻapipiʻiina faifaipea o lomiga fou o au 'auʻaunaga. Mo fa'asologa fou ta'itasi, e tatau ona fai fa'asologa o taimi fou. O le iʻuga, o le aofaʻi o faʻasologa o taimi e faʻatupulaia faʻateleina ma o loʻo tatou feagai ma le faʻafitauli o le tele o taimi faʻasologa, lea e taʻua o le maualuga-cardinality. VictoriaMetrics e faʻafetaui lelei ma faʻatusatusa i isi faʻamaumauga faʻasologa o taimi.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Se'i o tatou va'ava'ai toto'a i le maualuga o le churn rate. O le a le mafuaʻaga o le maualuga o le faʻafefe o le gaosiga? Ona o nisi o uiga o igoa ma pine e suia pea.

Mo se faʻataʻitaʻiga, ave Kubernetes, o loʻo i ai le manatu deployment, o lona uiga pe a fa'asolo atu se fa'aaliga fou o lau talosaga. Mo nisi mafuaʻaga, na filifili le au Kubernetes e faʻaopoopo le faʻapipiʻi id i le igoa.

O le a le mea na mafua ai lenei mea? E le gata i lea, faatasi ai ma le faʻatulagaina fou, o faʻasologa o taimi tuai uma e faʻalavelaveina, ae nai lo i latou, o taimi fou e amata i se tau igoa fou. deployment_id. E mafai ona i ai le fiaselau afe ma le faitau miliona o ia laina.

O le mea taua e uiga i nei mea uma o le faʻatupulaia o le aofaʻi o taimi faʻasologa, ae o le numera o taimi faʻasologa o loʻo galue nei ma mauaina faʻamatalaga e tumau pea. O lea tulaga ua ta'ua o le maualuga o le churn rate.

O le fa'afitauli autu o le maualuga o le churn rate o le fa'amautinoaina lea o se saosaoa su'esu'e faifaipea mo fa'asologa o taimi uma mo se seti o fa'ailoga i luga o se vaitaimi patino. E masani lava o le va o le taimi lea mo le itula mulimuli po'o le aso mulimuli.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

E faapefea ona foia lenei faafitauli? O le filifiliga muamua lea. O le mea lea e vaevae ai le fa'ailoga fa'aliliuina i ni vaega tuto'atasi i le aluga o taimi. O lona uiga, o nisi taimi e pasi, matou te maeʻa galulue ma le faʻasologa faʻasolosolo o loʻo i ai nei. Ma fai se fa'ailoga fou fou. Ua mavae le isi taimi, matou te faia le isi ma le isi.

Ma a fa'ata'ita'i mai nei fa'ailoga feliuliua'i, tatou te maua ai se seti o fa'ailoga fa'aliliuina e pa'ū i totonu o le va o taimi. Ma, e tusa ai, matou te filifilia le id o le faasologa o taimi mai iina.

O lenei mea e sefe ai punaoa aua tatou te le tau tilotilo i vaega e le pa'ū i totonu o le vaeluaga. O lona uiga, e masani lava, afai tatou te filifilia faʻamatalaga mo le itula mulimuli, ona mo taimi muamua taimi tatou te faaseʻeina talosaga.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

E i ai se isi filifiliga e foia ai lenei faafitauli. O le mea lea e teu ai mo aso ta'itasi se lisi eseese o id o fa'asologa o taimi na tupu i lena aso.

O le lelei o lenei fofo i luga o le fofo muamua o le le faia o faʻamatalaga faʻasologa taimi e le mou atu i le taimi. Latou te i ai i taimi uma ma e le suia.

O le tulaga le lelei o se fofo faapea e sili atu ona faigata ona faatino ma sili atu ona faigata ona debug. Ma na filifilia e VictoriaMetrics lenei fofo. O le mea lea na tupu i le talafaasolopito. O lenei fofo e lelei foi le faatinoga pe a faatusatusa i le muamua. Ona o lenei fofo e leʻi faʻatinoina ona o le mea moni e manaʻomia le faʻaluaina o faʻamaumauga i vaega taʻitasi mo faʻasologa o taimi e le suia, o lona uiga e le mou atu i le taimi. O le VictoriaMetrics na fa'atumauina mo le taumafaina o avanoa tisiki, ma o le fa'atinoga muamua na atili ai ona leaga le fa'aogaina o avanoa va'a. Ae o lenei faʻatinoga e sili atu ona fetaui mo le faʻaitiitia o le faʻaogaina o avanoa avanoa, o lea na filifilia ai.

Sa tatau ona ou tau ma ia. O le tauiviga o lenei faʻatinoga e manaʻomia pea ona e filifilia se numera tele atu timeseries_ids mo fa'amaumauga nai lo le taimi e vaelua ai le fa'ailoga fa'aliliuina.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Na faapefea ona tatou foia lenei faafitauli? Na matou fofoina i se auala muamua - e ala i le teuina o ni fa'asologa fa'asologa o taimi i totonu o fa'ailoga fa'aliliu ta'itasi nai lo le tasi fa'ailoa. O lona uiga, e iai le tatou ki label=value, lea e tupu i faasologa taimi uma. Ma o lea ua matou faasaoina nisi timeseries_ids i le tasi tusi.

O se fa'ata'ita'iga lenei. I le taimi muamua sa i ai a matou faʻamatalaga N, ae o lea ua tasi le matou faʻamatalaga e tutusa ma isi mea uma. Mo le fa'amatalaga muamua, o le tau o lo'o i ai uma fa'asologa o taimi.

O le mea lea na mafai ai ona fa'ateleina le saoasaoa o le su'esu'eina o sea fa'asino fa'asino i luga i le 10 taimi. Ma na faʻatagaina ai i matou e faʻaitiitia le faʻaaogaina o mafaufauga mo le cache, aua o lea ua matou teuina le manoa label=value na'o le tasi i le cache fa'atasi N taimi. Ma e mafai ona tele lenei laina pe afai e te teuina laina uumi i au pine ma igoa, lea e fiafia Kubernetes e tulei ai iina.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O le isi filifiliga mo le fa'atelevaveina o su'esu'ega i luga o se fa'ailoga fa'aliliu o le sharding. Fausia ni fa'ailoga fa'aliliu'ese nai lo le tasi ma fa'asoa fa'amaumauga i le va o latou ki. O se seti lea key=value ausa. O lona uiga, tatou te maua ni fa'asinomaga fa'aliliu tuto'atasi, lea e mafai ona tatou fesiligia fa'atasi i luga o le tele o processors. O faʻatinoga muamua na faʻatagaina le faʻaogaina i le tasi-processor mode, o lona uiga, suʻesuʻeina faʻamatalaga i luga o le tasi autu. O lenei fofo e mafai ai ona e suʻeina faʻamatalaga i luga o le tele o cores i le taimi e tasi, e pei ona fiafia ClickHouse e fai. O le mea lea ua matou fuafua e faatino.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Ia tatou toe foi atu i a tatou mamoe - i le galuega o le fetaulaiga timeseries_ids. Sei o tatou mafaufau po oa faatinoga e ono i ai. O lenei galuega e mafai ai e oe ona maua timeseries_ids mo se seti ua tuuina atu label=value.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O le filifiliga muamua o se faʻatinoga faʻavalevalea. E lua fa'amau fa'alava. O iinei tatou te maua ai le faʻaogaina o galuega intersectInts lua fasi - a и b. I le gaosiga, e tatau ona toe foi mai ia i matou le vaeluaga o nei fasi pepa.

O se faʻatinoga faʻavalevalea e pei o lenei. Matou te faʻataʻitaʻia uma tau mai le fasi pepa a, i totonu o lenei matasele matou te uia uma tulaga taua o fasi b. Ma tatou faatusatusa i latou. Afai latou te fetaui, ona matou maua lea o se fetaulaiga. Ma teu i totonu result.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O a ni mea le lelei? Quadratic lavelave o lona faaletonu autu. Mo se fa'ata'ita'iga, pe afai o lau fua e fasi a и b tasi miliona i le taimi, ona le toe faafoi mai lea e lenei galuega se tali ia te oe. Aua o le a manaʻomia le faia o le tasi tiliona iterations, lea e tele mo komepiuta faʻaonapo nei.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O le faʻatinoga lona lua e faʻavae i luga o faʻafanua. Matou te faia faafanua. Matou te tuʻuina uma tau mai le fasi pepa i lenei faʻafanua a. Ona tatou o atu lea i totonu o le vaega i se matasele ese b. Ma matou siaki pe o lenei tau e mai le fasi b i faafanua. Afai e i ai, ona faʻaopopo lea i le taunuuga.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O ā aogā? O le lelei e na'o le lavelave laina. O lona uiga, o le gaioiga o le a sili atu le vave ona faatino mo fasi fasi tetele. Mo se fasi miliona-tele, o lenei galuega o le a faatino i le 2 miliona iterations, e ese mai i le tiliona iterations o le galuega muamua.

O le itu i lalo o lenei galuega e manaʻomia ai le tele o manatua e fai ai lenei faafanua.

O le fa'aletonu lona lua o le lapo'a tele mo le fa'asalaina. O lenei fa'aletonu e le o manino tele. Ma mo i matou e leʻi manino tele, o le mea lea i le taimi muamua i VictoriaMetrics o le faʻatinoina o le vaʻavaʻa na ala i se faʻafanua. Ae na faʻaalia e faʻamatalaga o le taimi autu o le gaosiga e faʻaalu e tusi ai i luga o le faʻafanua ma siaki le i ai o se tau i lenei faʻafanua.

Aisea e maumau ai le taimi ole PPU i nei nofoaga? Aua o le Go e faia se faʻagaioiga i luga o laina nei. O lona uiga, e fuafua le hash o le ki ina ia mafai ai ona maua i se faasino igoa i le HashMap. Ua mae'a le fa'atulagaina o le hash i le sefulu o nanoseconds. E telegese lenei mo VictoriaMetrics.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Na ou filifili e faʻatino se bitset faʻapitoa mo lenei mataupu. O le mea lea ua foliga mai ai le fetaulaiga o fasi fasi e lua. O iinei tatou te fatuina ai se bitset. Matou te faʻaopoopoina elemene mai le fasi pepa muamua i ai. Ona matou siakia lea o le i ai o nei elemene i le vaega lona lua. Ma faaopoopo i latou i le taunuuga. O lona uiga, e toetoe lava a leai se eseesega mai le faʻataʻitaʻiga muamua. Pau lava le mea iinei o le suia lea o le avanoa i le faafanua i galuega masani add и has.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

I le tepa muamua, e foliga mai o lenei mea e tatau ona faʻagesegese, pe afai na faʻaaogaina muamua se faʻafanua masani iina, ona taʻua ai lea o isi galuega, ae faʻaalia e le faʻamatalaga o lenei mea e galue 10 taimi sili atu nai lo le faʻafanua masani i le tulaga o VictoriaMetrics.

E le gata i lea, e faʻaaogaina le itiiti ifo o le manatua pe a faʻatusatusa i le faʻatinoga o faʻafanua. Aua o lo'o matou teuina ni vaega iinei nai lo le valu-byte tau.

O le le lelei o lenei faʻatinoga e le o se mea e iloagofie, e le faʻatauvaʻa.

O le isi fa'aletonu e ono le iloa e le to'atele o lenei fa'atinoga e ono le lelei i nisi tulaga. O lona uiga, e sili ona lelei mo se mataupu patino, mo lenei tulaga o le vaeluaga o VictoriaMetrics time series id. E le faapea e talafeagai mo tulaga uma. Afai e le sa'o le fa'aoga, o le a le maua se fa'atuputeleina o le fa'atinoga, ae o se fa'aletonu o le manatua ma fa'agesegese le fa'atinoga.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Sei o tatou mafaufau i le faatinoga o lenei fausaga. Afai e te manaʻo e vaʻai, o loʻo i totonu o punaoa VictoriaMetrics, i totonu o le faila lib/uint64set. O lo'o fa'atonuina fa'apitoa mo le VictoriaMetrics case, lea timeseries_id o se tau 64-bit, lea o le 32 bits muamua e masani ona tumau ma na o le 32 bits mulimuli e suia.

O lenei faʻamaumauga faʻamaumauga e le o teuina i luga o le disk, e naʻo le faʻaogaina i le mafaufau.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O lana API lea. E le faigata tele. O le API e fa'atatau tonu i se fa'ata'ita'iga fa'apitoa o le fa'aogaina o VictoriaMetrics. O lona uiga, e leai ni galuega e le mana'omia iinei. O galuega ia o lo'o fa'aogaina manino e VictoriaMetrics.

E iai galuega add, lea e fa'aopoopoina ai fa'atauga fou. E iai se galuega has, lea e siaki mo tau fou. Ma o loʻo i ai se galuega del, lea e aveesea ai tulaga faatauaina. E iai se galuega fesoasoani len, lea e toe faafoi mai ai le tele o le seti. Galuega clone tele clones. Ma galuega appendto liliu le seti lea e tipi timeseries_ids.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O le mea lea e foliga mai o le faʻatinoga o lenei faʻamaumauga faʻamaumauga. seti e lua elemene:

  • ItemsCount ose fesoasoani fesoasoani e vave toe faafoi le numera o elemene i se seti. E mafai ona fai e aunoa ma lenei vaega fesoasoani, ae e tatau ona faʻaopoopo iinei ona e masani ona fesiligia e VictoriaMetrics le umi o le bitset i ana algorithms.

  • O le fanua lona lua o buckets. O le tipi lea mai le fausaga bucket32. O fausaga taitasi e teuina hi fanua. O pito i luga ia o le 32 bits. Ma fasi fasi e lua - b16his и buckets mai bucket16 fausaga.

Le pito i luga 16 bits o le vaega lona lua o le fausaga 64-bit o loʻo teuina iinei. Ma o iinei o loʻo teuina ai bitsets mo le pito i lalo ole 16 bits o paita taʻitasi.

Bucket64 e aofia ai se fa'asologa uint64. Ole umi e fa'atatau ile fa'aogaina o nei fa'amautu. I le tasi bucket16 maualuga e mafai ona teuina 2^16=65536 itiiti. Afai e vaevae lenei mea i le 8, o lona uiga e 8 kilobytes. Afai e te toe vaelua i le 8, e 1000 uint64 uiga. O lena lava Bucket16 - o le matou fausaga 8-kilobyte lea.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Se'i o tatou va'ai pe fa'apefea ona fa'atinoina se tasi o metotia o lenei fausaga mo le fa'aopoopoina o se tau fou.

E amata uma lava i uint64 uiga. Matou te fuafua le pito i luga o le 32 bits, matou te fuafua le pito i lalo o le 32 bits. Tatou uia mea uma buckets. Matou te faʻatusatusa le pito i luga 32 bits i pakete taʻitasi ma le tau faʻaopoopo. Ma afai latou te fetaui, ona matou taʻua lea o le galuega add i le fausaga b32 buckets. Ma fa'aopoopo le pito i lalo ole 32 bits iina. Ma afai e toe foi mai true, o lona uiga na matou faʻaopoopoina se mea taua iina ma matou te leʻi i ai sea taua. Afai e toe foi mai false, ona iai lea o se uiga faapena. Ona tatou faateleina lea o le numera o elemene i le fausaga.

Afai matou te le'i mauaina le mea e te mana'omia bucket faʻatasi ai ma le manaʻomia hi-value, ona matou taʻua lea o le galuega addAlloc, lea o le a maua ai se mea fou bucket, fa'aopoopo i le fausaga o pakete.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

O le faatinoga lea o le galuega b32.add. E tali tutusa ma le faatinoga muamua. Matou te faʻatatauina le 16 pito sili ona taua, le sili ona taua ole 16 bits.

Ona tatou o atu uma i luga uma 16 bits. Matou te maua afitusi. Ma afai ei ai se fetaui, matou te taʻua le auala faʻaopoopo, lea o le a matou iloiloina i le isi itulau mo bucket16.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

Ma o le tulaga pito i lalo lea, lea e tatau ona faʻaleleia i le tele e mafai ai. Matou te fuafua mo uint64 tau id ile fasi fasi ma fa'apena fo'i bitmask. O se ufimata lea mo se tau 64-bit ua tuʻuina atu, lea e mafai ona faʻaoga e siaki ai le i ai o lenei mea, pe setiina. Matou te siaki e vaʻai pe ua seti lenei bit ma seti, ma toe foʻi mai. O le matou faʻatinoga lea, lea na mafai ai ona matou faʻavavevaveina le faʻaogaina o ids fesoʻotaʻi o taimi faʻasologa i le 10 taimi faʻatusatusa i faʻafanua masani.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

I le faaopoopo atu i lenei faʻataʻitaʻiga, VictoriaMetrics e tele isi faʻataʻitaʻiga. O le tele o nei fa'ata'ita'iga na fa'aopoopoina mo se mafua'aga, ae a mae'a fa'asalalau le code i le gaosiga.

Ole tulafono autu lea ole fa'atonuga - 'aua ne'i fa'aopoopo le fa'atonuga fa'apea o le ai ai se fagufagu iinei, aua e foliga mai o le a leai se fagu fagu iina. O le fa'alelei e masani lava ona fa'aleagaina le tulaga lelei o le code. O le mea lea, e aoga le faʻamalieina naʻo le maeʻa faʻasalalau ma sili atu i le gaosiga, ina ia o faʻamatalaga moni lea. Afai ei ai se tasi e fiafia, e mafai ona e tilotilo i le VictoriaMetrics source code ma suʻesuʻe isi faʻataʻitaʻiga o loʻo i ai.

Alu su'esu'ega ile VictoriaMetrics. Alexander Valyalkin

E i ai sa'u fesili e uiga i bitset. E tutusa lelei ma le C++ vector bool faʻatinoga, optimized bitset. Na e ave le faʻatinoga mai iina?

Leai, e le mai iina. I le faʻatinoina o lenei bitset, na taʻitaʻia aʻu e le malamalama i le fausaga o nei ids timeseries, lea e faʻaaogaina i VictoriaMetrics. Ma o latou fausaga e faʻapea o le pito i luga o le 32 bits e tumau pea. Ole pito pito i lalo ole 32 e mafai ona suia. O le maualalo o le bit, o le tele o taimi e mafai ona suia. O le mea lea, o lenei faʻatinoga e faʻapitoa faʻapitoa mo lenei fausaga faʻamaumauga. O le faʻatinoga o le C ++, e pei ona ou iloa, e sili ona lelei mo le tulaga lautele. Afai e te optimize mo le tulaga lautele, o lona uiga o le a le sili ona lelei mo se mataupu patino.

Ou te fautuaina foi oe e matamata i le lipoti a Alexey Milovid. E tusa o le masina talu ai, na ia talanoa ai e uiga i le faʻaleleia atili i le ClickHouse mo faʻapitoa faʻapitoa. Na ona ia fai mai i le tulaga lautele, o le C ++ faʻatinoga poʻo se isi faʻatinoga e faʻatulagaina e galue lelei i le averesi i le falemaʻi. Atonu e sili atu le leaga nai lo se faʻatinoga faʻapitoa faʻapitoa e pei o matou, lea matou te iloa ai o le pito i luga 32 bits e tele lava ina tumau.

E iai la'u fesili lona lua. O le a le eseesega autu mai le InfluxDB?

E tele eseesega faavae. E tusa ai ma le faʻatinoga ma le faʻaaogaina o mafaufauga, o le InfluxDB i suʻega e faʻaalia ai le 10 taimi sili atu le faʻaaogaina o mafaufauga mo le maualuga o le cardinality time series, pe a tele naua, mo se faʻataʻitaʻiga, miliona. Mo se faʻataʻitaʻiga, VictoriaMetrics e faʻaaogaina le 1 GB i le miliona laina faʻamalosi, ae faʻaaogaina e InfluxDB le 10 GB. Ma o se eseesega tele lena.

O le eseesega taua lona lua o le InfluxDB o loʻo i ai gagana fesili uiga ese - Flux ma InfluxQL. Latou te le faigofie tele mo le galulue faatasi ma faasologa taimi faatusatusa i PromQL, lea e lagolagoina e VictoriaMetrics. PromQL ose gagana fesili mai Prometheus.

Ma o le isi eseesega o le InfluxDB ei ai se faʻataʻitaʻiga faʻamatalaga uiga ese, lea e mafai ai e laina taʻitasi ona teuina ni fanua ma se seti o pine eseese. O nei laina ua toe vaevaeina i ni laulau eseese. O nei fa'alavelave fa'aopoopo e fa'alavelaveina ai galuega mulimuli ane ma lenei fa'amaumauga. E faigata ona lagolagoina ma malamalama.

I VictoriaMetrics e sili atu ona faigofie mea uma. O iina, o fa'asologa o taimi ta'itasi o se taua-taua. O le tau o se seti o togi - (timestamp, value), ma o le ki o le seti label=value. E leai se eseesega i le va o fanua ma fua. E faʻatagaina oe e filifili soʻo se faʻamatalaga ona tuʻufaʻatasia, faʻaopoopo, toesea, faʻateleina, vaevae, e le pei o le InfluxDB lea e le o faʻatinoina ai faʻatusatusaga i le va o laina eseese e pei ona ou iloa. E tusa lava pe faʻatinoina, e faigata, e tatau ona e tusia le tele o code.

E i ai sa'u fesili e faamanino ai. Na ou malamalama saʻo o loʻo i ai se ituaiga o faʻafitauli na e talanoa i ai, o lenei faʻailoga faʻafefeteina e le fetaui ma le mafaufau, o lea o loʻo i ai le vaeluaga iina?

Muamua, na ou faʻaalia se faʻatinoga faʻavalevalea o se faʻailoga faʻafefe i luga o se faʻafanua masani Go. O lenei fa'atinoga e le talafeagai mo fa'amaumauga aua e le'o fa'asaoina le fa'asinomaga fa'aliliu i le tisiki, ma e tatau ona fa'asaoina le fa'amaumauga i le tisiki ina ia maua pea nei fa'amaumauga pe a toe amata. I lenei faʻatinoga, pe a e toe amataina le talosaga, o le a mou atu lau faʻasino igoa. Ma o le ae leiloa le avanoa i faʻamatalaga uma ona o le a le mafai ona e mauaina.

Talofa! Faafetai mo le lipoti! O lo'u igoa o Pavel. Ou te sau mai Wildberries. E i ai ni a'u fesili mo oe. Fesili muamua. E te manatu afai na e filifilia se isi mataupu faavae i le fausiaina o le fausaga o lau talosaga ma vaeluaina faʻamaumauga i le aluga o taimi, atonu o le a mafai ona e faʻafesoʻotaʻi faʻamaumauga pe a suʻe, e faʻavae i luga o le mea moni e tasi le vaeluaga o loʻo i ai faʻamatalaga mo le tasi vaitaimi, o lona uiga, i le taimi e tasi ma e le tatau ona e popole i le mea moni o au vaega e salalau ese? Fesili numera 2 - talu ai o loʻo e faʻatinoina se algorithm tutusa ma bitset ma isi mea uma, atonu na e taumafai e faʻaaoga faatonuga o le gaosiga? Masalo na e fa'ata'ita'iina ia fa'ata'ita'iga?

O le a ou taliina le lona lua i le taimi lava lena. Tatou te lei oo i lena tulaga. Ae afai e tatau ai, o le a tatou oo i ai. Ma o le mea muamua, o le a le fesili?

Na e talanoaina ni vaaiga se lua. Ma latou fai mai na latou filifilia le lona lua ma se faʻatinoga sili atu ona faigata. Ma latou te le fiafia i le mea muamua, lea e vaeluaina ai faʻamaumauga i le taimi.

Ioe. I le tulaga muamua, o le aofaʻi atoa o le faʻasinomaga o le a sili atu, aua i vaeluaga taʻitasi e tatau ona matou teuina faʻamatalaga faʻalua mo na faasologa o taimi e faʻaauau i nei vaega uma. Ma afai e laʻititi lau faʻasologa faʻasologa o taimi, o lona uiga o le faasologa lava e tasi e faʻaaogaina i taimi uma, i le tulaga muamua o le a sili atu le tele o le tele o avanoa o loʻo nofoia pe a faʻatusatusa i le tulaga lona lua.

Ma o lea - ioe, taimi vaeluaga o se filifiliga lelei. Faʻaaogaina e Prometheus. Ae o Prometheus e iai se isi faʻafitauli. Pe a tuʻufaʻatasia nei vaega o faʻamaumauga, e manaʻomia ona teu i le manatua meta faʻamatalaga mo igoa uma ma faʻasologa taimi. O le mea lea, afai o vaega o faʻamaumauga o loʻo tuʻufaʻatasia e tetele, ona faʻateleina lea o le faʻaaogaina o mafaufauga i le taimi o le tuʻufaʻatasia, e le pei o VictoriaMetrics. Pe a tuʻufaʻatasia, e le faʻaumatia e VictoriaMetrics le manatua; naʻo ni nai kilobytes e faʻaumatia, tusa lava po o le a le tele o faʻamaumauga tuʻufaʻatasia.

O le algorithm o loʻo e faʻaogaina e faʻaogaina ai le manatua. E fa'ailogaina fa'asologa o taimi o lo'o iai fa'atauga. Ma o le auala lea e te siakiina ai le faʻatasi o le auai i le tasi faʻamaumauga ma le isi. Ma e te malamalama pe na tupu se vaeluaga pe leai. E masani lava, o fa'amaumauga e fa'atino ai pupuu ma fa'ata'ita'i e teu ai a latou mea o lo'o iai nei ma fa'atautaia fa'amaumauga fa'avasega ona o le lavelave faigofie o nei gaioiga.

Aisea tatou te le fa'aogaina ai fa'ailo e fa'asalalau fa'amaumauga?

Ioe.

Matou te teuina laina faʻavasega i LevelDB poʻo le mergeset. E mafai ona tatou fa'agaoioi le pupuu ma su'e le fetaulaiga. Aisea tatou te le faaaogaina ai? Aua e tuai. Aua o le fa'auiga o lona uiga e tatau ona e vala'au se galuega mo laina ta'itasi. Ole telefoni ole galuega ole 5 nanoseconds. Ma afai e iai sau 100 laina, ona foliga mai lea tatou te faʻaaluina le afa sekone naʻo le valaʻau i le galuega.

E i ai se mea faapena, ioe. Ma la'u fesili mulimuli. Atonu e foliga ese le fesili. Aisea e le mafai ai ona faitau uma faʻasalalauga manaʻomia i le taimi e oʻo mai ai faʻamaumauga ma faʻasaoina i latou i le pepa manaʻomia? Aisea e teu ai le tele o voluma i nisi faiga e pei o VictoriaMetrics, ClickHouse, ma isi, ona faʻaalu ai lea o le tele o taimi ia i latou?

O le a ou tuuina atu se faataitaiga e faamanino atili ai. Se'i tatou fai atu pe fa'afefea ona galue se tama'i meata'alo saosaoa? E fa'amauina le mamao na e malaga ai, fa'aopoopo i taimi uma i le tau e tasi, ma le taimi lona lua. Ma vaeluaina. Ma maua averesi saoasaoa. E mafai ona e faia i le mea lava e tasi. Fa'aopoopo fa'amatalaga talafeagai uma ile lele.

Ua lelei, ua ou malamalama i le fesili. O lau faataitaiga e i ai lona tulaga. Afai e te iloa aggregates e te manaʻomia, o lona uiga o le faʻatinoga sili lea. Ae o le faʻafitauli o le faʻasaoina lea e tagata o nei metrics, o nisi faʻamatalaga i le ClickHouse ma latou te leʻi iloa pe faʻafefea ona latou faʻapipiʻiina ma faʻamamaina i latou i le lumanaʻi, o lea e tatau ai ona latou faʻasaoina uma faʻamatalaga mata. Ae afai e te iloa e te manaʻomia le faʻatusatusaina o se mea i le averesi, aisea la e te le faʻatatauina ai nai lo le teuina o se vaega o tau mataʻutia iina? Ae na'o le mea lea pe afai e te iloa tonu le mea e te mana'omia.

Ile auala, o fa'amaumauga mo le teuina o fa'asologa o taimi e lagolagoina le faitauina o fa'apotopotoga. Mo se faʻataʻitaʻiga, e lagolagoina e Prometheus tulafono pu'eina. O lona uiga, e mafai ona faia lenei mea pe a e iloa po'o a iunite e te mana'omia. VictoriaMetrics e le o iai i le taimi nei, ae e masani lava e muamua i le Prometheus, lea e mafai ai ona faia lenei mea i tulafono toe faʻatulagaina.

Mo se faʻataʻitaʻiga, i laʻu galuega talu ai na ou manaʻomia le faitauina o le numera o mea na tutupu i se faʻamalama faʻasolo i le itula mulimuli. O le faʻafitauli e tatau ona ou faia se faʻatinoga masani i Go, o lona uiga o se tautua mo le faitauina o lenei mea. O lenei auaunaga na iu lava ina le taua, aua e faigata ona fuafua. E mafai ona faigofie le faʻatinoga pe afai e te manaʻomia le faitauina o ni faʻasalalauga i taimi faʻatulagaina. Afai e te manaʻo e faitau mea na tutupu i se faʻamalama faʻafefe, ona le faigofie lea e pei ona foliga mai. Ou te manatu e leʻi faʻatinoina lenei mea i le ClickHouse poʻo i faʻamaumauga taimi, aua e faigata ona faʻatinoina.

Ma le isi fesili. Sa na ona matou talanoa e uiga i le averesi, ma sa ou manatua sa i ai se mea e pei o le Graphite ma le Carbon backend. Ma sa ia iloa le faʻafefeteina o faʻamatalaga tuai, o lona uiga, tuʻu le tasi mata i le minute, tasi le itula i le itula, ma isi. ia manifinifi . Ae le lagolagoina e Prometheus ma VictoriaMetrics lenei galuega. Ua fuafua e lagolagoina? Afai e leai, aisea e leai ai?

Faafetai mo le fesili. O matou tagata fa'aoga latou te fesili i lea taimi ma lea taimi. Latou te fesili mai po o afea o le a matou faʻaopoopoina ai le lagolago mo le faʻaititia. E tele fa'afitauli iinei. Muamua, e malamalama tagata uma downsampling se mea e ese: e mana'o se tasi e maua so'o se fa'ailoga i se va'aiga, e mana'o se tasi i le maualuga, la'ititi, averesi tau. Afai e tele faiga e tusi faʻamaumauga i lau faʻamaumauga, ona le mafai lea ona e tuʻufaʻatasia uma. Atonu e mana'omia e faiga ta'itasi le fa'amama eseese. Ma e faigata ona faatino lea tulaga.

Ma o le mea lona lua o VictoriaMetrics, pei o ClickHouse, ua sili ona lelei mo le galue ma le tele o voluma o faʻamatalaga mataʻutia, ina ia mafai ai ona suo se piliona laina i lalo ifo o le sekone pe a fai e tele au 'au i lau masini. Va'aiga fa'asologa o taimi ile VictoriaMetrics - 50 points ile sekone ile 'au. Ma o lenei fa'atinoga e fa'atatau i 'au o lo'o iai. O lona uiga, afai e iai sau 000 cores, mo se faʻataʻitaʻiga, o le a e suʻeina le piliona togi i le sekone. Ma o lenei meatotino a VictoriaMetrics ma ClickHouse e faʻaitiitia ai le manaʻomia mo le faʻaitiitia.

O le isi vaega o le VictoriaMetrics e faʻapipiʻi lelei nei faʻamatalaga. Compression i le averesi i le gaosiga e mai le 0,4 i le 0,8 paita i le mata. O togi ta'itasi o se faailoga taimi + tau. Ma o loʻo faʻapipiʻiina i lalo ifo o le tasi le paita i le averesi.

Sergey. E i ai sa'u fesili. Ole a le aofa'i ole taimi ole pu'eina?

Tasi milisecond. Talu ai nei na matou faia ai se talanoaga ma isi tagata fa'atupu fa'amaumauga fa'asologa o taimi. O la latou taimi aupito maualalo e tasi le sekone. Ma i le Graphite, mo se faʻataʻitaʻiga, e tasi foi le sekone. I OpenTSDB e tasi foi le sekone. O le InfluxDB e iai le nanosecond sa'o. I VictoriaMetrics e tasi le millisecond, aua i Prometheus e tasi le millisecond. Ma o VictoriaMetrics na faʻavaeina muamua e avea ma teu mamao mo Prometheus. Ae o le taimi nei e mafai ona faʻasaoina faʻamaumauga mai isi faiga.

Fai mai le tagata na ou talanoa i ai o loʻo i ai le saʻo lona lua i le lua - e lava lena mo i latou aua e faʻalagolago i le ituaiga o faʻamaumauga o loʻo teuina i le faʻasologa o taimi. Afai o faʻamatalaga DevOps poʻo faʻamatalaga mai atinaʻe, lea e te aoina ai i vaeluaga o le 30 sekone, i le minute, ona lava lea o le saʻo lona lua, e te le manaʻomia se mea itiiti. Ma afai e te aoina mai nei faʻamatalaga mai faiga faʻatauvaʻa maualuga, ona e manaʻomia lea o le nanosecond saʻo.

Millisecond saʻo i VictoriaMetrics e talafeagai foi mo le DevOps case, ma e mafai ona fetaui mo le tele o mataupu na ou taʻua i le amataga o le lipoti. Pau lava le mea atonu e le talafeagai o faiga tau fefaʻatauaʻiga maualuga.

Fa'afetai! Ma le isi fesili. O le a le fetaui i le PromQL?

Fegalegaleaiga atoa i tua. VictoriaMetrics lagolago atoatoa PromQL. E le gata i lea, e faʻaopoopoina galuega faʻapitoa i le PromQL, lea e taʻua MetricsQL. O loʻo i ai se lauga i luga o le YouTube e uiga i lenei faʻalauteleina o galuega. Sa ou tautala i le Fonotaga Mataitu i le tautotogo i St. Petersburg.

Telegram auala VictoriaMetrics.

Na'o tagata fa'aigoaina e mafai ona auai i le su'esu'ega. Saini ese j, faʻamolemole.

O le a le mea e taofia ai oe mai le sui i VictoriaMetrics e avea ma au teu umi mo Prometheus? (Tusi i faʻamatalaga, o le a ou faʻaopopo i le palota))

  • 71,4%Ou te le faʻaaogaina Prometheus5

  • 28,6%Le iloa e uiga i VictoriaMetrics2

7 tagata fa'aoga na palota. 12 tagata fa'aoga na le fa'aaogaina.

puna: www.habr.com

Faaopoopo i ai se faamatalaga