{"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\/hu\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","title":{"rendered":"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Javaslom, hogy ismerkedjen meg Roman Khavronenko \"ExtendedPromQL\" c\u00edm\u0171 jelent\u00e9s\u00e9nek \u00e9rtelmez\u00e9s\u00e9vel.<\/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=\"Vide\u00f3 lej\u00e1tsz\u00e1sa\" 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=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/54a175d9c74c90d9d313f8ff71476638.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>R\u00f6viden r\u00f3lam. A nevem Roman. A CloudFlare-n\u00e9l dolgozom, Londonban \u00e9lek. De a VictoriaMetrics karbantart\u00f3ja is vagyok.<br \/>\n\u00c9n vagyok a szerz\u0151. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/clickhouse-grafana\">ClickHouse pluginr\u00f3l.<\/a><\/noindex> a Grafana sz\u00e1m\u00e1ra \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/chproxy\">ClickHouse-proxy.<\/a><\/noindex> Ez egy kis proxy a ClickHouse sz\u00e1m\u00e1ra.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/fc1aa56b144def5db9fcee844d5016f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kezd\u00fcnk az els\u0151 r\u00e9sszel, amelynek c\u00edme \"A ford\u00edt\u00e1s neh\u00e9zs\u00e9gei\", \u00e9s ebben el fogom mondani, hogy b\u00e1rmely nyelv, vagy ak\u00e1r az egyszer\u0171 kommunik\u00e1ci\u00f3s nyelv rendk\u00edv\u00fcl fontos. Mert ez az, ahogyan \u00e1tadja a gondolatait egy m\u00e1sik embernek vagy rendszernek, ahogyan megfogalmazza a k\u00e9r\u00e9s\u00e9t. Az emberek az interneten vitatkoznak arr\u00f3l, hogy melyik nyelv jobb \u2013 a Java vagy valami m\u00e1s. \u00c9n \u00fagy d\u00f6nt\u00f6ttem, hogy a feladat alapj\u00e1n kell v\u00e1lasztani, mert minden speci\u00e1lis.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/ea21f52ba5c2d3507e0106715c4ab96d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kezdj\u00fck az elej\u00e9n. Mi az a PromQL? A PromQL a Prometheus lek\u00e9rdez\u0151 nyelve. Ez az, ahogyan lek\u00e9rdez\u00e9seket alkotunk a Prometheusban, hogy id\u0151beli sorozat adatokat kapjunk.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/56b1ef4cc04defdffeea8b2666fdc354.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mi az id\u0151beli sorozat adat? Ha sz\u00f3 szerint n\u00e9zz\u00fck, akkor h\u00e1rom param\u00e9tert jelent. <\/p>\n<p><\/p>\n<p>Ez pedig:<\/p>\n<p><\/p>\n<ul>\n<li>Ami a figyelm\u00fcnket felkelti. <\/li>\n<li>Mikor figyelj\u00fck ezt.<\/li>\n<li>\u00c9s milyen \u00e9rt\u00e9ket mutat. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/358a193e889204d28debe1b74b93df3a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ha megn\u00e9zz\u00fck ezt a diagramot (ez a diagram az \u00e9n telefonomr\u00f3l k\u00e9sz\u00fclt, ami a l\u00e9p\u00e9seim statisztik\u00e1j\u00e1t mutatja), akkor itt gyorsan v\u00e1laszolhatunk ezekre a k\u00e9rd\u00e9sekre. <\/p>\n<p><\/p>\n<p>A l\u00e9p\u00e9seket figyelj\u00fck. L\u00e1tjuk az \u00e9rt\u00e9ket, \u00e9s l\u00e1tjuk az id\u0151t, amikor ezt figyelj\u00fck. Teh\u00e1t, n\u00e9zve ezt a diagramot, k\u00f6nnyen megmondhatjuk, hogy vas\u00e1rnap k\u00f6r\u00fclbel\u00fcl 15 000 l\u00e9p\u00e9st tettem meg. Ez id\u0151beli sorozat adat. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/859299ee9d25a3419c869b3ed6db6e72.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Most pedig \"t\u00e9rk\u00e9pezz\u00fck fel\" (alak\u00edtsuk \u00e1t) \u0151ket egy m\u00e1sik adatmodellbe, t\u00e1bl\u00e1zatos form\u00e1ban. Itt is van, amire figyel\u00fcnk. Itt egy kicsit hozz\u00e1adtam tov\u00e1bbi adatokat, amelyeket metaadatoknak fogunk nevezni, azaz ez nem \u00e9n voltam, hanem k\u00e9t szem\u00e9ly, mondjuk Jay \u00e9s Silent Bob. Ez az, amire figyel\u00fcnk; mit mutat ez, \u00e9s mikor mutatja ezt az \u00e9rt\u00e9ket. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/fd7b48ea3c25b57c13605e84c4a52a2c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMost pr\u00f3b\u00e1ljuk meg t\u00e1rolni ezeket az adatokat egy adatb\u00e1zisban. P\u00e9ld\u00e1nak ok\u00e1\u00e9rt a ClickHouse szintaxis\u00e1t v\u00e1lasztottam. Itt l\u00e9trehozunk egy \"Steps\" nev\u0171 t\u00e1bl\u00e1zatot, amely az, amire figyel\u00fcnk. Itt van az id\u0151, amikor figyelj\u00fck; mit mutat, \u00e9s n\u00e9h\u00e1ny metaadat, ahol t\u00e1rolni fogjuk, hogy ki ez: Jay \u00e9s Silent Bob.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/bd01f9dc0b29d34aacbb8f012710a94f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c9s az\u00e9rt, hogy mindezt vizualiz\u00e1lni pr\u00f3b\u00e1ljuk, a Grafan\u00e1t fogjuk haszn\u00e1lni, mert egyr\u00e9szt gy\u00f6ny\u00f6r\u0171.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/9f573241e9ae32e31d6d0b879115970b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Haszn\u00e1lni fogjuk ezt a b\u0151v\u00edtm\u00e9nyt. K\u00e9t okb\u00f3l. Az els\u0151, mert \u00e9n \u00edrtam. \u00c9s pontosan tudom, milyen neh\u00e9z kinyerni az id\u0151beli adatokat a ClickHouse-b\u00f3l, hogy megjelen\u00edts\u00fck a Grafana-ban. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/29f2d72f9995afb54b23bb7b4230b840.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A Graph Panelban fogjuk megjelen\u00edteni. Ez a legn\u00e9pszer\u0171bb panel a Grafana-ban, amely az \u00e9rt\u00e9kek id\u0151beli alakul\u00e1s\u00e1t mutatja, \u00edgy mind\u00f6ssze k\u00e9t param\u00e9terre van sz\u00fcks\u00e9g\u00fcnk.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/d820f63944ce0112660337b44a6c1f36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00cdrjunk egy nagyon egyszer\u0171 lek\u00e9rdez\u00e9st \u2013 hogyan mutassuk meg a l\u00e9p\u00e9sstatisztik\u00e1t a Grafana-ban, \u00fagy, hogy ezeket az adatokat a ClickHouse-ban t\u00e1roljuk, abban a t\u00e1bl\u00e1zatban, amit l\u00e9trehoztunk. A k\u00f6vetkez\u0151 egyszer\u0171 lek\u00e9rdez\u00e9st \u00edrjuk. L\u00e9p\u00e9seket v\u00e1lasztunk. V\u00e1lasztjuk az \u00e9rt\u00e9ket \u00e9s az id\u0151t, teh\u00e1t ugyanazt a h\u00e1rom param\u00e9tert, amir\u0151l m\u00e1r besz\u00e9lt\u00fcnk.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/ad7895105050178de5bc8a154da7e6e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00cdgy az al\u00e1bbi grafikont fogjuk kapni. Tudja valaki, mi\u00e9rt annyira furcsa?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/4a8108737e834cf35b7834be7b4db719.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Igen, id\u0151ben kell rendezni.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/d37343c7a6a811e2012f1cbae4b9a5d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A v\u00e9geredm\u00e9ny m\u00e1r jobb, de m\u00e9g mindig furcsa grafikon. Valaki tudja, mi\u00e9rt? Igen, k\u00e9t r\u00e9sztvev\u0151 van, \u00e9s mi a Grafana-ban k\u00e9t id\u0151beli sorozatot adunk meg, mert ha \u00fajra megn\u00e9zz\u00fck az adatt\u00edpust, minden id\u0151beli sorozat egyedi kombin\u00e1ci\u00f3ja a n\u00e9vnek \u00e9s az \u00f6sszes kulcs-\u00e9rt\u00e9k c\u00edmk\u00e9nek.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/f19bf1a9f43ae8de22af6bf7b494902f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ez\u00e9rt ki kell v\u00e1lasztanunk egy konkr\u00e9t embert. Jay-t v\u00e1lasztjuk.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/b6a714d5d6ce4d4b27634da9414aa6f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Most \u00fajra megrajzoljuk. Most a grafikon m\u00e1r hasonl\u00edt az igazs\u00e1gra. Most ez egy norm\u00e1lis grafikon, \u00e9s minden j\u00f3l m\u0171k\u00f6dik.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/2a93b4cd548239c9314c3283c5b9f488.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Val\u00f3sz\u00edn\u0171leg tudja, hogyan csin\u00e1lja ugyanazt a Prometheusban a PromQL seg\u00edts\u00e9g\u00e9vel. K\u00f6r\u00fclbel\u00fcl \u00edgy. Egy kicsit egyszer\u0171bb. \u00c9s sz\u00e9t is bontjuk mindezt. A L\u00e9p\u00e9seket haszn\u00e1ltuk. \u00c9s Jay-re sz\u0171r\u00fcnk. Itt nem jelezz\u00fck, hogy az \u00e9rt\u00e9ket szeretn\u00e9nk, \u00e9s nem v\u00e1lasztjuk ki az id\u0151t. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/5e080a1b88c156522af21bf00f3cd641.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Most pr\u00f3b\u00e1ljuk meg kisz\u00e1m\u00edtani Jay vagy Silent Bob mozg\u00e1si sebess\u00e9g\u00e9t. A ClickHouse-ban fut\u00f3 k\u00fcl\u00f6nbs\u00e9get kell tenn\u00fcnk, azaz a pontp\u00e1rok k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9get kell kisz\u00e1m\u00edtanunk, \u00e9s azokat el kell osztanunk az id\u0151vel, hogy pontos sebess\u00e9get kapjunk. A lek\u00e9rdez\u00e9s k\u00f6r\u00fclbel\u00fcl \u00edgy fog kin\u00e9zni.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/13102b04ba4cf0ff9c955c36801044d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00cdgy k\u00f6r\u00fclbel\u00fcl ilyen \u00e9rt\u00e9keket mutat majd, azaz Silent Bob vagy Jay k\u00f6r\u00fclbel\u00fcl 1,8 l\u00e9p\u00e9st tesz meg m\u00e1sodpercenk\u00e9nt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/1c328f99da6f160bdca23ab5f461bda8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A Prometheusban is tudja, hogyan kell ezt megtenni. Sokkal egyszer\u0171bb, mint eddig volt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/a7145785dee9fafcc8ab573e920cb88e.jpeg\" style=\"display:block;margin: 0 auto;\" \/>\u00c9s hogy ez a Grafan\u00e1ban is ilyen egyszer\u0171en v\u00e9gezhet\u0151 legyen, hozz\u00e1adtam egy ilyen burkolatot, amely nagyon hasonl\u00f3 a PromQL-hez. Ezt Rate Macros-nak h\u00edvj\u00e1k, vagy ahogy csak szeretn\u00e9. Grafan\u00e1ban csak annyit \u00edr, hogy \u201erate\u201d, de a m\u00e9lyben ez \u00e1talakul egy ilyen nagy lek\u00e9rdez\u00e9ss\u00e9. \u00c9s nem is kell r\u00e1n\u00e9znie, mert valahol ott van, de rengeteg id\u0151t sp\u00f3rol meg, mert ilyen hatalmas SQL lek\u00e9rdez\u00e9seket \u00edrni mindig k\u00f6lts\u00e9ges. K\u00f6nnyen hib\u00e1zhat \u00e9s azt\u00e1n hossz\u00fa ideig nem \u00e9rtheti, mi t\u00f6rt\u00e9nik.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/511bb35469567b07412a10bb7c0b7312.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ez egy lek\u00e9rdez\u00e9s, ami m\u00e9g egy di\u00e1ra sem f\u00e9rt el, \u00e9s ez\u00e9rt k\u00e9nytelen voltam k\u00e9t oszlopra bontani. Ez is egy ClickHouse lek\u00e9rdez\u00e9s, amely ugyanazt a rate-t v\u00e9gzi, de mindk\u00e9t time series-re: Silent Bob-ra \u00e9s Jay-re, hogy legyen k\u00e9t time series a panelen. Ez m\u00e1r nagyon bonyolult, v\u00e9lem\u00e9nyem szerint. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/c9c1e6b58672069370153a151dceef3d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c9s a Prometheus eset\u00e9ben ez sum (rate) lenne. A ClickHouse-hoz k\u00e9sz\u00edtettem egy k\u00fcl\u00f6n makr\u00f3t, amely RateColumns n\u00e9ven ismert, \u00e9s \u00fagy n\u00e9z ki, mint egy lek\u00e9rdez\u00e9s a Prometheusban.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/9743c6a4b3de4aab7cfb5bd3fd50fcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e9zt\u00fck, \u00e9s \u00fagy t\u0171nik, hogy a PromQL nagyon klassz, de term\u00e9szetesen vannak korl\u00e1tai.<\/p>\n<p><\/p>\n<p>Ez pedig:<\/p>\n<p><\/p>\n<ul>\n<li>Korl\u00e1tozott SELECT.<\/li>\n<li>Hat\u00e1rozott JOIN.<\/li>\n<li>Nincs HAVING t\u00e1mogat\u00e1s.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ha sok\u00e1ig dolgozott vele, akkor tudja, hogy n\u00e9ha nagyon neh\u00e9z valamit megval\u00f3s\u00edtani a PromQL-ben, m\u00edg az SQL-ben szinte mindent meg lehet csin\u00e1lni, mert mindezeket a lehet\u0151s\u00e9geket, amiket most megbesz\u00e9lt\u00fcnk, meg lehetett val\u00f3s\u00edtani SQL-ben. De lenne k\u00e9nyelmes ezt haszn\u00e1lni? Ez arra a gondolatra juttat, hogy nem mindig a legnagyobb hatalm\u00fa nyelv a legk\u00e9nyelmesebb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/ec8786f1d72a1f8652fa631cdffc9c25.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ez\u00e9rt n\u00e9ha a feladatokhoz kell v\u00e1lasztani a nyelvet. Ez olyan, mint Batman harca Superman ellen. Nyilv\u00e1nval\u00f3, hogy Superman er\u0151sebb, de Batman legy\u0151zte \u0151t, mert praktikusabb volt, \u00e9s pontosan tudta, mit csin\u00e1l.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/59e5cb7e54ee14705a9e8a36db6f5541.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A k\u00f6vetkez\u0151 r\u00e9sz pedig a PromQL kiterjeszt\u00e9se.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/b806acf0e6c7c416614d3fd49004b4be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ism\u00e9t a VictoriaMetrics-r\u00f3l. Mi is az a VictoriaMetrics? Ez egy time series adatb\u00e1zis, ny\u00edlt forr\u00e1sk\u00f3d\u00fa, single \u00e9s cluster verzi\u00f3kat terjeszt\u00fcnk. A mi benchmarkjaink alapj\u00e1n ez a leggyorsabb, ami jelenleg a piacon van, \u00e9s a t\u00f6m\u00f6r\u00edt\u00e9si ar\u00e1ny is hasonl\u00f3, azaz \u00e9l\u0151 emberek k\u00f6r\u00fclbel\u00fcl 0,4 byte-ot jelentettek pontonk\u00e9nt, m\u00edg a Prometheus eset\u00e9ben ez 1,2-1,4. <\/p>\n<p><\/p>\n<p>Nemcsak a Prometheus-t t\u00e1mogatjuk. T\u00e1mogatjuk az InfluxDB-t, Graphite-ot, OpenTSDB-t.<\/p>\n<p><\/p>\n<p>Benn\u00fcnket \"\u00edrni\" lehet, azaz r\u00e9gi adatokat vihet\u00fcnk \u00e1t. <\/p>\n<p><\/p>\n<p>\u00c9s t\u00f6k\u00e9letesen m\u0171k\u00f6d\u00fcnk a Prometheus-szal \u00e9s a Grafan\u00e1val, azaz t\u00e1mogatjuk a PromQL motort. \u00c9s a Grafan\u00e1ban egyszer\u0171en megv\u00e1ltoztathatja a Prometheus v\u00e9gpontot VictoriaMetrics-ra, \u00e9s minden ir\u00e1ny\u00edt\u00f3pultja m\u0171k\u00f6dni fog, ahogyan eddig. <\/p>\n<p><\/p>\n<p>De haszn\u00e1lhatja a VictoriaMetrics \u00e1ltal ny\u00fajtott tov\u00e1bbi funkci\u00f3kat is.<\/p>\n<p><\/p>\n<p>Gyorsan \u00e1ttekintj\u00fck azokat a funkci\u00f3kat, amelyeket hozz\u00e1adtunk.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/78e9c0ce91fad48ab859fc2cf06a0689.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Omit interval param \u2013 megker\u00fclheti az intervallum param\u00e9tereket a Grafan\u00e1ban. Amikor nem szeretne furcsa grafikonokat kapni a zoomol\u00e1s sor\u00e1n, aj\u00e1nlott haszn\u00e1lni a $__interval v\u00e1ltoz\u00f3t. <code>Ez a Grafana bels\u0151 v\u00e1ltoz\u00f3ja, \u00e9s automatikusan v\u00e1lasztja ki az adatokat. A VictoriaMetrics pedig meg\u00e9rti, hogy milyen tartom\u00e1nyra van sz\u00fcks\u00e9g. \u00cdgy nem kell friss\u00edteni az \u00f6sszes lek\u00e9rdez\u00e9s\u00e9t. Sokkal egyszer\u0171bb lesz.<\/code>A m\u00e1sodik funkci\u00f3 az intervallum hivatkoz\u00e1s. Ezt az intervallumot haszn\u00e1lhatja a kifejez\u00e9seiben. Kihaszn\u00e1lhatja, oszthatja, \u00e1tadhatja, hivatkozhat r\u00e1.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/4094c7b8b5e6eef6134b5aa344ef7409.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ezut\u00e1n k\u00f6vetkezik a rollup funkci\u00f3k csal\u00e1dja. A rollup funkci\u00f3k b\u00e1rmely id\u0151szakos adatot h\u00e1rom k\u00fcl\u00f6n\u00e1ll\u00f3 id\u0151szakos adatt\u00e1 alak\u00edtanak: min, max \u00e9s avg. \u00dagy gondolom, hogy ez nagyon hasznos, mert n\u00e9ha ez felfedheti a kiugr\u00f3 \u00e9rt\u00e9keket \u00e9s a pontatlans\u00e1gokat.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/967ca6166e588987bd69c1e1953dca31.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ha csak irate-t vagy rate-t haszn\u00e1l, val\u00f3sz\u00edn\u0171, hogy kihagyhat n\u00e9h\u00e1ny esetet, amikor az id\u0151szaki adatok nem \u00fagy viselkednek, ahogy azt el\u0151re elgondolta. Ezzel a funkci\u00f3val sokkal egyszer\u0171bb \u00e9szrevenni, hogy p\u00e9ld\u00e1ul a max nagyon elt\u00e9r az avg-t\u0151l. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/d5ff7d6f6ae8f7550434a3dbbca09b20.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tov\u00e1bb\u00e1 a default v\u00e1ltoz\u00f3. A default azt jelenti, hogy milyen \u00e9rt\u00e9ket szeretn\u00e9nk megjelen\u00edteni a Grafan\u00e1ban, ha \u00e9ppen nincs id\u0151szaki adatunk. Mikor fordul ez el\u0151? P\u00e9ld\u00e1ul, ha hibametrik\u00e1t export\u00e1l. \u00c9s van egy olyan nagyszer\u0171 alkalmaz\u00e1sa, amelynek ind\u00edt\u00e1sakor nincsenek hib\u00e1i, \u00e9s a k\u00f6vetkez\u0151 h\u00e1rom \u00f3r\u00e1ban vagy ak\u00e1r napban sincsenek hib\u00e1k. Van egy olyan m\u0171szerfala, amely a siker \u00e9s a hiba ar\u00e1ny\u00e1t mutatja. Ez nem fog megjelen\u00edteni semmit, mert nincs hiba metrik\u00e1ja. A defaultban b\u00e1rmit megadhat.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/a4e9f0d246fa33459597f7140e09538c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Keep_last_Value \u2013 meg\u0151rzi a legutols\u00f3 metrik\u00e1t, ha az elt\u0171nik. Ha a Prometheus a k\u00f6vetkez\u0151 scrape ut\u00e1n 5 percen bel\u00fcl nem tal\u00e1lja meg, akkor itt meg\u0151rizz\u00fck a legutols\u00f3 \u00e9rt\u00e9k\u00e9t, \u00e9s a grafikonjai \u00fajra nem fognak megszakadni.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/cb4e23199194006186ac6907d2335cf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Scrape_interval \u2013 azt mutatja, hogy a Prometheus milyen gyakran gy\u0171jti az adatokat a metrik\u00e1j\u00e1r\u00f3l, milyen frekvenci\u00e1val. Itt l\u00e1that\u00f3 lehet a kihagy\u00e1s is.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/ca202f8a70f071cbd85b33b98cd28bb5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A label replace \u2013 n\u00e9pszer\u0171 funkci\u00f3. De azt gondoljuk, hogy ez egy kicsit bonyolult, mert sok argumentumot fogad el. Nemcsak 5 argumentumot kell eml\u00e9kezni, hanem m\u00e9g a sorrendj\u00fcket is. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/9e9f43c7e9ef9a24dcc0b43673558046.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEz\u00e9rt kell gondosan figyelni.<br \/>\n<img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/adfee335e9329f6b03d6f8a42ad8e7b8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEz\u00e9rt mi\u00e9rt ne tenn\u00e9nk \u0151ket egyszer\u0171bb\u00e9? Vagyis, lebontani kisebb funkci\u00f3kra, \u00e9rthet\u0151 szintaxissal.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/e928549205018e7405cc2a81970a8514.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c9s most j\u00f6n a leg\u00e9rdekesebb. Mi\u00e9rt tartjuk ezt extended PromQL-nak? Mert t\u00e1mogatjuk a Common Table Expressions-t. QR-k\u00f3d seg\u00edts\u00e9g\u00e9vel \u00e1t tud menni (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL\">https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL<\/a><\/noindex>), megtekintheti a p\u00e9ld\u00e1kkal ell\u00e1tott linkeket, valamint a playgroundot, ahol k\u00f6zvetlen\u00fcl a VictoriaMetrics-ben hajthat v\u00e9gre lek\u00e9rdez\u00e9seket an\u00e9lk\u00fcl, hogy telep\u00edten\u00e9, csak a b\u00f6ng\u00e9sz\u0151ben.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/33259a4bcd1a92f2cab6e943b73502ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>De mi is ez pontosan? Az a lek\u00e9rdez\u00e9s fent \u2013 ez egy meglehet\u0151sen n\u00e9pszer\u0171 lek\u00e9rdez\u00e9s. Azt hiszem, sok c\u00e9gn\u00e9l b\u00e1rmelyik ir\u00e1ny\u00edt\u00f3pulton ugyanazt a sz\u0171r\u0151t haszn\u00e1lj\u00e1k mindenhol. \u00c1ltal\u00e1ban \u00edgy van. De amikor \u00faj sz\u0171r\u0151t kell hozz\u00e1adnia, friss\u00edtenie kell minden panelt, vagy le kell t\u00f6ltenie az ir\u00e1ny\u00edt\u00f3pultot, megnyitnia JSON-ban, find replace-et csin\u00e1lnia, ami szint\u00e9n id\u0151t ig\u00e9nyel. Mi\u00e9rt ne t\u00e1roln\u00e1nk ezt az \u00e9rt\u00e9ket v\u00e1ltoz\u00f3ban \u00e9s ne haszn\u00e1ln\u00e1nk \u00fajra? Szerintem ez sokkal egyszer\u0171bb \u00e9s vil\u00e1gosabb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/60aea73cf49934ef7d9a7928a8e2f8e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00e9ld\u00e1ul amikor sz\u0171r\u0151ket kell friss\u00edtenem a Grafana-ban minden lek\u00e9rdez\u00e9sben, \u00e9s az ir\u00e1ny\u00edt\u00f3pult hatalmas lehet, vagy ak\u00e1r t\u00f6bb is lehet. Hogyan szeretn\u00e9m ezt megoldani a Grafana-ban?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/7cf9eb13219bbd9a5d3240bdda1839a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c9n \u00edgy oldom meg a probl\u00e9m\u00e1t: k\u00e9sz\u00edtek egy commonFilter-t, amiben defini\u00e1lom ezt a sz\u0171r\u0151t, majd \u00fajra haszn\u00e1lom a lek\u00e9rdez\u00e9sekben. De ha most ezt csin\u00e1lja, nem fog m\u0171k\u00f6dni, mert a Grafana nem engedi, hogy v\u00e1ltoz\u00f3kat haszn\u00e1ljon bels\u0151 lek\u00e9rdez\u00e9sv\u00e1ltoz\u00f3kban. Ez kicsit furcsa.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/0b7a40976cb3eeda370518a242f78708.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ez\u00e9rt k\u00e9sz\u00edtettem egy olyan megold\u00e1st, amely lehet\u0151v\u00e9 teszi ezt. Ha \u00e9rdekli, vagy szeretne egy ilyen funkci\u00f3t, k\u00e9rj\u00fck t\u00e1mogassa, vagy diszl\u00e1jkolja, ha nem tetszik az \u00f6tlet. <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=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/68e3a408ff2b554cdfd61a2da4c75bc0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tov\u00e1bb a PromQL extended-r\u0151l. Itt nem csak egy v\u00e1ltoz\u00f3t hat\u00e1rozunk meg, hanem egy eg\u00e9sz f\u00fcggv\u00e9nyt. Ezt ru-nak (resource usage) nevezz\u00fck. Ez a f\u00fcggv\u00e9ny a szabad er\u0151forr\u00e1sokat, er\u0151forr\u00e1skorl\u00e1tot \u00e9s sz\u0171r\u0151t fogad. \u00dagy t\u0171nik, a szintaxis nagyon egyszer\u0171. Nagyon k\u00f6nny\u0171 haszn\u00e1lni ezt a f\u00fcggv\u00e9nyt, \u00e9s kisz\u00e1m\u00edtani a szabad mem\u00f3ria sz\u00e1zal\u00e9k\u00e1t. Vagyis, mennyi mem\u00f3ri\u00e1nk van, milyen korl\u00e1toz\u00e1s van \u00e9s hogyan kell sz\u0171rni. Ez sokkal k\u00e9nyelmesebben n\u00e9z ki, ha mindezt \u00fagy \u00edrn\u00e1, hogy \u00fajrahaszn\u00e1lja ugyanazokat a sz\u0171r\u0151ket, mert ez egy nagy-nagy lek\u00e9rdez\u00e9s\u00e9 v\u00e1lna.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/4ca66e18ac665fe1038493709530b82b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00cdme egy p\u00e9lda egy hatalmas-hatalmas lek\u00e9rdez\u00e9sre. Ez a Grafana hivatalos NodeExporter m\u0171szerfal\u00e1r\u00f3l sz\u00e1rmazik. De alig \u00e9rtem, mi t\u00f6rt\u00e9nik itt. Teh\u00e1t persze, \u00e9rtem, ha jobban megn\u00e9zem, de a z\u00e1r\u00f3jelek sz\u00e1ma azonnal cs\u00f6kkentheti a motiv\u00e1ci\u00f3t, hogy meg\u00e9rts\u00fck, mi folyik itt. Mi\u00e9rt ne lehetne egyszer\u0171bb\u00e9 \u00e9s \u00e9rthet\u0151bb\u00e9 tenni?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/50e01e7f0c1d03965b028266130413f0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00e9ld\u00e1ul \u00edgy, kiemelve a l\u00e9nyeges dolgokat vagy r\u00e9szeket v\u00e1ltoz\u00f3kba. Azt\u00e1n elv\u00e9gezhetem az alapvet\u0151 matematik\u00e1t. Ez m\u00e1r ink\u00e1bb hasonl\u00edt a programoz\u00e1sra, ez az, amit a j\u00f6v\u0151ben is szeretn\u00e9k l\u00e1tni a Grafan\u00e1ban.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/81f957d89f97ebf686abdf969982d3ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Itt a m\u00e1sodik p\u00e9lda, hogyan tehetn\u00e9nk ezt m\u00e9g egyszer\u0171bb\u00e9, ha m\u00e1r l\u00e9tezne ez a ru funkci\u00f3, amely m\u00e1r k\u00f6zvetlen\u00fcl el\u00e9rhet\u0151 a VictoriaMetrics-ben. Akkor egyszer\u0171en \u00e1tadn\u00e1d a cache-elt \u00e9rt\u00e9ket, amit a CTE-ben deklar\u00e1lt\u00e1l.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/415302741e14232228353db6ec57a2e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00e1r besz\u00e9ltem arr\u00f3l, mennyire fontos a megfelel\u0151 programoz\u00e1si nyelv haszn\u00e1lata. Val\u00f3sz\u00edn\u0171leg minden Grafana v\u00e1llalatn\u00e1l saj\u00e1tos dolog folyik. Val\u00f3sz\u00edn\u0171leg hozz\u00e1f\u00e9r\u00e9st adsz a Grafan\u00e1hoz a fejleszt\u0151idnek, \u00e9s a fejleszt\u0151k valami saj\u00e1tot csin\u00e1lnak. \u0150k mindannyian valahogy elt\u00e9r\u0151en csin\u00e1lj\u00e1k. Pedig szeretn\u00e9m, ha valahogy egys\u00e9ges lenne, azaz k\u00f6z\u00f6s szabv\u00e1nyra reduk\u00e1ln\u00e1nk.<\/p>\n<p><\/p>\n<p>Tegy\u00fck fel, hogy nemcsak rendszerm\u00e9rn\u00f6k\u00f6k vannak, tal\u00e1n m\u00e9g vannak szak\u00e9rt\u0151k, DevOps-ok vagy SRE-k is. Tal\u00e1n vannak olyan szak\u00e9rt\u0151k, akik tudj\u00e1k, mi az a monitoring, tudnak a Grafan\u00e1r\u00f3l, azaz \u00e9vek \u00f3ta dolgoznak vele, \u00e9s pontosan tudj\u00e1k, hogyan kell csin\u00e1lni helyesen. M\u00e1r \u00edrt\u00e1k ezt 100-szor, \u00e9s mindenkinek elmagyar\u00e1zt\u00e1k, de valami\u00e9rt senki sem hallgat r\u00e1juk.<\/p>\n<p><\/p>\n<p>Mi lenne, ha ezek a tud\u00e1sokat k\u00f6zvetlen\u00fcl a Grafan\u00e1ba tudn\u00e1k elhelyezni, \u00edgy m\u00e1s felhaszn\u00e1l\u00f3k \u00fajra felhaszn\u00e1lhatn\u00e1k a funkci\u00f3kat? \u00c9s ha ki kellene sz\u00e1molni a szabad mem\u00f3ria sz\u00e1zal\u00e9k\u00e1t, akkor egyszer\u0171en alkalmazn\u00e1k a funkci\u00f3t. Mi lenne, ha az export\u00e1l\u00f3k k\u00e9sz\u00edt\u0151i a term\u00e9k\u00fckkel egy\u00fctt funkci\u00f3k k\u00e9szlet\u00e9t is biztos\u00edtan\u00e1k a metrik\u00e1ik kezel\u00e9s\u00e9re, mert pontosan tudj\u00e1k, mik azok a metrik\u00e1k \u00e9s hogyan kell helyesen sz\u00e1molni \u0151ket?<\/p>\n<p><\/p>\n<p>Ez val\u00f3j\u00e1ban nem l\u00e9tezik. Ezt \u00e9n csin\u00e1ltam. Ez a k\u00f6nyvt\u00e1rak t\u00e1mogat\u00e1sa a Grafan\u00e1ban. Tegy\u00fck fel, hogy azok a sr\u00e1cok, akik a NodeExportert k\u00e9sz\u00edtett\u00e9k, megcsin\u00e1lt\u00e1k azt, amir\u0151l besz\u00e9ltem. \u00c9s funkci\u00f3k k\u00e9szlet\u00e9t is biztos\u00edtott\u00e1k. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/755391ee41fd2abf4cb74fad17cecaf0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Teh\u00e1t, \u00edgy n\u00e9z ki: csatlakoztatod ezt a k\u00f6nyvt\u00e1rat a Grafan\u00e1hoz, bel\u00e9psz a szerkeszt\u00e9sbe, \u00e9s itt nagyon egyszer\u0171en le van \u00edrva JSON form\u00e1tumban, hogyan kell dolgozni ezzel a metrik\u00e1val. Vagyis van valamilyen funkci\u00f3k\u00e9szlet, a le\u00edr\u00e1suk, \u00e9s hogy miv\u00e9 alakulnak.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/78a85dd219a421757807be895c173a39.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Szerintem ez hasznos lenne, mert akkor a Grafan\u00e1ban egyszer\u0171en \u00edgy \u00edrn\u00e1tok. \u00c9s a Grafana \"mondja\" nektek, hogy van egy ilyen fu\u0308gge\u0301ny e\u0301ppen ebbo\u030bl a libra\u0301ri\u0301bo\u0301l \u2013 haszn\u00e1ljuk ezt. \u00dagy \u00e9rzem, ez nagyon klassz lenne.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/6e6b2b459c574d95d56251cd5fae5586.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kicsit a VictoriaMetricsr\u0151l. Nagyon sok \u00e9rdekes dolgot csin\u00e1lunk. Olvasd el a cikkjeinket a t\u00f6m\u00f6r\u00edt\u00e9sr\u0151l, a t\u00f6bbi id\u0151beli sorozat adatfeldolgoz\u00f3 alkalmaz\u00e1sokkal folytatott versenyeinkr\u0151l, a PromQL-lel val\u00f3 munk\u00e1r\u00f3l, mert ebben m\u00e9g sokan \u00fajak, \u00e9s a vertik\u00e1lis sk\u00e1l\u00e1zhat\u00f3s\u00e1gr\u00f3l, valamint a Thanos elleni k\u00fczdelemr\u0151l.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Az \u201eExtendedPromQL\u201d \u2013 R\u00f3man Khavronenko el\u0151ad\u00e1s\u00e1nak \u00e1t\u00edr\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/03\/562829a25ee6131c7eaed8c561c6927c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00e9rd\u00e9sek:<\/p>\n<p><\/p>\n<p><em>K\u00e9rd\u00e9semet egy egyszer\u0171 \u00e9lett\u00f6rt\u00e9nettel kezdem. Amikor el\u0151sz\u00f6r kezdtem haszn\u00e1lni a Grafan\u00e1t, \u00edrtam egy nagyon meggy\u0151z\u0151 lek\u00e9rdez\u00e9st, ami \u00f6t sor hossz\u00fa volt. Ennek eredm\u00e9nyek\u00e9nt egy nagyon meggy\u0151z\u0151 grafikon sz\u00fcletett. Ez a grafikon majdnem \u00e1tment a gy\u00e1rt\u00e1sba. De a k\u00f6zelebbi vizsg\u00e1lat sor\u00e1n kider\u00fclt, hogy ez a grafikon abszol\u00fat butas\u00e1got mutat, ami semmilyen kapcsolatban nincs a val\u00f3s\u00e1ggal, b\u00e1r a sz\u00e1mok beleestek abba a tartom\u00e1nyba, amit v\u00e1rtunk. \u00c9s a k\u00e9rd\u00e9sem: Van k\u00f6nyvt\u00e1runk, vannak funkci\u00f3ink, de hogyan \u00edrunk teszteket a Grafan\u00e1hoz? \u00cdrt\u00e1l egy bonyolult lek\u00e9rdez\u00e9st, ami egy \u00fczleti d\u00f6nt\u00e9st\u0151l f\u00fcgg - rendelni egy val\u00f3di szerverkont\u00e9nert vagy sem. \u00c9s hogyan tudjuk, hogy az a funkci\u00f3, ami a grafikont rajzolja, val\u00f3s\u00e1gh\u0171? K\u00f6sz\u00f6n\u00f6m.<\/em><\/p>\n<p><\/p>\n<p>K\u00f6sz\u00f6n\u00f6m a k\u00e9rd\u00e9st. Ennek k\u00e9t r\u00e9sze van. Az els\u0151 \u2013 az a benyom\u00e1som, hogy a gyakorlatomb\u00f3l kifoly\u00f3lag a legt\u00f6bb felhaszn\u00e1l\u00f3, amikor r\u00e1n\u00e9z a grafik\u00e1ira, nem \u00e9rti, mit mutatnak. Valami\u00e9rt az emberek nagyon j\u00f3l kital\u00e1lnak mindenf\u00e9le magyar\u00e1zatot b\u00e1rmilyen anom\u00e1li\u00e1ra, ami a grafik\u00e1kon t\u00f6rt\u00e9nik, m\u00e9g akkor is, ha az a funkci\u00f3 hib\u00e1ja. A m\u00e1sodik r\u00e9sz \u2013 \u00fagy \u00e9rzem, hogy ezek a funkci\u00f3k sokkal jobban megfeleln\u00e9nek a probl\u00e9m\u00e1d megold\u00e1s\u00e1hoz, ahelyett, hogy minden fejleszt\u0151d a saj\u00e1t kapacit\u00e1stervez\u00e9s\u00e9t v\u00e9gezn\u00e9, \u00e9s v\u00e9letlen\u00fcl hib\u00e1zna.<\/p>\n<p><\/p>\n<p><em>Hogyan ellen\u0151rizz\u00fck?<\/em><\/p>\n<p><\/p>\n<p>Hogyan ellen\u0151rizz\u00fck? Val\u00f3sz\u00edn\u0171leg sehogy. <\/p>\n<p><\/p>\n<p><em>Grafana teszt form\u00e1j\u00e1ban.<\/em><\/p>\n<p><\/p>\n<p>Mi k\u00f6ze van ehhez a Grafan\u00e1hoz? A Grafana k\u00f6zvetlen\u00fcl ezt a lek\u00e9rdez\u00e9st tov\u00e1bb\u00edtja az Adatforr\u00e1shoz.<\/p>\n<p><\/p>\n<p><em>Tov\u00e1bbi param\u00e9terek hozz\u00e1ad\u00e1s\u00e1val.<\/em><\/p>\n<p><\/p>\n<p>Nem, a Grafan\u00e1ba semmit sem adnak hozz\u00e1. Ott lehetnek GET-param\u00e9terek, mint p\u00e9ld\u00e1ul a step. Ez nem ker\u00fcl egy\u00e9rtelm\u0171en megad\u00e1sra, de fel\u00fclb\u00edr\u00e1lhatod, vagy sem, de automatikusan hozz\u00e1ad\u00f3dik. Itt teszteket nem \u00edrsz. Azt hiszem, nem \u00e9rdemes a Grafan\u00e1ra, mint az igazs\u00e1g forr\u00e1s\u00e1ra t\u00e1maszkodni.<\/p>\n<p><\/p>\n<p><em>K\u00f6sz\u00f6n\u00f6m az el\u0151ad\u00e1st! K\u00f6sz\u00f6n\u00f6m a t\u00f6m\u00f6r\u00edt\u00e9st! Megeml\u00edtetted a v\u00e1ltoz\u00f3 lek\u00e9pez\u00e9s\u00e9t a grafikonban, hogy a Grafan\u00e1ban nem lehet v\u00e1ltoz\u00f3t v\u00e1ltoz\u00f3ban haszn\u00e1lni. \u00c9rtesz, mir\u0151l besz\u00e9lek?<\/em><\/p>\n<p><\/p>\n<p>Igen.<\/p>\n<p><\/p>\n<p><em>Ez kezdetben fejf\u00e1j\u00e1st okozott, amikor alertet akartam csin\u00e1lni a Grafan\u00e1ban. Ott alertet minden hosztra k\u00fcl\u00f6n kell csin\u00e1lni. Az a dolog, amit csin\u00e1lt\u00e1l, m\u0171k\u00f6dik az alertok sz\u00e1m\u00e1ra a Grafan\u00e1ban?<\/em><\/p>\n<p><\/p>\n<p>Ha a Grafana nem kezeli a v\u00e1ltoz\u00f3kat m\u00e1sk\u00e9pp, akkor \u2013 igen, m\u0171k\u00f6dni fog. De az \u00e9n tan\u00e1csom az, hogy ne haszn\u00e1ld az alertinget a Grafan\u00e1ban, jobban j\u00e1rsz, ha az alertmanagert haszn\u00e1lod.<\/p>\n<p><\/p>\n<p><em>Igen, haszn\u00e1lom, de egyszer\u0171en ez a Grafan\u00e1ban k\u00f6nnyebbnek t\u0171nt a be\u00e1ll\u00edt\u00e1s sor\u00e1n, de k\u00f6sz\u00f6n\u00f6m a tan\u00e1csot!<\/em><\/p>\n<p>Forr\u00e1s: <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.3 - 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\/hu\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\/hu\/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\u201d \u2014 Roman Khavronenko el\u0151ad\u00e1s\u00e1nak dek\u00f3dol\u00e1sa | ProHoster","description":"Javaslom, hogy ismerkedjen meg Roman Khavronenko \"ExtendedPromQL\" c\u00edm\u0171 el\u0151ad\u00e1s\u00e1nak a feldolgoz\u00e1s\u00e1val.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/75585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=75585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/75585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/75586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=75585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=75585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=75585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}