VictoriaMetrics est ieiunium et scalabile DBMS ad notitias recondendas et processus in forma temporis seriei (monamentum constat ex tempore et statuto valores huic tempori respondentes, exempli gratia, per periodicum status sensoriis vel metri collectio).
Nomen mihi est Kolobaev Pavel. DevOps, SRE, LeroyMerlin, omnia codice similia sunt - omnia de nobis sunt: de me et de aliis conductoribus LeroyMerlin.
Nubes innititur in OpenStack. Parva ligamen ad technicam radar est.
Constructum est in hardware Kubernetes et in omnibus officiis affinibus ad OpenStack et logging.
Hoc schema in evolutione habuimus. Cum haec omnia elaboraremus, Prometheum haberemus operantem qui intra ipsum botrum K8s notitia reposuit. Ipso facto invenit quod opus est scalpendi et sub pedibus immittit, aspere loquendo.
Nos omnes notitias extra botrum Kubernetes movere debebimus, quia, si aliquid acciderit, quid et ubi intellegere debebimus.
Prima solutio est qua foederatione utimur cum Promethei tertiam partem habemus, cum ad botrum Kubernetes per foederationis mechanismum itur.
Sed hic sunt aliquae quaestiones parvae. In casu nostro, quaestiones inceperunt cum 250 metrice haberemus et cum quadraginta 000 metrice essent, intelleximus nos tali modo operari non posse. Augebamur scrape_timeout ad 400 seconds.
Cur hoc facere debemus? Prometheus incipit computare tempus ab initio saepei. Non refert quod notitia adhuc fluit. Si per hoc tempus determinatum data non mergitur et sessio per http non clauditur, sessio defecisse censetur et notitia in ipsum Prometheum non pervenit.
Quisque notum est graphis quod consequimur cum aliqua notitia deest. Cedulae scinduntur et nos hoc non laeti sumus.
Proxima optio duorum diversorum Promethei per eandem mechanismum foederationem nititur.
Sicut eas sumo nominatim. Hoc etiam adhiberi potest, sed procedere decrevimus.
Nunc ad has shards aliqualiter procedendum est. Potes accipere promxy, quod ad aream testae pergit et data multiplicat. Duo shards operatur sicut punctum unum aculeum. Hoc perfici potest per promxy, sed nimis difficile est.
Prima optio est ut volumus foederationem mechanismum relinquere quia tardissimum est.
Prometheus tincidunt diserte dixit " Guys, TimescaleDB alio utere quod metri tempus non sustinebimus." Non est hoc eorum negotium.
In charta scribimus quod extra exonerare adhuc opus est, ne omnia in uno loco congregentur.
Secundum incommodum est consumptio memoriae. Imo, intellego multos dicere gigabytas memoriae anno 2020 duobus denarium constare, sed tamen.
Nunc a dev et pred ambitu habemus. In dev id est de 9 gigabytis pro 350 metricis. In prod est 000 gigabytes et paulo plus 14 metrice. Eodem tempore, nostra retentio temporis tantum 780 minuta est. Hoc est malum. Et nunc quid dicam.
Calculum facimus, hoc est, una cum dimidio decies centena millia metri, et iam prope nos sumus, eo consilio, quo stadio 35-37 gigabytes memoriae consequimur. Sed iam 4 decies centena milia metri circiter 90 gigabytes memoriae requirunt. Hoc est, calculi formula a Prometheo tincidunt. Correlationem inspeximus et intelleximus quod duo decies centena millia solvere noluimus pro vigilantia servo.
Machinarum numerum non augebimus, sed etiam ipsae machinis virtualis vigilantes sumus. Quo magis machinis virtualis, eo magis metri varii generis, etc. peculiare incrementum botri nostri in terminis metri habebimus.
Orbis tractus, non omnia hic tam mala sunt, sed eam meliorem volo. Accepimus totalem gigabytarum centum 15 dierum, ex quibus 120 comprimuntur notitiae, 100 incompressae datae, sed semper minus desideramus.
Itaque unum punctum scribimus - haec est magna opum consumptio, quam adhuc salvare volumus, quia nolumus glomerationem nostram magnas opes consumere quam racemum nostrum, qui OpenStack administrat.
Plus est Promethei incommodum, quod nosmet ipsi notavimus, hoc certe est quaedam limitatio memoriae. Apud Prometheum, omnia hic sunt multo peiora, quia talia torquet. Limite in nauale usus etiam optio non est. Si subito RAF ceciderit, et gigabytes 20-30 sunt, fiet diutissime surgere.
Haec alia ratio est cur Prometheus nobis non sit idoneus, i.e., memoriam consummationis finire non possumus.
Tali consilio posset ascendere. Hoc schema nobis opus est ut botrum HA ordinandum. Volumus ut metrica nostra semper et ubique praesto sint, etiam si ministrans his metri fragoribus reponit. Et sic habebimus talem rationem construendi.
Hoc schema dicit nos duplicationem testae habebimus, et proinde duplicationem sumptibus facultatum consumptarum. Exiguum fere horizontaliter potest, sed tamen subsidii consummatio tartarea erit.
Incommodorum ea forma, qua scripsimus, pro nobis est;
- Imposuisti metri extrinsecus.
- Princeps subsidii consummatio.
- Non est modus consummationis memoriae.
- Ha.
Nos ipsi decrevimus nos a Prometheo ut tabularium facilitatem moveremus.
Additiones necessarias pro nobis notavimus quas nobis egeremus. Hoc:
- Hoc est promql firmamentum, quia multum iam Prometheo scriptum est: queries, summis.
- Et deinde habemus Grafana, quae iam plane eodem modo scripta est pro Prometheo ut a backend. Nolo Dashboards rescribere.
- Architectura HA normalem aedificare volumus.
- Sumptionem cuiuslibet facultatum volumus reducere.
- Est alia parva nuance. Varias nubes metrics systemata collectionis uti non possumus. Quid in his metricis adhuc incidet, nescimus. Et quoniam aliquid illuc volare potest, necesse est nos circumscribere collocatione loci.
Modicum fuit arbitrium. Omnia collegimus, quae experti sumus. Inspeximus paginam Promethei in sectione integratione, fasciculum articulorum lege, et quod ibi erat vidimus. Et nos ipsi VictoriaMetricam substituendi Prometheo elegimus.
Quare? Quod:
- Scit promql.
- Est architectonica modularis.
- Grafana mutationes non eget.
- Maxime autem probabiliter praebebunt reposita metrica in societate nostra ut ministerium, sic in antecessum ad restrictiones variarum generum quaerimus ut utentes omnibus facultatibus botri aliquo modo limitato uti possint, quia facultas est. quod erit multitudo.
Primam comparationem faciamus. Eumdem Prometheum intra botrum sumimus, extemum eum Prometheus adit. Add via remoteWrite VictoriaMetrics.
Reservationem statim faciam quam hic in CPU consummatione VictoriaMetrics leve incrementum deprehensus sum. VictoriaMetrics wiki narrat tibi quae parametri sunt optimi. Eos repressimus. Tabes CPU optime redegerunt.
In casu nostro, memoria consumptionis Promethei, quae in botro Kubernetes sita est, signanter non crevit.
Duos fontes notitiae eiusdem notitiae comparamus. Eadem apud Prometheum deesse videmus data. Omnia bene apud VictoriaMetrics.
Orbis tractus experimentum consequitur. At nos apud Prometheum 120 gigabytes totidem accepimus. In VictoriaMetrics iam 4 gigabytes per diem accipimus. Est paulo alia machinatio quam ea quae apud Prometheum videre solemus. Id est, notitia iam satis bene compressa per diem et semihoram. Bene meti sunt in die, media hora, non obstante quod notitia postea adhuc amittetur. Quam ob rem in orbis tractus servavimus.
Etiam nisi in memoria resource consummatio. In tempore tentationis, Prometheus in virtuali machina - 8 coros, 24 gigabytes direxit. Ferme omnia Prometheus comedit. OOM interfector cecidit in. Eodem tempore, nonnisi 900 metri activae in eum infundebantur. Hoc est circiter 000-25 metrice secundo.
VictoriaMetrics in dual-core virtualis machinae cucurrimus cum 8 gigabytis RAM. VictoriaMetrics ad bene operandum cursimus ut cum paucis rebus fiddling circum in machina 8GB curremus. In fine, VII gigabytes eam servavimus. at the same time, the speed delivery of content, i.e. metrics, was even higher than that of Prometheus.
Multo melius factus est CPU cum Prometheo comparatus. Hic Prometheus consumit 2,5 coros, et VictoriaMetrics tantum consumit 0,25 choros. Initio - 0,5 coros. Ut migrat, unum attingit nucleum, sed perquam rarissimum est.
In casu nostro, electio in VictoriaMetrics ob evidentes causas cecidit: pecuniam servare voluimus et fecimus.
Duo puncta statim transeamus – metri impositio et summa rerum consumptio. Et solum duo puncta quae adhuc nobis restant decernere debemus.
Hic reservationem statim dabo, VictoriaMetrics pro repositione metri pensamus. Sed quia verisimile maxime providebimus VictoriaMetrics pro omnibus Leroy reponendi, necesse est eos circumscribere qui hoc botro utemur, ut nobis illud non donent.
Modus mirabilis est, qui te per tempus, a volumine notitiarum et temporis executione circumscribere sinit.
Est etiam optima optio, quae memoriam consummationis finire sinit, inde ipsam aequilibrium invenire possumus, quod celeritatem operating normalem et adaequationem subsidii consummationem consequi sinit.
Minus unum punctum, i.e. transire punctum - memoriam consummationis limitare non potes.
In primis iterationibus probavimus VictoriaMetrics Single Node. Deinde ad VictoriaMetrics Versionem Cluster accedimus.
Hic liberam habemus manum ad diversa officia in VictoriaMetrics distrahendas secundum quid persequentur et quas facultates consument. Haec est solutio admodum flexibilis et opportuna. Hoc in nobis usi sumus.
Partes principales VictoriaMetrics in versione Cluster sunt vmstsorage. N numerus eorum esse potest. In nostro casu tantum eorum 2 sunt.
Et est vminsert. Procurator hic est qui nobis permittit: compone scissuras inter omnes schedulas quas de eo narravimus, et etiam permittit imaginem, i.e., tam sharding quam imaginem habebis.
Vminsert adstipulatur OpenTSDB, Graphite, InfluxDB et remotis a Prometheo protocolla.
Est etiam vmselect. Praecipuum eius munus est ad vmstoragium adire, ab eis datam accipere, datam hanc duplicare et clienti dare.
Res mira vmagent dicta. Vere amo nos. Permittit te prorsus ut Prometheo configurare, et tamen omnia prorsus Prometheo facere. Hoc est, metri ex diversis rebus et officiis colligit et ad vminsert mittit. Tunc omnia ex te pendent.
Aliud magnum servitium est vmalert, quod permittit ut VictoriaMetrics in tergum uteris, notitias processionaliter ab vminsert accipias et ad vmselectas mitte. Procedit ipsis summis, necnon regulis. In summis, per intentum accipimus vigilem.
Est wmauth component. Possumus vel non licet (hoc tamen non statuimus) ea uti systema auctoritatis pro multitenancia uvarum versionis utere. Promethei remotam scripturam sustinet et auctorizare potest in domicilio vel potius in secunda parte eius, ubi scribere potes vel non potes.
Est etiam vmbackup, vmrestore. Hoc est in essentia, restitutio et tergum omnium notitia. Potest facere S3, GCS, file.
Prima iteratio botri nostri per quarentenam facta est. Illo tempore nulla figura erat, sic iteratio nostra ex duobus racemis distinctis et independentibus constabat, in quas notitias per remotissimas notas accepimus.
Reservationem hic faciam quod, cum ex VictoriaMetrics Single Node ad VictoriaMetrics Versionem Cluster transivimus, adhuc iisdem consumptis opibus mansimus, i.e., praecipua memoria est. Haec fere notitia nostra, i.e., subsidiorum consumptio, distributa est.
Replica iam hic adiecta est. Haec omnia in unum botrum magnum comparavimus. Omnis nostra notitia et sharded et replicatur.
Totus botrus habet puncta N aculeos, id est Prometheus potest data per HAPROXY addere. Hic habemus hunc aculeum. Et per hoc aculeum inire potes ex Grafana.
In casu nostro, HAPROXY solus portus est qui procuratores eligunt, interserunt et alia officia intra hunc botrum portantur. In casu nostro, impossibile erat unam electronicam facere, plura puncta facere debebamus, quia machinae ipsae virtuales in quibus VictoriaMetrics botrus decurrit in diversis zonis eiusdem nubis provisoris, i.e. non intra nostram nubem, sed extra .
alerting habemus. Utimur. Adtentori utimur ex Prometheo. Opsgenie et telegrapho utimur ad alveum partus acris. In Telegram infundunt ex dev, fortasse aliquid ex iaculo, sed plerumque aliquid statisticum, a mechanicis necessarium. Est et Opsgenie critica. Harum sunt vocat, incidunt, amet.
Aeterna quaestio: "Quis vigilantia monitores?" In nobis, magna adipiscing ipsum monitores, quia vmagent in unaquaque node utimur. Et cum nodi nostri per diversa centra eiusdem provisoris data distribuantur, singulae notitiae centrum suum alveum suum habeant, sui iuris sunt, et etiam si scissura cerebri pervenerit, adhuc summis accipiemus. Imo plura ex eis erunt, sed melius est plus quam nullum accipere.
Indicem nostrum finimus cum HA exsecutione.
Porro experientiam notare velim cum VictoriaMetrics communitatis communicandi. Contigit valde positivum. guys sunt responsuri. In omnem causam oblatam nituntur introspicere.
Coepi quaestiones in GitHub. Ita celerrime statuuntur. Plures quaestiones duae sunt quae omnino clausae non sunt, sed iam videre possum e codice qui in hac directione opus est comparatum.
Praecipuus dolor mihi in iterationibus fuit quod si nodi includam, tunc primum 30 secundis vminsert non intellegere potuit nullum esse backend. Hoc iam placuit. Et ad litteram in secundo vel altero, notitia sumitur ab omnibus reliquis nodis, et petitio sistit exspectationem nodi absentis.
Aliquando voluimus VictoriaMetrics esse operator VictoriaMetrics. Expectavimus eum. Nunc actuose fabricam fabricamus pro VictoriaMetrics operante ut omnia praecepta prae- calculandi, Promethei etc. capiamus, quia regulas quae cum Prometheo operante veniunt, actuose utemur.
Propositiones ad botrum exsequendum emendandae sunt. supra delineavi.
Ut et egestas ipsum, eget volutpat est. In casu nostro, downsampling solum requiritur ad trends videndos. Dure loquendo, una metrica interdiu mihi sufficit. Haec trends requiruntur ad annum, tres, quinque, decem annos. Et unius pretii metrici satis est.
- Novimus dolorem, ut aliquos e collegis nostris, cum Prometheo utens.
- VictoriaMetrics pro nobis elegimus.
- Bene librat utrumque perpendiculariter et horizontaliter.
- Possumus varias partes distribuere ad diversos numeros nodis in botro, limitare per memoriam, addere memoriam, etc.
Domi nos utemur VictoriaMetrics quod re vera probaverunt. Hoc est quod fuit et quod factum est.
A duobus QR codicibus VictoriaMetrics chat, contactus mei, LeroyMerlin technica radar.
Source: www.habr.com