{"id":75585,"date":"2020-03-27T07:42:28","date_gmt":"2020-03-27T05:42:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko"},"modified":"2020-03-27T07:42:28","modified_gmt":"2020-03-27T05:42:28","slug":"extendedpromql-rasshifrovka-doklada-romana-havronenko","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","title":{"rendered":"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Pakun tutvuda Romani Havronenko ettekande \"ExtendedPromQL\" t\u00f5lgendusega<\/strong><\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"lWYaiagvmfw\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/lWYaiagvmfw\/hqdefault.jpg\" alt=\"Vaata videot\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/54a175d9c74c90d9d313f8ff71476638.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>L\u00fchidalt minust. Minu nimi on Roman. T\u00f6\u00f6dan CloudFlares, elan Londonis. Kuid olen ka VictoriaMetrics'i hooldaja.<br \/>\nJa olen autori <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/clickhouse-grafana\">ClickHouse plugina<\/a><\/noindex> Grafana jaoks ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/chproxy\">ClickHouse-proxy<\/a><\/noindex> - see on v\u00e4ike proxy ClickHouse'ile.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/fc1aa56b144def5db9fcee844d5016f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Alustame esimesest osast, mis kannab nime \u201eT\u00f5lkimise keerukused\u201d, kus r\u00e4\u00e4gin, et iga keel v\u00f5i isegi lihtsalt suhtluskeel on \u00e4\u00e4rmiselt oluline. See on viis, kuidas edastate oma m\u00f5tteid teisele inimesele v\u00f5i s\u00fcsteemile, kuidas koostate p\u00e4ringu. Internetis vaieldakse selle \u00fcle, milline keel on parem \u2013 java v\u00f5i m\u00f5ni muu. Olin otsustanud, et tuleb valida vastavalt \u00fclesandele, sest k\u00f5ik see on spetsiifiline.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/ea21f52ba5c2d3507e0106715c4ab96d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Alustame algusest. Mis on PromQL? PromQL on Prometheuse p\u00e4ringu keel. See on see, kuidas me koostame p\u00e4ringuid Prometheuses, et saada ajaseeria andmeid.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/56b1ef4cc04defdffeea8b2666fdc354.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mis on ajaseeria andmed? Kui r\u00e4\u00e4kida laiemalt, siis need koosnevad kolmest parameetrist. <\/p>\n<p><\/p>\n<p>Need on:<\/p>\n<p><\/p>\n<ul>\n<li>Millele me vaatame. <\/li>\n<li>Kui me sellele vaatame.<\/li>\n<li>Ja millist v\u00e4\u00e4rtust see n\u00e4itab. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/358a193e889204d28debe1b74b93df3a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kui vaadata seda diagrammi (see diagramm on minu telefonist, kus on n\u00e4ha minu sammude statistika), siis sellele k\u00fcsimustele on kiiresti vastata. <\/p>\n<p><\/p>\n<p>Vaadates samme. Me n\u00e4eme v\u00e4\u00e4rtust ja aega, kui me seda vaatame. See t\u00e4hendab, et seda diagrammi vaadates on lihtne \u00f6elda, et p\u00fchap\u00e4eval l\u00e4bis sain umbes 15 000 sammu. Need on ajaseriaali andmed. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/859299ee9d25a3419c869b3ed6db6e72.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00fc\u00fcd laske meil need \"murda\" (muuta) teise andmemudeli tabeli kujul. Siin on meil ka see, millele me vaatame. Olen siia lisanud m\u00f5ned t\u00e4iendavad andmed, mida nimetame metaandmeteks, st seda ei teinud mina, vaid kaks inimest, \u00fctleme, Jay ja Silent Bob. See on see, millele me vaatame; mida see n\u00e4itab ja millal see v\u00e4\u00e4rtust n\u00e4itab. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/fd7b48ea3c25b57c13605e84c4a52a2c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nN\u00fc\u00fcd proovime k\u00f5ik need andmed salvestada andmebaasi. N\u00e4iteks kasutasin ClickHouse s\u00fcntaksit. Siin loome \u00fche tabeli, mida nimetatakse \u201eSteps\u201d, st see, mida me vaatame. Siin on aeg, mil me seda vaatame; mida see n\u00e4itab ja mingid metaandmed, kus salvestame, kes see on: Jay ja Silent Bob.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/bd01f9dc0b29d34aacbb8f012710a94f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja et selleks, et neid k\u00f5iki visualiseerida, kasutame Grafanat, sest see on esiteks ilus.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/9f573241e9ae32e31d6d0b879115970b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kasutame ka seda plugina. Sellel on kaks p\u00f5hjust. Esiteks, kuna ma selle kirjutasin. Ja ma tean t\u00e4pselt, kui raske on time series andmeid ClickHouse'ist v\u00e4lja t\u00f5mmata, et n\u00e4idata need Grafanas. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/29f2d72f9995afb54b23bb7b4230b840.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kuvame seda Graph Panelis. See on k\u00f5ige populaarsem paneel Grafanas, mis n\u00e4itab v\u00e4\u00e4rtuste s\u00f5ltuvust ajast, seega vajame vaid kahte parameetrit.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/d820f63944ce0112660337b44a6c1f36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nK\u00e4ime l\u00e4bi k\u00f5ige lihtsama p\u00e4ringu \u2014 kuidas n\u00e4idata samme Graafikas, hoides neid andmeid ClickHouse'is, tabelis, mille me l\u00f5ime. Ja kirjutame sellise lihtsa p\u00e4ringu. Valime sammudest. Valime v\u00e4\u00e4rtuse ja valime nende v\u00e4\u00e4rtuste aja, st nende kolm parameetrit, millest me r\u00e4\u00e4kisime.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/ad7895105050178de5bc8a154da7e6e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja tulemuseks saame sellise grafi. Kes teab, miks see nii imelik v\u00e4lja n\u00e4eb?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/4a8108737e834cf35b7834be7b4db719.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00d5ige, tuleb sortida ajakohaselt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/d37343c7a6a811e2012f1cbae4b9a5d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja l\u00f5puks saame me parema, kuid siiski veidra graafiku. Kes teab, miks? \u00d5ige, seal on kaks osalejat, ja me anname Grafanas kaks time series, sest kui uurida andmemudelit veel kord, siis iga time series on ainulaadne kombinatsioon nimest ja k\u00f5igist v\u00f5tme-v\u00e4\u00e4rtuse labelitest.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/f19bf1a9f43ae8de22af6bf7b494902f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Seega peame valima konkreetse inimese. Valime Jay.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/b6a714d5d6ce4d4b27634da9414aa6f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja joonistame uuesti. N\u00fc\u00fcd n\u00e4eb graafik v\u00e4lja nagu t\u00f5de. N\u00fc\u00fcd on see normaalne graafik ja k\u00f5ik t\u00f6\u00f6tab h\u00e4sti.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/2a93b4cd548239c9314c3283c5b9f488.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja t\u00f5en\u00e4oliselt teate, kuidas umbes sama teha Prometheus'e kaudu PromQL-i abil. Umbes nii. Natuke lihtsam. Ja jagame selle k\u00f5ik \u00fcles. V\u00f5tsime Steps. Ja filtreerime Jay j\u00e4rgi. Me siin ei n\u00e4ita, et peame saama v\u00e4\u00e4rtuse ja me ei vali aega. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/5e080a1b88c156522af21bf00f3cd641.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00fc\u00fcd proovime arvutada Jay v\u00f5i Silent Bob'i liikumiskiirus. ClickHouse'is peame tegema runningDifference, st arvutama erinevuse punktide paaride vahel ja jagama need ajaga, et saada t\u00e4pne kiirus. K\u00fcsitlus n\u00e4eb v\u00e4lja umbes nii.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/13102b04ba4cf0ff9c955c36801044d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja see n\u00e4itab umbes selliseid v\u00e4\u00e4rtusi, st umbes 1,8 sammu sekundis teeb Silent Bob v\u00f5i Jay.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/1c328f99da6f160bdca23ab5f461bda8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja Prometheus'e puhul teate, kuidas seda ka teha. Oluliselt lihtsam, kui see oli varem.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/a7145785dee9fafcc8ab573e920cb88e.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Ja et see j\u00e4\u00e4ks samuti lihtsaks teha Grafanas, lisasin ma sellise katte, mis n\u00e4eb v\u00e4lja v\u00e4ga sarnane PromQL-iga. Seda nimetatakse Rate Macros v\u00f5i kuidas iganes te seda nimetate. Grafanas kirjutate lihtsalt \u201erate\u201c, kuid kuskil s\u00fcgaval see transformeeritakse selliseks suureks p\u00e4ringuks. Ja teil ei pea isegi vaatama, see on kuskil seal olemas, kuid s\u00e4\u00e4state hulga aega, kuna selliste suurte SQL-p\u00e4ringute kirjutamine on alati kulukas. Te v\u00f5ite kergesti eksida ja siis kaua m\u00f5elda, mis toimub.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/511bb35469567b07412a10bb7c0b7312.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja see on p\u00e4ring, mis ei mahtunud isegi \u00fchele slaidile ja pidin selle isegi kaheks veeruks jagama. See on samuti p\u00e4ring ClickHouse'is, mis teeb sama rate'i, kuid m\u00f5lema ajasarja jaoks: nii Silent Bobi kui ka Jay jaoks, et meil oleks paneelil kaks ajasarja. Ja see on juba v\u00e4ga keeruline, minu arvates. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/c9c1e6b58672069370153a151dceef3d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja Prometheuse puhul on see sum(rate). ClickHouse'i jaoks tegin ma eraldi makro, mis nimetatakse RateColumns, mis n\u00e4eb v\u00e4lja nagu p\u00e4ring Prometheuses.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/9743c6a4b3de4aab7cfb5bd3fd50fcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Me vaatasime ja n\u00e4iliselt on PromQL nii lahe, kuid tal on muidugi piiranguid.<\/p>\n<p><\/p>\n<p>Need on:<\/p>\n<p><\/p>\n<ul>\n<li>Piiratud SELECT.<\/li>\n<li>Piiratud JOIN.<\/li>\n<li>Puudub HAVING-toe.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ja kui olete selle s\u00fcsteemiga kaua t\u00f6\u00f6tanud, teate, et m\u00f5nikord on PromQL-is millegi tegemine v\u00e4ga keeruline, samas kui SQL-is on v\u00f5imalused praktiliselt piiritud, kuna k\u00f5ik need variandid, millest me just r\u00e4\u00e4kisime, oleks saanud SQL-is teostada. Kuid kas selline l\u00e4henemine oleks mugav? See viib mind m\u00f5ttele, et k\u00f5ige v\u00f5imsam keel ei pruugi alati olla k\u00f5ige mugavam.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/ec8786f1d72a1f8652fa631cdffc9c25.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Seet\u00f5ttu tuleb vahel valida keel vastavalt \u00fclesannetele. See on nagu Batmani ja Supermani kokkuv\u00f5te. Selge, et Superman on tugevam, kuid Batman suutis ta v\u00f5ita, sest ta oli praktilisem ja teadis t\u00e4pselt, mida teeb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/59e5cb7e54ee14705a9e8a36db6f5541.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>J\u00e4rgmine osa on PromQL-i laiendamine.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/b806acf0e6c7c416614d3fd49004b4be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Veel kord VictoriaMetrics'ist. Mis on VictoriaMetrics? See on ajajoonete p\u00f5hine andmebaas, mis on avatud allikaga, pakkume selle single ja cluster-versioone. Meie j\u00f5udluse testide p\u00f5hjal on see kiireim, mis turul praegu saadaval on, samuti kompressiooni poolest, see t\u00e4hendab, et inimesed toovad v\u00e4lja kompressiooni, mis on kuskil 0,4 baiti punkti kohta, samas kui Prometheusel on see 1,2-1,4. <\/p>\n<p><\/p>\n<p>Me toetame mitte ainult Prometheust. Me toetame ka InfluxDB-d, Graphitet ja OpenTSDB-d.<\/p>\n<p><\/p>\n<p>Meisse saab \"kirjutada\", st saab \u00fcle kanda vanu andmeid. <\/p>\n<p><\/p>\n<p>Meie toetame Prometheus ja Grafana, st me toetame PromQL mootorit. Grafanas saate lihtsalt vahetada Prometheuse l\u00f5pp-punkti VictoriaMetrics'i vastu ja k\u00f5ik teie armatuurlaudade t\u00f6\u00f6tab nagu varem. <\/p>\n<p><\/p>\n<p>Kuid saate kasutada ka t\u00e4iendavaid funktsioone, mida VictoriaMetrics pakub.<\/p>\n<p><\/p>\n<p>K\u00e4ime kiiresti \u00fcle funktsioonidest, mille me oleme lisanud.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/78e9c0ce91fad48ab859fc2cf06a0689.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Omit interval param \u2013 saate Grafanas vaheparameetrid vahele j\u00e4tta. Kui te ei soovi saada kummalisi graafikuid zoom-in\/zoom-out ajal paneelil, on soovitatav kasutada muutujat <code>{$__interval}<\/code>. See on Grafana sisemine muutuja ja see valib automaatselt andmete ulatuse. VictoriaMetrics suudab samuti aru saada, milline see vahemik olema peaks. Te ei pea k\u00f5iki oma p\u00e4ringuid uuendama. See on palju lihtsam.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/4094c7b8b5e6eef6134b5aa344ef7409.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Teine funktsioon on vahe viitamine. Saate seda vahemikku oma v\u00e4ljendites kasutada. Saate seda korrutada, jagada, edastada ja viidata sellele.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/967ca6166e588987bd69c1e1953dca31.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Edasi tuleme rollup funktsioonide pere juurde. Rollup funktsioon muundab teie ajaseeria kolme eraldi ajaseeriaks: min, max ja avg. Ma arvan, et see on v\u00e4ga mugav, kuna see v\u00f5ib m\u00f5nikord n\u00e4idata m\u00f5ningaid anomaaliaid ja ebat\u00e4psusi. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/d5ff7d6f6ae8f7550434a3dbbca09b20.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja kui te lihtsalt teete irate v\u00f5i rate, v\u00f5ite t\u00f5en\u00e4oliselt m\u00f6\u00f6da hiilida juhtumitest, kus ajasarjad k\u00e4ituvad teistsuguselt, kui te arvasite. Selle funktsiooniga on palju lihtsam n\u00e4ha, et max on keskmisest oluliselt k\u00f5rgem.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/a4e9f0d246fa33459597f7140e09538c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Edasi liikudes muutuja default. Default t\u00e4hendab, millist v\u00e4\u00e4rtust peame Grafanas kuvama, kui meil ei ole hetkel ajasarja. Millal see juhtub? Oletame, et eksportite mingit m\u00f5\u00f5dikut vigade kohta. Ja teil on nii \u00e4ge rakendus, et kui alustasite, ei ole teil vigu ja isegi j\u00e4rgmisel kolm tundi v\u00f5i isegi p\u00e4eval ei ole vigu. Ja teil on armatuurlaud, mis n\u00e4itab suhet success ja error vahel. Ja see n\u00e4itab teile mitte midagi, sest teil ei ole viga m\u00f5\u00f5dikut. Defaultis saate m\u00e4\u00e4rata, mida iganes soovite.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/cb4e23199194006186ac6907d2335cf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Keep_last_Value \u2013 salvestab m\u00f5\u00f5diku viimase v\u00e4\u00e4rtuse, kui see kaob. Kui Prometheus ei leia j\u00e4rgmisel skreipimisel seda 5 minuti jooksul, siis me salvestame selle viimase v\u00e4\u00e4rtuse ja teie graafikud ei purune uuesti.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/ca202f8a70f071cbd85b33b98cd28bb5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Scrape_interval \u2013 n\u00e4itab, kui tihti Prometheus kogub andmeid teie m\u00f5\u00f5diku kohta, kui suure sagedusega. Siit on v\u00f5imalik n\u00e4ha vahelej\u00e4tmisi n\u00e4iteks. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/9e9f43c7e9ef9a24dcc0b43673558046.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLabel replace \u2013 populaarne funktsioon. Kuid me arvame, et see on natuke keeruline, kuna see n\u00f5uab mitut argumenti. Ja peate mitte ainult meeles pidama 5 argumenti, vaid ka nende j\u00e4rjekorda.<br \/>\n<img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/adfee335e9329f6b03d6f8a42ad8e7b8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSeet\u00f5ttu, miks mitte muuta neid lihtsamaks? St. jagada v\u00e4iksemateks funktsioonideks, millel on arusaadav s\u00fcntaks.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/e928549205018e7405cc2a81970a8514.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja n\u00fc\u00fcd k\u00f5ige huvitavam. Miks me arvame, et see on extended PromQL? Sest toetame Common Table Expressions. Saate skaneerida QR-koodi (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL\">https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL<\/a><\/noindex>), vaadata linke n\u00e4idistega, m\u00e4nguplatsiga, kus saate p\u00e4ringuid otse VictoriaMetricsis teha ilma selle installimata, lihtsalt brauseris.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/33259a4bcd1a92f2cab6e943b73502ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja mis see siis on? See p\u00e4ring \u00fcleval \u2013 see on \u00fcsna populaarne p\u00e4ring. Ma arvan, et paljudes ettev\u00f5tetes igas armatuurlauduses kasutate sama filtrit k\u00f5ikjal. Niimoodi see tavaliselt on. Kuid kui peate lisama mingi uue filtri, siis peate uuendama iga paneeli v\u00f5i laadima armatuurlaua alla, avama JSON-is, tegema find replace, mis v\u00f5tab samuti aega. Miks mitte hoida seda v\u00e4\u00e4rtust muutuja sees ja uuesti kasutada? See tundub minu arvates palju lihtsam ja arusaadavam.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/60aea73cf49934ef7d9a7928a8e2f8e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e4iteks, kui mul on vaja Grafanas k\u00f5igis p\u00e4ringutes filtreid uuendada, samas kui juhtpaneel v\u00f5ib olla tohutu v\u00f5i neid v\u00f5ib olla mitu. Kuidas ma sooviksin seda probleem Grafanas lahendada?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/7cf9eb13219bbd9a5d3240bdda1839a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lahendan selle probleemi nii: teen commonFilter'i, kus m\u00e4\u00e4ratlen selle filtri, ja kasutan seda siis p\u00e4ringutes. Kuid kui teete n\u00fc\u00fcd nii, ei t\u00f6\u00f6ta see, sest Grafana ei luba teil kasutada muutujaid p\u00e4ringu sees. See on veidi kummaline.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/0b7a40976cb3eeda370518a242f78708.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Seet\u00f5ttu tegin variandi, mis lubab seda teha. Ja kui see teid huvitab v\u00f5i soovite sellist funktsiooni, siis toetage v\u00f5i andke negatiivne h\u00e4\u00e4letus, kui see idee teile ei meeldi. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grafana\/grafana\/pull\/16694\">https:\/\/github.com\/grafana\/grafana\/pull\/16694<\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/68e3a408ff2b554cdfd61a2da4c75bc0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Edasi PromQL laiendatud kohta. Siin me m\u00e4\u00e4ratleme mitte ainult muutuja, vaid lausa terve funktsiooni. Me nimetame selle ru (ressursside kasutus). See funktsioon v\u00f5tab vastu vabad ressursid, ressursi piirangu ja filtri. S\u00fcntaks n\u00e4ib olema \u00fcsna lihtne. Ja selle funktsiooni kasutamine, et arvutada meie vaba m\u00e4lu protsent, on v\u00e4ga lihtne. St, kui palju meil on m\u00e4lu, milline on piirang ja kuidas filtreerida. See n\u00e4eb v\u00e4lja palju mugavam, kui kirjutaksite k\u00f5ik need samad filtrid \u00fcmber, sest see muutuks suureks-puureks p\u00e4ringuks.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/4ca66e18ac665fe1038493709530b82b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja siin on n\u00e4ide sellisest suurest-puurest p\u00e4ringust. See p\u00e4rineb ametlikust NodeExporter'i armatuurlaudast Grafanas. Kuid ma saan vaid kehvasti aru, mis siin toimub. St, loomulikult saan aru, kui t\u00e4helepanelikult vaadata, aga sulgude arv v\u00f5ib koheselt v\u00e4hendada motivatsiooni m\u00f5ista, mis siin toimub. Ja miks mitte teha seda lihtsamaks ja selgemaks?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/50e01e7f0c1d03965b028266130413f0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e4iteks nii, eristades olulised asjad v\u00f5i osad muutujates. Ja siis teha oma p\u00f5histatistika. See juba sarnaneb programmeerimisele, see on see, mida ma tahaksin tulevikus Grafanas n\u00e4ha.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/81f957d89f97ebf686abdf969982d3ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Siin on teine n\u00e4ide, kuidas me saaksime seda veelgi lihtsamaks teha, kui meil juba oleks see funktsioon ru, ja see on juba olemas VictoriaMetricsis. Siis edastate lihtsalt vahem\u00e4lu v\u00e4\u00e4rtuse, mille olete CTE-s deklareerinud.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/415302741e14232228353db6ec57a2e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Olen juba r\u00e4\u00e4kinud, kui t\u00e4htis on kasutada \u00f5iget programmeerimiskeelt. Ja t\u00f5en\u00e4oliselt toimub iga\u00fches Grafanas midagi erilist. Ja t\u00f5en\u00e4oliselt annate ka oma arendajatele juurdep\u00e4\u00e4su Grafanale, ja arendajad teevad midagi oma moodi. K\u00f5ik nad teevad seda kuidagi erinevalt. Oleks tore, kui asja saaks \u00fchtlustada, st viia see \u00fchise standardini.<\/p>\n<p><\/p>\n<p>Oletame, et teil on isegi mitte ainult s\u00fcsteemiinsenerid, v\u00f5ib-olla on teil isegi eksperdid, devopsid v\u00f5i SRE-d. V\u00f5ib-olla on teil eksperdid, kes teavad, mis on j\u00e4lgimine, teavad, mis on Grafana, st nad on sellega aastaid t\u00f6\u00f6tanud ja nad teavad t\u00e4pselt, kuidas \u00f5igesti teha. Ja nad on juba seda 100 korda kirjutanud ja k\u00f5igile selgitanud, kuid mingil p\u00f5hjusel ei kuula keegi.<\/p>\n<p><\/p>\n<p>Aga mis siis, kui nad saaksid need teadmised otse Grafanasse panna, et teised kasutajad saaksid funktsioone taaskasutada? Ja kui oleks vaja arvutada vaba m\u00e4lu protsenti, siis nad lihtsalt kasutaksid funktsiooni. Aga mis siis, kui eksportijate loojad, koos oma tootega, pakkusid samuti funktsioonide komplekti, kuidas t\u00f6\u00f6tada nende m\u00f5\u00f5dikutega, sest nad teavad t\u00e4pselt, mis need m\u00f5\u00f5dikud on ja kuidas neid \u00f5igesti arvutada?<\/p>\n<p><\/p>\n<p>Seda t\u00f5epoolest ei ole. Selle tegin mina ise. See on olemasolev toetus raamatukogudele Grafanas. Oletame, et inimesed, kes tegid NodeExporter'i, tegid seda, mida ma r\u00e4\u00e4kisin. Ja pakkusid samuti funktsioonide komplekti. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/755391ee41fd2abf4cb74fad17cecaf0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>St see n\u00e4eb v\u00e4lja umbes nii. Te \u00fchendate selle raamatukogu Grafanas, l\u00e4hete redigeerimisele ja siin on v\u00e4ga lihtsalt JSONis kirjas, kuidas selle m\u00f5\u00f5dikuga t\u00f6\u00f6tada. St mingi funktsioonide komplekt, nende kirjeldus ja see, millesse nad lahti arenduvad.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/78a85dd219a421757807be895c173a39.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Minu arvates v\u00f5iks see olla kasulik, sest siis kirjutaksite Grafanas lihtsalt nii. Ja Grafana \"\u00fctleb\" teile, et on olemas selline funktsioon sellisest raamatukogust - kasutame seda. Mulle tundub, et see oleks v\u00e4ga \u00e4ge.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/6e6b2b459c574d95d56251cd5fae5586.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Veidi VictoriaMetricsist. Me teeme palju huvitavaid asju. Tutvuge meie artiklitega kompressioonist, meie v\u00f5istlustest teiste ajaseeria andmeprogrammide vastu, meie seletus, kuidas t\u00f6\u00f6tada PromQL-iga, kuna seal on palju algajaid, samuti vertikaalsest skaleeritavusest ja meie v\u00f5itlust Thanos'e vastu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 Roman Khavronenkole ettekande t\u00f5lgendus\" src=\"\/wp-content\/uploads\/2020\/03\/562829a25ee6131c7eaed8c561c6927c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00fcsimused:<\/p>\n<p><\/p>\n<p><em>Alustan oma k\u00fcsimust lihtsa eluloo n\u00e4itega. Kui ma esmakordselt Grafanat kasutasin, kirjutasin ma v\u00e4ga veenva viie rea p\u00e4ringu. Tulemusena sai v\u00e4ga veenev diagramm. See diagramm oleks peaaegu l\u00e4inud tootmisse. Kuid l\u00e4hemal vaatlusel selgus, et see diagramm n\u00e4itab absoluutset jama, mis pole kuidagi seotud reaalsusega, kuigi numbrid olid oodatud vahemikus. Ja minu k\u00fcsimus. Meil on raamatukogud, meil on funktsioonid, aga kuidas kirjutame me teste Grafana jaoks? Te olete kirjutanud keerulise p\u00e4ringu, millest s\u00f5ltub \u00e4riline otsus \u2013 tellida t\u00f5eline serverite konteiner v\u00f5i mitte. Ja kuidas me teame, et see funktsioon, mis joonistab diagrammi, sarnaneb t\u00f5ele. Ait\u00e4h.<\/em><\/p>\n<p><\/p>\n<p>Ait\u00e4h k\u00fcsimuse eest. Siin on kaks osa. Esiteks, mulle tundub, et enamik kasutajaid ei saa oma graafikutest aru. Mille p\u00f5hjuseks on see, et inimesed suudavad alati leida \u00f5igustusi k\u00f5igile anomalidele, mis graafikutes esinevad, isegi kui see on funktsiooni sisene viga. Teiseks, mulle tundub, et selliste funktsioonide kasutamine sobiks teie probleemi lahendamiseks paremini, kui et iga teie arendaja teeks oma v\u00f5imsusplaanimist ja eksiks mingi t\u00f5en\u00e4osusega.<\/p>\n<p><\/p>\n<p><em>Kuidas kontrollida?<\/em><\/p>\n<p><\/p>\n<p>Kuidas kontrollida? T\u00f5en\u00e4oliselt mitte kuidagi. <\/p>\n<p><\/p>\n<p><em>Grafanas testi vormis.<\/em><\/p>\n<p><\/p>\n<p>Mis on Grafana seos? Grafana edastab selle p\u00e4ringu otse DataSource'i.<\/p>\n<p><\/p>\n<p><em>Lisades veidi parameetreid.<\/em><\/p>\n<p><\/p>\n<p>Ei, Grafanas ei lisata midagi. Seal v\u00f5ivad olla GET-parameetrid, nagu n\u00e4iteks step. Seda ei m\u00e4\u00e4rata selgelt, kuid saate selle \u00fcle kirjutada v\u00f5i mitte, kuid see lisatakse automaatselt. Te ei kirjutage siia teste. Ma arvan, et ei tohiks Grafanale kui t\u00f5e allikale toetuda.<\/p>\n<p><\/p>\n<p><em>Ait\u00e4h ettekande eest! Ait\u00e4h kompressiooni eest! Te mainisite, et muutujate t\u00e4itmine graafikus ei toimi Grafanas, kas m\u00f5istate, millest ma r\u00e4\u00e4gin?<\/em><\/p>\n<p><\/p>\n<p>Jah.<\/p>\n<p><\/p>\n<p><em>See oli algselt peavalu, kui ma tahtsin Grafanas h\u00e4ireid seadistada. Seal tuleb h\u00e4ired seadistada iga hosti jaoks eraldi. Kas see asi, mida te tegite, t\u00f6\u00f6tab Grafanas h\u00e4irete jaoks?<\/em><\/p>\n<p><\/p>\n<p>Kui Grafana ei k\u00e4sitle muutujaid kuidagi teisiti, siis \u2013 jah, see t\u00f6\u00f6tab. Aga minu soovitus on mitte kasutada Grafanas h\u00e4irete seadistamist, teile oleks parem kasutada alertmanagerit.<\/p>\n<p><\/p>\n<p><em>Jah, ma kasutan seda, aga lihtsalt tundus, et Grafanas oli seadistamine lihtsam, aga ait\u00e4h n\u00f5uande eest!<\/em><\/p>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/494034\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e &quot;ExtendedPromQL&quot; \u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e \u043c\u043d\u0435. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 CloudFlare, \u0436\u0438\u0432\u0443 \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0435. \u041d\u043e \u0442\u0430\u043a\u0436\u0435 \u044f \u043c\u0435\u0439\u0442\u0435\u043d\u0435\u0440 VictoriaMetrics. \u0418 \u044f \u0430\u0432\u0442\u043e\u0440 ClickHouse \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f Grafana \u0438 ClickHouse-proxy \u2013 \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ClickHouse. \u041c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u00bb \u0438 \u0432 \u043d\u0435\u0439 \u044f \u0431\u0443\u0434\u0443 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":75586,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-75585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e &quot;ExtendedPromQL&quot; \u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e \u043c\u043d\u0435. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 CloudFlare, \u0436\u0438\u0432\u0443 \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0435. \u041d\u043e \u0442\u0430\u043a\u0436\u0435 \u044f \u043c\u0435\u0439\u0442\u0435\u043d\u0435\u0440 VictoriaMetrics. \u0418 \u044f \u0430\u0432\u0442\u043e\u0440 ClickHouse \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f Grafana \u0438 ClickHouse-proxy \u2013 \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ClickHouse. \u041c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u00bb \u0438 \u0432 \u043d\u0435\u0439 \u044f \u0431\u0443\u0434\u0443\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u00abExtendedPromQL\u00bb \u2014 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e &quot;ExtendedPromQL&quot; \u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e \u043c\u043d\u0435. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 CloudFlare, \u0436\u0438\u0432\u0443 \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0435. \u041d\u043e \u0442\u0430\u043a\u0436\u0435 \u044f \u043c\u0435\u0439\u0442\u0435\u043d\u0435\u0440 VictoriaMetrics. \u0418 \u044f \u0430\u0432\u0442\u043e\u0440 ClickHouse \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f Grafana \u0438 ClickHouse-proxy \u2013 \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ClickHouse. \u041c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u00bb \u0438 \u0432 \u043d\u0435\u0439 \u044f \u0431\u0443\u0434\u0443\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-27T05:42:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-27T05:42:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47\u201eExtendedPromQL\u201c \u2013 Rainer Khaavronenko ettekande t\u00f5lgendus | ProHoster","description":"Soovitan tutvuda Rainer Khaavronenko ettekande 'ExtendedPromQL' t\u00f5lgendusega. L\u00fchidalt minust. Minu nimi on Rainer. T\u00f6\u00f6tan CloudFlare'is, elan Londonis. Olen siiski ka VictoriaMetrics'i hooldaja ning olen ClickHouse'i plugina autor Grafanale ja ClickHouse-proxy \u2013 see on v\u00e4ike vaheproksi ClickHouse'i jaoks. Alustame esimesest osast, mis k\u00e4sitleb 'T\u00f5lkimise raskusi' ja selles k\u00e4sitlen.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u00abExtendedPromQL\u00bb \u2014 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e &quot;ExtendedPromQL&quot; \u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e \u043c\u043d\u0435. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 CloudFlare, \u0436\u0438\u0432\u0443 \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0435. \u041d\u043e \u0442\u0430\u043a\u0436\u0435 \u044f \u043c\u0435\u0439\u0442\u0435\u043d\u0435\u0440 VictoriaMetrics. \u0418 \u044f \u0430\u0432\u0442\u043e\u0440 ClickHouse \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f Grafana \u0438 ClickHouse-proxy \u2013 \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ClickHouse. \u041c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u00bb \u0438 \u0432 \u043d\u0435\u0439 \u044f \u0431\u0443\u0434\u0443","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-27T05:42:28+00:00","article:modified_time":"2020-03-27T05:42:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"75585","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:54:47","updated":"2022-09-28 07:46:53"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/75585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=75585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/75585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/75586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=75585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=75585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=75585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}