Koa manangona metrika ianao. Tahaka ny antsika. Manangona metrika koa izahay. Mazava ho azy fa ilaina amin'ny raharaham-barotra. Androany isika dia hiresaka momba ny rohy voalohany amin'ny rafitra fanaraha-maso - mpizara fanangonan-tsonia mifanaraka amin'ny statsd
Avy amin'ny lahatsoratra teo aloha (
Fitakiana 1. Github, mpamorona ny tetikasa, dia nijanona tsy nanohana azy: namoaka patch sy fanamboarana, nanaiky ny anay ary (tsy ny anay ihany) PR. Tao anatin'ny volana vitsivitsy lasa izay (tany amin'ny Febroary-Martsa 2018), dia nitohy indray ny hetsika, saingy talohan'izay dia efa ho 2 taona ny fitoniana tanteraka. Ankoatra izay dia eo am-pamolavolana ny tetikasa
Fitakiana 2. Ny fahamarinan'ny kajy. Brubeck dia manangona sanda 65536 amin'ny fitambarany. Amin'ny toe-javatra misy antsika, ho an'ny metrika sasany, mandritra ny vanim-potoana fanangonana (30 segondra), dia mety hisy sanda maro kokoa ho tonga (1 amin'ny fara tampony). Vokatr'ity santionany ity dia toa tsy misy ilana azy ny sanda ambony indrindra sy ambany indrindra. Ohatra, toy izao:
Toy ny efa nisy
Ahoana no tokony ho izy
Noho io antony io ihany, dia matetika diso kajy ny vola. Ampidiro eto ny bug miaraka amin'ny mitsingevana 32-bit, izay amin'ny ankapobeny dia mandefa ny mpizara amin'ny segfault rehefa mahazo metrika toa tsy manan-tsiny, ary lasa tsara ny zava-drehetra. Ny bug, raha ny marina, dia tsy raikitra.
Ary farany, Mitaky X. Amin'ny fotoana anoratana dia vonona izahay hanolotra izany amin'ireo fampiharana statsd 14 mahery na latsaka izay hitanay. Alao sary an-tsaina fa nisy fotodrafitrasa tokana nitombo be ka tsy ampy intsony ny fanekena 4 tapitrisa MPS. Na dia mbola tsy nitombo aza izany, fa ny metrika dia efa zava-dehibe aminao fa na dia fohy, 2-3 minitra ao anaty tabilao dia mety ho lasa manakiana ary miteraka fahaketrahana tsy azo resena eo amin'ireo mpitantana. Koa satria asa tsy misy fisaorana ny fitsaboana ny fahaketrahana, dia ilaina ny vahaolana ara-teknika.
Voalohany, fandeferana fahadisoana, ka ny olana tampoka eo amin'ny mpizara dia tsy miteraka psychiatric zombie apocalypse ao amin'ny birao. Faharoa, ny scaling dia afaka manaiky mihoatra ny 4 tapitrisa MPS, tsy mihady lalina ao anatin'ny tambazotran'ny Linux ary mihamitombo "amin'ny sakany" amin'ny habeny ilaina.
Koa satria nanana toerana hanaovana scaling izahay, dia nanapa-kevitra ny hanomboka amin'ny fandeferana diso izahay. Β« MOMBA ! Fandeferana diso! Tsotra izany, vitantsika izany, β nieritreritra izahay ary nanangana mpizara 2, nanangana dika mitovy amin'ny brubeck tsirairay. Mba hanaovana izany, dia tsy maintsy mandika ny fifamoivoizana miaraka amin'ny metrika ho an'ny mpizara roa izahay ary manoratra ho an'izany mihitsy aza
Raha mieritreritra kely momba ny olana ianao ary mihady lanezy miaraka amin'ny angady, dia mety ho tonga ao an-tsainao ity hevitra mazava ity: mila statsd izay afaka miasa amin'ny fomba fizarana. Izany hoe, iray izay mampihatra ny fampifanarahana eo amin'ny nodes amin'ny fotoana sy ny metrika. "Mazava ho azy fa efa misy ny vahaolana toy izany," hoy izahay ary nankany amin'ny Googleβ¦. Ary tsy nahita na inona na inona izy. Rehefa avy nandalo ny antontan-taratasy ho an'ny statistika samihafa (
Ary avy eo dia nahatsiaro ny statsd "kilalao" - bioyino, izay nosoratana tao amin'ny Just for Fun hackathon (ny anaran'ny tetikasa dia noforonin'ny script talohan'ny nanombohan'ny hackathon) ary nahatsapa fa mila maika ny statsd manokana izahay. Hatao inona?
- satria vitsy loatra ny clones statsd eto amin'izao tontolo izao,
- satria azo atao ny manome ny tiana na akaiky ny fandeferana sy ny scalability irina (ao anatin'izany ny fampifanarahana ny metrika mitambatra eo amin'ny mpizara sy ny famahana ny olan'ny fandefasana fifandirana),
- satria azo atao ny manao kajy marina kokoa noho ny nataon'i brubeck,
- satria afaka manangona antontan'isa amin'ny antsipiriany bebe kokoa ianao, izay tsy nomen'i brubeck anay,
- satria nanana fahafahana aho nanao fandaharana manokana hyperperformance distributed scale laboratoara, izay tsy hamerina tanteraka ny maritrano ny hyperfor hafa mitovy ... eny, izany no izy.
Inona no hanoratana? Mazava ho azy, ao amin'ny Rust. Nahoana?
- satria efa nisy vahaolana prototype,
- satria ny mpanoratra ny lahatsoratra dia efa nahafantatra an'i Rust tamin'izany fotoana izany ary naniry mafy ny hanoratra zavatra ao anatiny ho famokarana miaraka amin'ny fahafahana mametraka izany amin'ny loharano misokatra,
- satria ny fiteny misy GC dia tsy mety amintsika noho ny toetran'ny fifamoivoizana voaray (saika amin'ny fotoana tena izy) ary saika tsy azo ekena ny fiatoana GC,
- satria mila fampisehoana ambony indrindra azo oharina amin'ny C ianao
- satria ny Rust dia manome antsika fifanandrifian-javatra tsy misy tahotra, ary raha nanomboka nanoratra azy tamin'ny C/C ++ isika, dia ho niharan'ny vulnerability bebe kokoa, ny fihoaran'ny buffer, ny toetry ny hazakazaka ary ny teny mampatahotra hafa noho ny brubeck.
Nisy koa ny fifamaliana taminβi Rust. Ny orinasa dia tsy manana traikefa amin'ny famoronana tetikasa ao Rust, ary ankehitriny dia tsy mikasa ny hampiasa izany amin'ny tetikasa lehibe ihany koa izahay. Noho izany, nisy ny tahotra mafy fa tsy hisy na inona na inona hitranga, saingy nanapa-kevitra ny haka vintana izahay ary nanandrana.
Nandeha ny fotoana...
Farany, taorian'ny fanandramana maro tsy nahomby, dia vonona ny dikan-teny voalohany miasa. Inona no nitranga? Izany no nitranga.
Ny node tsirairay dia mandray ny fitambaran'ny metrika azy manokana ary manangona azy ireo, ary tsy manangona metrika ho an'ireo karazana ilana ny fitambarany manontolo amin'ny fanangonana farany. Ny nodes dia mifamatotra amin'ny karazana protocol hidin-trano zaraina, izay ahafahanao misafidy eo amin'izy ireo ny hany tokana (eto izahay nitomany) izay mendrika ny handefasana metrika ho an'ilay Lehibe. Ity olana ity dia voavaha amin'izao fotoana izao
Ny fonosana UDP miaraka amin'ny metrika dia tsy mifandanja eo amin'ny nodes amin'ny fitaovan'ny tambajotra amin'ny alΓ lan'ny Round Robin tsotra. Mazava ho azy fa tsy manara-maso ny votoatin'ny fonosana ny fitaovana tambajotra ary noho izany dia afaka misintona fonosana mihoatra ny 4M isan-tsegondra, tsy lazaina intsony ny metrika izay tsy fantany akory. Raha raisinay fa tsy tonga indray mandeha isaky ny fonosana ny metrika, dia tsy mahita olana amin'ny fampisehoana amin'ity toerana ity izahay. Raha mianjera ny mpizara iray, dia hitan'ny fitaovana tambajotra haingana (ao anatin'ny 1-2 segondra) io zava-misy io ary esorina amin'ny fihodinana ilay mpizara nianjera. Vokatr'izany, ny node passive (izany hoe, tsy mpitarika) dia azo alefa sy vonoina saika tsy misy mahita ny fisintonana amin'ny tabilao. Ny ambony indrindra very dia ampahany amin'ny metrika tonga tamin'ny segondra farany. Ny fatiantoka tampoka / fanakatonana / famidin'ny mpitarika dia mbola hiteraka anomaliana kely (mbola tsy mifanaraka ny elanelana 30 segondra), fa raha misy fifandraisana eo amin'ny nodes dia azo ahena ireo olana ireo, ohatra, amin'ny fandefasana fonosana synchronization .
Kely momba ny rafitra anatiny. Ny fampiharana dia, mazava ho azy, multithreaded, fa ny rafitra kofehy dia tsy mitovy amin'ny ampiasaina amin'ny brubeck. Mitovy ny kofehy amin'ny brubeck - ny tsirairay amin'izy ireo dia tompon'andraikitra amin'ny fanangonana vaovao sy ny fanangonana. Ao amin'ny bioyino, mizara roa ny mpiasa: ireo tompon'andraikitra amin'ny tambajotra ary ireo tompon'andraikitra amin'ny fanangonana. Ity fizarana ity dia ahafahanao mitantana mora kokoa ny fampiharana miankina amin'ny karazana metrika: izay ilaina ny fanangonana mafonja, azonao atao ny manampy aggregators, izay misy fifamoivoizana amin'ny tambajotra, azonao atao ny manampy ny isan'ny tambajotra. Amin'izao fotoana izao, amin'ny mpizara anay dia miasa amin'ny tambajotra 8 izahay ary mikoriana 4.
Ny ampahany amin'ny fanisana (tompon'andraikitra amin'ny fanangonana) dia mankaleo. Ny buffers feno amin'ny fikorianan'ny tambajotra dia zaraina amin'ny fanisana tondra-drano, izay amboarina sy atambatra avy eo. Amin'ny fangatahana dia omena ny metrika handefasana any amin'ny nodes hafa. Izany rehetra izany, anisan'izany ny fandefasana angon-drakitra eo anelanelan'ny nodes sy ny fiaraha-miasa amin'ny Consul, dia atao asynchronously, mandeha amin'ny framework
Olana maro kokoa nandritra ny fampandrosoana no nateraky ny ampahany amin'ny tambajotra tompon'andraikitra amin'ny fandraisana metrika. Ny tanjona lehibe amin'ny fanasarahana ny tambajotra mikoriana amin'ny sampana misaraka dia ny faniriana hampihena ny fotoana lanin'ny fikorianan'ny iray tsy hamaky angona avy amin'ny socket. Nanjavona haingana ny safidy mampiasa UDP asynchronous sy recvmsg mahazatra: ny voalohany dia mandany CPU be mpampiasa-espace be loatra amin'ny fanodinana hetsika, ny faharoa dia mitaky fifandimbiasana contexte be loatra. Noho izany dia ampiasaina izao
fanamarihana
Amin'ny toe-javatra mahazatra, ny haben'ny buffer dia napetraka ho lehibe. Raha manapa-kevitra tampoka ny hanandrana ny lohamilina ianao, dia mety ho hitanao fa aorian'ny fandefasana metrika kely dia tsy ho tonga ao amin'ny Graphite izy ireo, mijanona ao amin'ny buffer stream stream. Raha hiasa miaraka amin'ny metrika vitsivitsy ianao dia mila mametraka ny bufsize sy ny haben'ny filaharana amin'ny sanda kely kokoa ao amin'ny config.
Farany, tabilao sasany ho an'ireo tia tabilao.
Statistika momba ny isan'ny metrika ho avy isaky ny mpizara: mihoatra ny 2 tapitrisa MPS.
Fanesorana ny iray amin'ireo node ary avereno mizara ny metrika ho avy.
Statistika momba ny metrika mivoaka: node iray ihany no mandefa foana - ny lehiben'ny fanafihana.
Ny antontan'isa momba ny fiasan'ny node tsirairay, amin'ny fiheverana ny lesoka amin'ny modules rafitra isan-karazany.
Ny antsipiriany momba ny metrika ho avy (nafenina ny anarana metrika).
Inona no kasaina hatao aminβizany rehetra izany manaraka? Mazava ho azy, manorata kaody, ozona ...! Ny tetikasa dia nokasaina ho open-source tany am-boalohany ary hitoetra ho toy izany mandritra ny androm-piainany. Ny drafitra avy hatrany dia ny fifindrana amin'ny dikan-tsarimihetsika manokana an'ny Raft, ny fanovana ny protocol peer ho mora kokoa, ny fampidirana antontan'isa anatiny fanampiny, karazana metrika vaovao, fanamboarana bug ary fanatsarana hafa.
Mazava ho azy fa mandray ny anjara birikiny aminβny fampandrosoana ny tetikasa ny rehetra: mamorona PR, Resaka, raha azo atao dia hamaly izahay, hanatsara, sns.
Raha izany no voalaza dia izay ihany ry reto, vidio ny elefantantsika!
Source: www.habr.com