{"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\/sl\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","title":{"rendered":"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Predlagam, da se seznanite z razlago poro\u010dila Romana Havronenka \"ExtendedPromQL\".<\/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=\"Predvajaj video\" 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 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/54a175d9c74c90d9d313f8ff71476638.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kratko o meni. Ime mi je Roman. Delam v CloudFlare, \u017eivim v Londonu. Hkrati sem tudi vzdr\u017eevalec VictoriaMetrics.<br \/>\nIn sem avtor <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/clickhouse-grafana\">plugin za ClickHouse<\/a><\/noindex> za Grafano in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/chproxy\">ClickHouse-proxy<\/a><\/noindex> \u2013 to je majhen proxy za ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/fc1aa56b144def5db9fcee844d5016f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Za\u010deli bomo s prvim delom, ki se imenuje \u201eTe\u017eave pri prevodu\u201c, v katerem bom govoril o tem, da je vsak jezik ali celo samo na\u010din komunikacije zelo pomemben. Ker je to na\u010din, kako prenesete svoje misli drugi osebi ali sistemu, kako oblikujete poizvedbo. Ljudje na spletu razpravljajo o tem, kateri jezik je bolj\u0161i \u2013 java ali kak drug. Za sebe sem se odlo\u010dil, da je treba izbrati glede na nalogo, ker je to vse specifi\u010dno.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/ea21f52ba5c2d3507e0106715c4ab96d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Za\u010dnimo z za\u010detkom. Kaj je PromQL? PromQL je jezik poizvedb Prometheus. To je na\u010din, kako oblikujemo poizvedbe v Prometheusu, da pridobimo podatke o \u010dasovnih serijah.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/56b1ef4cc04defdffeea8b2666fdc354.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kaj so podatki o \u010dasovnih serijah? \u010ce prevedemo dobesedno, so to trije parametri. <\/p>\n<p><\/p>\n<p>To so:<\/p>\n<p><\/p>\n<ul>\n<li>Na kaj se osredoto\u010damo. <\/li>\n<li>Kdaj na to gledamo.<\/li>\n<li>In katero vrednost prikazuje. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/358a193e889204d28debe1b74b93df3a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u010ce si ogledamo to diagramo (ta diagrama je z mojega telefona in prikazuje statistiko mojih korakov), lahko hitro odgovorimo na ta vpra\u0161anja. <\/p>\n<p><\/p>\n<p>Ogledujemo si korake. Vidimo vrednost in vidimo \u010das, ko na to gledamo. Tj. gledajo\u010d to diagramo je enostavno re\u010di, da sem v nedeljo prehodil pribli\u017eno 15.000 korakov. To so podatki o \u010dasovnih serijah. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/859299ee9d25a3419c869b3ed6db6e72.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zdaj pa jih \"razdelimo\" (pretvorimo) v drug model podatkov v obliki tabele. Tukaj imamo tudi tisto, na kar gledamo. Tu sem nekoliko dodal dodatne podatke, ki jih bomo imenovali meta-podatki, tj. to niso bili jaz, ampak dve osebi, recimo, Jay in Silent Bob. To je tisto, na kar gledamo; kaj to prikazuje in kdaj prikazuje to vrednost. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/fd7b48ea3c25b57c13605e84c4a52a2c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nZdaj poskusimo shraniti vse te podatke v bazo podatkov. Za primer sem vzel sintakso ClickHouse. Tukaj ustvarimo eno tabelo, ki se imenuje \u201eKoraki\u201c, tj. na kar gledamo. Tu je \u010das, ko gledamo to; kar prikazuje in nekateri meta-podatki, kjer bomo shranili, kdo sta: Jay in Silent Bob.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/bd01f9dc0b29d34aacbb8f012710a94f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In da bi to vse posku\u0161ali vizualizirati, bomo uporabili Grafano, ker je, prvi\u010d, to lepo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/9f573241e9ae32e31d6d0b879115970b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tudi ta vti\u010dnik bomo uporabili. Za to sta dva razloga. Prvi je, da sem ga napisal. In dobro vem, kako te\u017eko je pridobiti podatke o \u010dasovnih vrsticah iz ClickHouse, da jih prika\u017eemo v Grafani. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/29f2d72f9995afb54b23bb7b4230b840.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Prikazovali bomo v Graph Panel. To je najbolj priljubljena plo\u0161\u010da v Grafani, ki prikazuje odvisnost vrednosti od \u010dasa, zato potrebujemo le dva parametra.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/d820f63944ce0112660337b44a6c1f36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNapi\u0161imo najpreprostej\u0161i poizvedbo \u2014 kako prikazati statistiko korakov v Grafani, pri \u010demer te podatke hranimo v ClickHouse, v tabeli, ki smo jo ustvarili. Napisali bomo tak\u0161no preprosto poizvedbo. Izbiramo iz korakov. Izbiramo vrednost in \u010das teh vrednosti, torej iste tri parametre, o katerih smo govorili.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/ad7895105050178de5bc8a154da7e6e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In kot rezultat bomo dobili tak\u0161en grafikon. Kdo ve, zakaj je tako \u010duden?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/4a8108737e834cf35b7834be7b4db719.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pravilno, treba je razvrstiti po \u010dasu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/d37343c7a6a811e2012f1cbae4b9a5d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In na koncu bomo dobili nekoliko bolj\u0161i, a \u0161e vedno \u010duden grafikon. Kdo ve, zakaj? Pravilno, tam sta dva udele\u017eenca, in v Grafani predajamo dve \u010dasovni vrsti, ker \u010de ponovno pogledamo podatkovni model, vsaka \u010dasovna vrsta \u2013 to je edinstvena kombinacija imena in vseh klju\u010dnih vrednosti oznak.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/f19bf1a9f43ae8de22af6bf7b494902f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zato moramo izbrati dolo\u010denega \u010dloveka. Izberemo Jaya.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/b6a714d5d6ce4d4b27634da9414aa6f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In znova narisamo. Zdaj je grafikon bolj podoben resnici. Zdaj je to normalen grafikon in vse deluje dobro.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/2a93b4cd548239c9314c3283c5b9f488.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In verjetno veste, kako narediti pribli\u017eno isto, vendar v Prometheusu skozi PromQL. Pribli\u017eno tako. Malo la\u017eje. In \u0161e razdelili bomo vse. Vzeli smo korake. In filtriramo po Jayu. Tukaj ne navedemo, da moramo dobiti vrednost in ne izbiramo \u010dasa. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/5e080a1b88c156522af21bf00f3cd641.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zdaj poskusimo izra\u010dunati hitrost premikanja Jaya ali Silent Boba. V ClickHouse bomo morali narediti runningDifference, torej izra\u010dunati razliko med pari to\u010dk in jo deliti s \u010dasom, da dobimo natan\u010dno hitrost. Poizvedba bo videti pribli\u017eno takole.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/13102b04ba4cf0ff9c955c36801044d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In prikazal bo pribli\u017eno take vrednosti, torej Silent Bob ali Jay dela pribli\u017eno 1,8 korakov na sekundo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/1c328f99da6f160bdca23ab5f461bda8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In v Prometheusu veste, kako to storiti tudi. Mnogo la\u017eje, kot je bilo prej.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/a7145785dee9fafcc8ab573e920cb88e.jpeg\" style=\"display:block;margin: 0 auto;\" \/>In order to keep it simple to work with in Grafana, I created this wrapper that closely resembles PromQL. It's called Rate Macros, or whatever you wish to call it. In Grafana, you simply write 'rate', but deep down, it transforms into this large query. You don\u2019t even have to look at it; it's there in the background, saving you a lot of time, as writing such large SQL queries is always costly. You can easily make mistakes and then spend a long time trying to understand what's happening.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/511bb35469567b07412a10bb7c0b7312.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>This is a query that didn\u2019t even fit on one slide, so I had to split it into two columns. This is also a query in ClickHouse that does the same rate, but across both time series: Silent Bob and Jay, to have two time series displayed on our panel. And this is already quite complex, in my opinion. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/c9c1e6b58672069370153a151dceef3d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In Prometheus, this would be sum(rate). For ClickHouse, I created a separate macro called RateColumns, which looks like a query in Prometheus.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/9743c6a4b3de4aab7cfb5bd3fd50fcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>We looked at it and it seems that PromQL is quite cool, but it does have its limitations.<\/p>\n<p><\/p>\n<p>To so:<\/p>\n<p><\/p>\n<ul>\n<li>Limited SELECT.<\/li>\n<li>Borderline JOINs.<\/li>\n<li>No HAVING support.<\/li>\n<\/ul>\n<p><\/p>\n<p>If you\u2019ve worked with it for a long time, you know that sometimes it\u2019s very hard to do something in PromQL, while in SQL you can do almost anything, because all those options we discussed can be implemented in SQL. But would it be convenient to use? This leads me to think that the most powerful language isn\u2019t necessarily the most user-friendly.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/ec8786f1d72a1f8652fa631cdffc9c25.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Therefore, sometimes you need to choose a language based on the tasks at hand. It\u2019s like the battle between Batman and Superman. It\u2019s clear that Superman is stronger, but Batman was able to defeat him because he\u2019s more practical and knew exactly what he was doing.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/59e5cb7e54ee14705a9e8a36db6f5541.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>And the next part is Extending PromQL.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/b806acf0e6c7c416614d3fd49004b4be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Once again about VictoriaMetrics. What is VictoriaMetrics? It\u2019s a time series database, it's open-source, and we distribute both single and cluster versions. According to our benchmarks, it\u2019s the fastest on the market right now, and similarly for compression, meaning people report a compression of around 0.4 bytes per point, while Prometheus has about 1.2-1.4. <\/p>\n<p><\/p>\n<p>We support not only Prometheus. We also support InfluxDB, Graphite, OpenTSDB.<\/p>\n<p><\/p>\n<p>V nas lahko \"pi\u0161emo\", tj. lahko prena\u0161amo stare podatke. <\/p>\n<p><\/p>\n<p>Additionally, we work perfectly with Prometheus and Grafana, meaning we support the PromQL engine. In Grafana, you can simply change the Prometheus endpoint to VictoriaMetrics, and all your dashboards will function as they did. <\/p>\n<p><\/p>\n<p>Toda lahko uporabite dodatne funkcije, ki jih ponuja VictoriaMetrics.<\/p>\n<p><\/p>\n<p>Hitro bomo pregledali funkcije, ki smo jih dodali.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/78e9c0ce91fad48ab859fc2cf06a0689.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Omit interval param \u2013 lahko presko\u010dite parametre intervala v Grafani. Ko no\u010dete pridobiti \u010dudnih grafikonov pri pove\u010danju\/pomanj\u0161anju na nadzorni plo\u0161\u010di, je priporo\u010dljivo uporabiti spremenljivko <code>$__interval<\/code>. To je notranja spremenljivka Grafane, ki sama izbere obmo\u010dje podatkov. In VictoriaMetrics lahko sama razume, kak\u0161no to obmo\u010dje naj bi bilo. Ni vam treba posodabljati vseh va\u0161ih poizvedb. Bodo veliko la\u017eje.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/4094c7b8b5e6eef6134b5aa344ef7409.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Druga funkcija je referenciranje intervala. To spremenljivko lahko uporabite v svojih izrazih. Lahko jo mno\u017eite, delite, prena\u0161ate ali se na njej sklicujete.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/967ca6166e588987bd69c1e1953dca31.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nato dru\u017eina funkcij rollup. Funkcija rollup transformira katerokoli va\u0161o \u010dasovno serijo v tri lo\u010dene \u010dasovne serije. To so min, max in avg. Menim, da je to zelo uporabno, saj lahko v\u010dasih poka\u017ee kak\u0161ne outlierje (anomAli) in neto\u010dnosti. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/d5ff7d6f6ae8f7550434a3dbbca09b20.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In \u010de preprosto uporabljate irate ali rate, verjetno lahko spregledate nekatere primere, ko se \u010dasovna serija obna\u0161a druga\u010de, kot ste predvidevali. S to funkcijo je veliko la\u017eje opaziti, da je max zelo dale\u010d od avg.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/a4e9f0d246fa33459597f7140e09538c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nato spremenljivka default. Default pomeni, katero vrednost moramo izrisati v Grafani, \u010de trenutno nimamo \u010dasovne serije. Kdaj se to zgodi? Recimo, da izva\u017eate neko metriko o napakah. In imate tako odli\u010dno aplikacijo, da ko ste jo zagnali, nimate napak in niti v naslednjih treh urah ali celo dnevu. In imate nadzorne plo\u0161\u010de, ki prikazujejo razmerje med uspehi in napakami. Te vam ne bodo uspevale, ker nimate metrike napake. V default lahko navedete karkoli.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/cb4e23199194006186ac6907d2335cf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Keep_last_Value \u2013 obdr\u017ei zadnjo vrednost metrike, \u010de je ta izginila. \u010ce je Prometheus po naslednjem skriptu ne najde v petih minutah, bomo tukaj zapomnili njeno zadnjo vrednost in va\u0161i grafikoni ne bodo ve\u010d pokvarjeni.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/ca202f8a70f071cbd85b33b98cd28bb5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Scrape_interval \u2013 prikazuje, kako pogosto Prometheus zbira podatke o va\u0161i metriki, s kak\u0161no frekvenco. Tukaj lahko opazite preskok, na primer. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/9e9f43c7e9ef9a24dcc0b43673558046.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLabel replace \u2013 priljubljena funkcija. Menimo pa, da je nekoliko zapletena, ker sprejema kar pet argumentov. In morate ne samo pomniti pet argumentov, ampak tudi njihovo zaporedje.<br \/>\n<img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/adfee335e9329f6b03d6f8a42ad8e7b8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nZato, zakaj jih ne bi poenostavili? T. j. razdelili na manj\u0161e funkcije s pregledno sintakso.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/e928549205018e7405cc2a81970a8514.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In zdaj najbolj zanimivo. Zakaj menimo, da je to raz\u0161irjena PromQL? Zato, ker podpiramo skupne tabelarne izraze. Lahko skenirate QR kodo (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL\">https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL<\/a><\/noindex>), si ogledate povezave z zgledi, s predvajanjem, kjer lahko izvajate poizvedbe neposredno v VictoriaMetrics brez njene namestitve kar v brskalniku.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/33259a4bcd1a92f2cab6e943b73502ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In kaj to pravzaprav je? Ta poizvedba zgoraj \u2013 to je precej priljubljena poizvedba. Mislim, da v vsakem nadzornem pultu mnogih podjetij uporabljate enako filtracijo za vse. Obi\u010dajno tako. Ampak, ko morate dodati kak\u0161en nov filtr, morate posodobiti vsako plo\u0161\u010do, ali prenesti nadzorni pult, ga odpreti v JSON-u, narediti iskanje in zamenjati, kar tudi vzame \u010das. Zakaj ne bi shranili te vrednosti v spremenljivki in jo ponovno uporabili? To se mi zdi veliko bolj preprosto in razumljivo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/60aea73cf49934ef7d9a7928a8e2f8e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Na primer, ko moram posodobiti filtre v Grafani v vseh poizvedbah, medtem ko je nadzorni pult lahko ogromen ali pa jih je lahko ve\u010d. In kako bi \u017eelel re\u0161iti to te\u017eavo v Grafani?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/7cf9eb13219bbd9a5d3240bdda1839a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>To te\u017eavo re\u0161ujem tako: naredim commonFilter in v njem dolo\u010dim ta filtr, nato pa ga ponovno uporabim v poizvedbah. Ampak, \u010de bi to zdaj storili enako, ne bo delovalo, ker Grafana ne dovoljuje uporabe spremenljivk znotraj spremenljivk poizvedb. In to je nekoliko \u010dudno.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/0b7a40976cb3eeda370518a242f78708.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zato sem ustvaril tak\u0161no razli\u010dico, ki to omogo\u010da. In \u010de vas to zanima ali \u017eelite to funkcijo, nas podprite ali izrazite svoje nestrinjanje, \u010de vam ta ideja ni v\u0161e\u010d. <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 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/68e3a408ff2b554cdfd61a2da4c75bc0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Naprej o raz\u0161irjeni PromQL. Tukaj dolo\u010damo ne le spremenljivko, temve\u010d pravo funkcijo. Imenovali smo jo ru (uporaba virov). Ta funkcija sprejema proste vire, omejitev po virih in filtr. Sintaksa se zdi preprosta. In zelo enostavno je uporabiti to funkcijo in izra\u010dunati odstotek prostega pomnilnika, kar imamo. T. j. koliko pomnilnika imamo, kak\u0161na je omejitev in kako filtrirati. To se zdi veliko bolj priro\u010dno, \u010de bi to vse pisali, ponovno uporabljajo\u010d iste filtre, ker bi se to spremenilo v velik velik poizvedb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/4ca66e18ac665fe1038493709530b82b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In der Tat, hier ist ein Beispiel f\u00fcr eine sehr komplexe Anfrage. Es stammt aus dem offiziellen Dashboard von NodeExporter f\u00fcr Grafana. Aber ich habe Schwierigkeiten zu verstehen, was hier vor sich geht. Das hei\u00dft, ich verstehe es nat\u00fcrlich, wenn ich genauer hinsehe, aber die Anzahl der Klammern kann die Motivation, sich mit dem Geschehenen auseinanderzusetzen, sofort senken. Warum nicht alles einfacher und verst\u00e4ndlicher gestalten?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/50e01e7f0c1d03965b028266130413f0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zum Beispiel so, indem wir bedeutende Dinge oder Teile in Variablen hervorheben. Und danach k\u00f6nnen wir unsere grundlegenden Berechnungen durchf\u00fchren. Das sieht schon eher nach Programmierung aus, so etwas w\u00fcnsche ich mir in Zukunft in Grafana.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/81f957d89f97ebf686abdf969982d3ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hier ist ein weiteres Beispiel, wie wir es noch einfacher machen k\u00f6nnten, wenn wir bereits diese Funktion ru h\u00e4tten, die es direkt in VictoriaMetrics gibt. Dann w\u00fcrden Sie einfach den zwischengespeicherten Wert \u00fcbergeben, den Sie in der CTE deklariert haben.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/415302741e14232228353db6ec57a2e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ich habe bereits erw\u00e4hnt, wie wichtig es ist, die richtige Programmiersprache zu verwenden. In jeder Firma gibt es in Grafana wahrscheinlich ihre eigenen Abl\u00e4ufe. Vielleicht gew\u00e4hren Sie auch Ihren Entwicklern Zugang zu Grafana, und sie machen ihr eigenes Ding. Alle tun es irgendwie unterschiedlich. Ich w\u00fcnschte, es w\u00e4re irgendwie einheitlicher, d.h. auf einen gemeinsamen Standard reduziert.<\/p>\n<p><\/p>\n<p>Angenommen, Sie haben nicht nur Systemingenieure, vielleicht sogar Experten, DevOps oder SRE. M\u00f6glicherweise haben Sie Experten, die wissen, was Monitoring ist, die mit Grafana arbeiten, d.h. sie haben jahrelang Erfahrung damit und wissen genau, wie es richtig funktioniert. Sie haben es bereits hundertmal geschrieben und allen erkl\u00e4rt, aber irgendwie h\u00f6rt niemand zu.<\/p>\n<p><\/p>\n<p>Was w\u00e4re, wenn sie dieses Wissen direkt in Grafana integrieren k\u00f6nnten, damit andere Benutzer die Funktionen wiederverwenden k\u00f6nnen? Wenn es darum ginge, den prozentualen Anteil des freien Speichers zu berechnen, w\u00fcrden sie einfach die Funktion anwenden. Was w\u00e4re, wenn die Sch\u00f6pfer der Exporteure, zusammen mit ihrem Produkt, auch eine Sammlung von Funktionen bereitstellten, um mit ihren Metriken zu arbeiten, denn sie wissen genau, was diese Metriken sind und wie man sie richtig berechnet?<\/p>\n<p><\/p>\n<p>Das existiert tats\u00e4chlich nicht. Das habe ich selbst erstellt. Das ist die Unterst\u00fctzung von Bibliotheken in Grafana. Angenommen, die Jungs, die NodeExporter erstellt haben, haben das getan, was ich beschrieben habe. Und sie haben auch eine Sammlung von Funktionen bereitgestellt. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/755391ee41fd2abf4cb74fad17cecaf0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>To je, izgleda, tako. Povezujete to knji\u017enico v Grafani, vstopite v urejanje in zelo preprosto je v JSON-u napisano, kako delati s to metriko. To je nekak\u0161en nabor funkcij, njihovo opisovanje in v kaj se raz\u0161irjajo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/78a85dd219a421757807be895c173a39.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Menim, da bi to lahko bilo koristno, ker bi v Grafani pisali preprosto tako. In Grafana vam \"pove\", da je tukaj taka funkcija s tak\u0161ne knji\u017enice \u2013 pojdimo jo uporabiti. Zdi se mi, da bi bilo to zelo odli\u010dno.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/6e6b2b459c574d95d56251cd5fae5586.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Malce o VictoriaMetrics. Delamo veliko zanimivih stvari. Preberite na\u0161e \u010dlanke o kompresiji, o tekmovanjih z drugimi aplikacijami \u010dasovnih serij, na\u0161o razlago, kako delati s PromQL, ker je v tem \u0161e veliko novincev, ter o vertikalni raz\u0161irljivosti in nasprotovanju s Thanosom.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u201eExtendedPromQL\u201c \u2014 transkripcija izlaganja Romana Khavronenka\" src=\"\/wp-content\/uploads\/2020\/03\/562829a25ee6131c7eaed8c561c6927c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vpra\u0161anja:<\/p>\n<p><\/p>\n<p><em>Za\u010del bom svoje vpra\u0161anje s preprosto \u017eivljenjsko zgodbo. Ko sem prvi\u010d za\u010del uporabljati Grafano, sem napisal zelo prepri\u010dljiv poizvedbo dol\u017eine 5 vrstic. Na koncu je nastal zelo prepri\u010dljiv graf. Ta graf je skoraj od\u0161el v produkcijo. Vendar pa se je ob natan\u010dnej\u0161em pregledu izkazalo, da ta graf prikazuje absolutno neumnost, ki nima nobene povezave z resni\u010dnostjo, \u010deprav \u0161tevilke padajo v razpon, ki smo ga pri\u010dakovali. In moje vpra\u0161anje. Imamo knji\u017enice, imamo funkcije, kako pa pi\u0161emo teste za Grafano? Napisali ste zapleteno poizvedbo, od katere je odvisna poslovna odlo\u010ditev \u2013 naro\u010diti pravi stre\u017enik ali ne. In kako vemo, da ta funkcija, ki ri\u0161e graf, izgleda resni\u010dno. Hvala.<\/em><\/p>\n<p><\/p>\n<p>Hvala za vpra\u0161anje. Tukaj sta dve deli. Prva \u2013 imam ob\u010dutek, na podlagi svoje prakse, da ve\u010dina uporabnikov, ko gleda svoje grafe, ne razume, kaj jim prikazujejo. Nekako so ljudje zelo dobri v izmi\u0161ljevanju opravi\u010dila za katero koli anomalgijo, ki se pojavi na grafih, tudi \u010de je to napaka znotraj funkcije. In druga del \u2013 zdi se mi, da bi uporaba tak\u0161nih funkcij veliko bolje ustrezala re\u0161evanju va\u0161e te\u017eave, namesto da bi se vsak od va\u0161ih razvijalcev ukvarjal s svojim na\u010drtovanjem zmogljivosti in se zmotil s kak\u0161no verjetnostjo.<\/p>\n<p><\/p>\n<p><em>Kako preveriti?<\/em><\/p>\n<p><\/p>\n<p>Kako preveriti? Verjetno nikakor. <\/p>\n<p><\/p>\n<p><em>V obliki testa v Grafani.<\/em><\/p>\n<p><\/p>\n<p>Kaj ima s tem Grafana? Grafana ta poizvedba neposredno prevaja v vir podatkov.<\/p>\n<p><\/p>\n<p><em>Dodajanje malo v parametre.<\/em><\/p>\n<p><\/p>\n<p>Ne, v Grafani ni\u010d ne dodajajo. Obstajajo lahko GET-parametri, kot je na primer step. Ta izrecno ni naveden, vendar ga lahko prepi\u0161ete, lahko ga ne prepi\u0161ete, vendar se doda samodejno. Tukaj ne morete napisati testov. Mislim, da se ne bi smeli zanesti na Grafano kot vir resnice.<\/p>\n<p><\/p>\n<p><em>Hvala za poro\u010dilo! Hvala za kompresijo! Omenili ste mapping spremenljivke v grafu, da v Grafani ni mogo\u010de uporabiti spremenljivke znotraj spremenljivke. Razumete, o \u010dem govorim?<\/em><\/p>\n<p><\/p>\n<p>Da.<\/p>\n<p><\/p>\n<p><em>To je bilo sprva precej mu\u010dno, ko sem \u017eelel narediti alert v Grafani. Tam mora\u0161 narediti alert za vsakega gostitelja posebej. Ta zadeva, ki ste jo naredili, deluje za alerts v Grafani?<\/em><\/p>\n<p><\/p>\n<p>\u010ce Grafana ne obravnava spremenljivk druga\u010de, potem \u2013 ja, delovala bo. Moj nasvet pa je, da sploh ne uporabljate alertinga v Grafani, raje uporabite alertmanager.<\/p>\n<p><\/p>\n<p><em>Ja, uporabljam ga, ampak zdi se mi, da je to v Grafani la\u017eje nastaviti, hvala za nasvet!<\/em><\/p>\n<p>Izvor: <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 5.0.4 - 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;\" \/>\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\/sl\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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;\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/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\u00abExtendedPromQL\u00bb \u2014 razlaga poro\u010dila Romana Havronenka | ProHoster","description":"Predlagam, da se seznanite z razlago poro\u010dila Romana Havronenka \"ExtendedPromQL\"","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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;","og:url":"https:\/\/prohoster.info\/sl\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/75585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=75585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/75585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/75586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=75585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=75585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=75585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}