{"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\/sq\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","title":{"rendered":"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Ju ofroj t\u00eb njohim interpretime e referatit t\u00eb Roman Havronenko \"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=\"Luaj videon\" 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=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/54a175d9c74c90d9d313f8ff71476638.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrshkrim i shkurt\u00ebr mbi mua. M\u00eb quajn\u00eb Roman. Punoj n\u00eb CloudFlare, jetoj n\u00eb Lond\u00ebr. Por gjithashtu jam mbajt\u00ebs i VictoriaMetrics.<br \/>\nDhe un\u00eb jam autori <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/clickhouse-grafana\">i plugin-it p\u00ebr ClickHouse<\/a><\/noindex> p\u00ebr Grafana dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/chproxy\">ClickHouse-proxy<\/a><\/noindex> \u2013 ky \u00ebsht\u00eb nj\u00eb proxy i vog\u00ebl p\u00ebr ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/fc1aa56b144def5db9fcee844d5016f1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Do t\u00eb fillojm\u00eb me pjes\u00ebn e par\u00eb, e cila quhet \"Sfidat e p\u00ebrkthimit\" dhe n\u00eb t\u00eb do t\u00eb flas p\u00ebr faktin se \u00e7do gjuh\u00eb, ose madje edhe thjesht nj\u00eb gjuh\u00eb komunikimi, \u00ebsht\u00eb shum\u00eb e r\u00ebnd\u00ebsishme. Sepse kjo \u00ebsht\u00eb m\u00ebnyra se si i transmetoni nj\u00eb personi tjet\u00ebr ose nj\u00eb sistemi mendimet tuaja, si formulohet k\u00ebrkesa. Njer\u00ebzit n\u00eb internet debatojn\u00eb se cila gjuh\u00eb \u00ebsht\u00eb m\u00eb e mir\u00eb \u2013 java apo ndonj\u00eb tjet\u00ebr. P\u00ebr veten time, vendosa t\u00eb zgjedh sipas q\u00ebllimit, sepse t\u00eb gjitha k\u00ebto jan\u00eb t\u00eb specifikuara.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/ea21f52ba5c2d3507e0106715c4ab96d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>T\u00eb fillojm\u00eb nga fillimi. \u00c7far\u00eb \u00ebsht\u00eb PromQL? PromQL \u2013 \u00ebsht\u00eb Gjuha e K\u00ebrkimeve t\u00eb Prometheus. Kjo \u00ebsht\u00eb m\u00ebnyra se si formulojm\u00eb k\u00ebrkesat n\u00eb Prometheus p\u00ebr t\u00eb marr\u00eb t\u00eb dh\u00ebnat e serive temporale.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/56b1ef4cc04defdffeea8b2666fdc354.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb jan\u00eb t\u00eb dh\u00ebnat e serive temporale? N\u00eb p\u00ebrkthim t\u00eb sakt\u00eb, ato jan\u00eb tri parametra. <\/p>\n<p><\/p>\n<p>K\u00ebto jan\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>N\u00eb \u00e7far\u00eb po shohim. <\/li>\n<li>Kur po shohim k\u00ebt\u00eb.<\/li>\n<li>Dhe \u00e7far\u00eb vler\u00eb tregon. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/358a193e889204d28debe1b74b93df3a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00ebse shikojm\u00eb k\u00ebt\u00eb grafik (ky grafik \u00ebsht\u00eb nga telefoni im, q\u00eb tregon statistik\u00ebn e hapave t\u00eb mi), at\u00ebher\u00eb k\u00ebtu mund t\u00eb p\u00ebrgjigjemi shpejt p\u00ebr k\u00ebto pyetje. <\/p>\n<p><\/p>\n<p>Ne shohim hapet. Ne shohim vler\u00ebn dhe shohim koh\u00ebn kur e shohim k\u00ebt\u00eb. Pra, duke par\u00eb k\u00ebt\u00eb grafik \u00ebsht\u00eb leht\u00eb t\u00eb thuash se n\u00eb t\u00eb diel\u00eb b\u00ebra rreth 15,000 hapa. K\u00ebto jan\u00eb t\u00eb dh\u00ebnat e serive temporale. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/859299ee9d25a3419c869b3ed6db6e72.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tani le t\u00eb \"ndarim\" (transformojm\u00eb) ato n\u00eb nj\u00eb model tjet\u00ebr t\u00eb dh\u00ebnash n\u00eb form\u00ebn e nj\u00eb tabele. K\u00ebtu kemi gjithashtu at\u00eb q\u00eb shohim. K\u00ebtu shtova disa t\u00eb dh\u00ebna shtes\u00eb, t\u00eb cilat do t'i quajm\u00eb meta-t\u00eb dh\u00ebna, dometh\u00ebn\u00eb, kjo nuk u krye nga un\u00eb, por nga dy persona, le t\u00eb themi, Jay dhe Silent Bob. Kjo \u00ebsht\u00eb ajo q\u00eb shohim; \u00e7far\u00eb tregon dhe kur tregon k\u00ebt\u00eb vler\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/fd7b48ea3c25b57c13605e84c4a52a2c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTani le t\u00eb p\u00ebrpiqemi t'i ruajm\u00eb t\u00eb gjitha k\u00ebto t\u00eb dh\u00ebna n\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash. Si shembull, kam marr\u00eb sintaks\u00ebn e ClickHouse. Dhe k\u00ebtu krijojm\u00eb nj\u00eb tabel\u00eb, e cila quhet \"Steps\", pra \u00e7far\u00eb po shohim. K\u00ebtu ka koh\u00ebn kur shohim k\u00ebt\u00eb; \u00e7far\u00eb tregon dhe disa meta-t\u00eb dh\u00ebna, ku do t\u00eb ruajm\u00eb, kush jan\u00eb: Jay dhe Silent Bob.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/bd01f9dc0b29d34aacbb8f012710a94f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe p\u00ebr t\u00eb p\u00ebrpiquar t\u00eb vizualizojm\u00eb gjith\u00e7ka, do t\u00eb p\u00ebrdorim Grafana, sepse, s\u00eb pari, \u00ebsht\u00eb e bukur.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/9f573241e9ae32e31d6d0b879115970b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Gjithashtu do t\u00eb p\u00ebrdorim k\u00ebt\u00eb plugin. Ka dy arsye. E para \u2013 sepse e kam shkruar un\u00eb. Dhe e di sakt\u00ebsisht sa e v\u00ebshtir\u00eb \u00ebsht\u00eb t\u00eb nxjerr\u00ebsh t\u00eb dh\u00ebnat e serive temporale nga ClickHouse p\u00ebr t'i treguar n\u00eb Grafana. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/29f2d72f9995afb54b23bb7b4230b840.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne do ta shfaqim n\u00eb Graph Panel. Kjo \u00ebsht\u00eb paneli m\u00eb i njohur n\u00eb Grafana, i cili tregon var\u00ebsin\u00eb e vler\u00ebs nga koha, k\u00ebshtu q\u00eb na nevojiten vet\u00ebm dy parametra.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/d820f63944ce0112660337b44a6c1f36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLe t\u00eb shkruajm\u00eb k\u00ebrkes\u00ebn m\u00eb t\u00eb thjesht\u00eb \u2014 si t\u00eb tregojm\u00eb statistikat e hapave n\u00eb Grafana, duke ruajtur k\u00ebto t\u00eb dh\u00ebna n\u00eb ClickHouse, n\u00eb tabel\u00ebn q\u00eb krijuam. Dhe shkruajm\u00eb k\u00ebt\u00eb k\u00ebrkes\u00eb t\u00eb thjesht\u00eb. Ne se\u00e7im nga hapat. Ne selektojm\u00eb vler\u00ebn dhe koh\u00ebn e k\u00ebtyre vlerave, pra ato tri parametra q\u00eb tha\u00ebm.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/ad7895105050178de5bc8a154da7e6e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe si rezultat do t\u00eb marrim k\u00ebt\u00eb grafik. Kush e di pse \u00ebsht\u00eb kaq i \u00e7uditsh\u00ebm?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/4a8108737e834cf35b7834be7b4db719.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sakt\u00eb, duhet ta rendisim sipas koh\u00ebs.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/d37343c7a6a811e2012f1cbae4b9a5d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe n\u00eb fund do t\u00eb marrim nj\u00eb grafik m\u00eb t\u00eb mir\u00eb, por ende t\u00eb \u00e7uditsh\u00ebm. Kush e di pse? Sakt\u00eb, ka dy pjes\u00ebmarr\u00ebs, dhe ne n\u00eb Grafana japim dy serit\u00eb temporale, sepse n\u00ebse merremi me modelin e t\u00eb dh\u00ebnave s\u00ebrish, secila seri temporale \u00ebsht\u00eb nj\u00eb kombinim unik i emrit dhe t\u00eb gjitha \u00e7el\u00ebsve-vlerave etiketat.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/f19bf1a9f43ae8de22af6bf7b494902f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pra, duhet t\u00eb zgjidhim nj\u00eb person t\u00eb ve\u00e7ant\u00eb. Ne zgjedhim Jay.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/b6a714d5d6ce4d4b27634da9414aa6f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe e vizatojm\u00eb p\u00ebrs\u00ebri. Tani grafiku tashm\u00eb duket si e v\u00ebrteta. Tani \u00ebsht\u00eb nj\u00eb grafik normal dhe gjith\u00e7ka punon mir\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/2a93b4cd548239c9314c3283c5b9f488.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe ndoshta e dini si t\u00eb b\u00ebni m\u00eb ose pak m\u00eb ndryshe, por n\u00eb Prometheus p\u00ebrmes PromQL. Pjes\u00ebrisht k\u00ebshtu. Pak m\u00eb e thjesht\u00eb. Dhe gjithashtu do ta ndajm\u00eb k\u00ebt\u00eb. Ne mor\u00ebm Hapat. Dhe e filtrojm\u00eb sipas Jay. K\u00ebtu nuk po tregojm\u00eb se duam t\u00eb marrim vler\u00ebn dhe nuk po zgjedhim koh\u00ebn. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/5e080a1b88c156522af21bf00f3cd641.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tani le ta p\u00ebrpiqemi t\u00eb llogarisim shpejt\u00ebsin\u00eb e l\u00ebvizjes s\u00eb Jay ose Silent Bob. N\u00eb ClickHouse do t\u00eb na nevojitet t\u00eb b\u00ebjm\u00eb runningDifference, pra t\u00eb llogarisim ndryshimin midis \u00e7iftit t\u00eb pikave dhe ta ndajm\u00eb me koh\u00ebn, p\u00ebr t\u00eb marr\u00eb shpejt\u00ebsin\u00eb e sakt\u00eb. K\u00ebrkesa do t\u00eb duket disi k\u00ebshtu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/13102b04ba4cf0ff9c955c36801044d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe do t\u00eb tregoj\u00eb ndoshta k\u00ebto vlera, pra rreth 1.8 hapa n\u00eb sekond\u00eb b\u00ebn Silent Bob ose Jay.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/1c328f99da6f160bdca23ab5f461bda8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe n\u00eb Prometheus e dini si ta b\u00ebni k\u00ebt\u00eb gjithashtu. Shum\u00eb m\u00eb e leht\u00eb se sa ishte m\u00eb par\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/a7145785dee9fafcc8ab573e920cb88e.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Dhe q\u00eb t\u00eb vazhdoj\u00eb t\u00eb jet\u00eb po aq e leht\u00eb p\u00ebr t\u2019u b\u00ebr\u00eb n\u00eb Grafana, un\u00eb shtova nj\u00eb mb\u00ebshtjell\u00ebs t\u00eb till\u00eb, i cili duket shum\u00eb si PromQL. Quhet Rate Macros ose si d\u00ebshiron ta quash. N\u00eb Grafana ju shkruani thjesht \"rate\", por diku n\u00eb thell\u00ebsi ajo transformohet n\u00eb nj\u00eb k\u00ebrkes\u00eb t\u00eb till\u00eb t\u00eb madhe. Dhe nuk keni nevoj\u00eb as ta shikoni, ajo \u00ebsht\u00eb diku atje, por kurseni shum\u00eb koh\u00eb, sepse t\u00eb shkruash k\u00ebrkesa t\u00eb tilla t\u00eb m\u00ebdha SQL \u00ebsht\u00eb gjithmon\u00eb ndysh\u00ebm e shtrenjta. Ju mund t\u00eb gaboni leht\u00ebsisht dhe m\u00eb pas t\u00eb mos kuptoni p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb se \u00e7far\u00eb po ndodh.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/511bb35469567b07412a10bb7c0b7312.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe kjo \u00ebsht\u00eb nj\u00eb k\u00ebrkes\u00eb q\u00eb nuk arriti as t\u00eb vendoset n\u00eb nj\u00eb slide dhe m\u00eb duhej ta ndaj n\u00eb dy kolona. Kjo gjithashtu \u00ebsht\u00eb nj\u00eb k\u00ebrkes\u00eb n\u00eb ClickHouse, e cila b\u00ebn t\u00eb nj\u00ebjt\u00ebn gj\u00eb rate, por p\u00ebr t\u00eb dyja time series: Silent Bob dhe Jay, n\u00eb m\u00ebnyr\u00eb q\u00eb n\u00eb panelin ton\u00eb t\u00eb kemi dy time series. Dhe kjo \u00ebsht\u00eb tashm\u00eb shum\u00eb e komplikuar, sipas mendimit tim. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/c9c1e6b58672069370153a151dceef3d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe p\u00ebr Prometheus kjo do t\u00eb jet\u00eb sum (rate). P\u00ebr ClickHouse kam b\u00ebr\u00eb nj\u00eb makros t\u00eb ve\u00e7ant\u00eb, i quajtur RateColumns, e cila duket si nj\u00eb k\u00ebrkes\u00eb n\u00eb Prometheus.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/9743c6a4b3de4aab7cfb5bd3fd50fcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne shikuam dhe dukej se PromQL ishte shum\u00eb i bukur, por ka, sigurisht, kufizime.<\/p>\n<p><\/p>\n<p>K\u00ebto jan\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>SELECT i kufizuar.<\/li>\n<li>JOIN-et e kufizuara.<\/li>\n<li>Nuk ka mb\u00ebshtetje p\u00ebr HAVING.<\/li>\n<\/ul>\n<p><\/p>\n<p>Dhe n\u00ebse keni punuar me t\u00eb p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb, e dini se ndonj\u00ebher\u00eb \u00ebsht\u00eb shum\u00eb e v\u00ebshtir\u00eb t\u00eb b\u00ebni di\u00e7ka n\u00eb PromQL, nd\u00ebrsa n\u00eb SQL mund t\u00eb b\u00ebni praktikisht gjith\u00e7ka, sepse t\u00eb gjitha k\u00ebto variante, p\u00ebr t\u00eb cilat po flasim tani, mund t\u00eb ishin b\u00ebr\u00eb n\u00eb SQL. Por a do t\u00eb ishte e rehatshme ta p\u00ebrdorni k\u00ebt\u00eb? Dhe kjo m\u00eb shtyn t\u00eb mendoj se nuk \u00ebsht\u00eb gjithmon\u00eb gjuha m\u00eb e fuqishme ajo q\u00eb mund t\u00eb jet\u00eb m\u00eb e rehatshme.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/ec8786f1d72a1f8652fa631cdffc9c25.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Prandaj, ndonj\u00ebher\u00eb duhet t\u00eb zgjidhni gjuh\u00ebn sipas detyrave. Kjo \u00ebsht\u00eb si nj\u00eb betej\u00eb midis Batman dhe Superman. E qart\u00eb se Superman \u00ebsht\u00eb m\u00eb i fort\u00eb, por Batman arriti ta mund\u00eb at\u00eb, sepse ishte m\u00eb praktik dhe e dinte sakt\u00ebsisht se \u00e7far\u00eb po b\u00ebnte.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/59e5cb7e54ee14705a9e8a36db6f5541.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe pjesa tjet\u00ebr \u00ebsht\u00eb \u2013 Zgjerimi i PromQL.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/b806acf0e6c7c416614d3fd49004b4be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrs\u00ebri p\u00ebr VictoriaMetrics. \u00c7far\u00eb \u00ebsht\u00eb VictoriaMetrics? \u00cbsht\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash time series, \u00ebsht\u00eb OpenSource, ne e distribuitohemi n\u00eb versione single dhe cluster. Sipas banchmark-eve tona, ajo \u00ebsht\u00eb m\u00eb e shpejt\u00eb se \u00e7do gj\u00eb tjet\u00ebr n\u00eb treg tani dhe po ashtu p\u00ebr kompresimin, pra, njer\u00ebzit e gjall\u00eb raportojn\u00eb kompresionin diku n\u00eb 0,4 byte p\u00ebr pik\u00eb, kur Prometheus \u00ebsht\u00eb 1,2-1,4. <\/p>\n<p><\/p>\n<p>Ne mb\u00ebshtesim jo vet\u00ebm Prometheus. Ne mb\u00ebshtesim InfluxDB, Graphite, OpenTSDB.<\/p>\n<p><\/p>\n<p>Ne mund t\u00eb \"shkruajm\u00eb\" n\u00eb ne, dometh\u00ebn\u00eb, mund t\u00eb transferojm\u00eb t\u00eb dh\u00ebna t\u00eb vjetra. <\/p>\n<p><\/p>\n<p>Dhe gjithashtu ne funksionojm\u00eb perfekt me Prometheus dhe Grafana, pra, ne mb\u00ebshtesim motorin PromQL. Dhe n\u00eb Grafana, ju thjesht mund t\u00eb nd\u00ebrroni endpoint-in e Prometheus me VictoriaMetrics dhe t\u00eb gjith\u00eb dashboard-et tuaj do t\u00eb funksionojn\u00eb ashtu si\u00e7 kan\u00eb funksionuar. <\/p>\n<p><\/p>\n<p>Por mund t\u00eb p\u00ebrdorni edhe funksione shtes\u00eb q\u00eb i jep VictoriaMetrics.<\/p>\n<p><\/p>\n<p>Do t\u00eb kalojm\u00eb shpejt n\u00ebp\u00ebr funksionet q\u00eb ne kemi shtuar.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/78e9c0ce91fad48ab859fc2cf06a0689.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Omit interval param \u2013 mund t\u00eb kaloni parametrin e intervalit n\u00eb Grafana. Kur nuk doni t\u00eb merrni grafik\u00eb t\u00eb \u00e7uditshme kur b\u00ebni zoom-in\/out n\u00eb panel, \u00ebsht\u00eb e rekomanduar t\u00eb p\u00ebrdorni variabl\u00ebn <code>$__interval<\/code>. Kjo \u00ebsht\u00eb nj\u00eb variabl\u00eb e brendshme n\u00eb Grafana dhe ajo vet\u00eb zgjedh intervalin e t\u00eb dh\u00ebnave. Dhe VictoriaMetrics mund ta kuptoj\u00eb vet\u00eb se si duhet t\u00eb jet\u00eb ky interval. Dhe nuk keni nevoj\u00eb ta ribashkoni t\u00eb gjitha k\u00ebrkesat tuaja. Do t\u00eb jet\u00eb shum\u00eb m\u00eb e leht\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/4094c7b8b5e6eef6134b5aa344ef7409.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Funksioni i dyt\u00eb \u00ebsht\u00eb referenca e intervalit. Mund t\u00eb p\u00ebrdorni k\u00ebt\u00eb interval n\u00eb shprehjet tuaja. Mund t\u00eb shum\u00ebzoni, ndaheni, e referoni at\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/967ca6166e588987bd69c1e1953dca31.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00eb pas, familja e funksioneve rollup. Funksioni rollup transformon \u00e7do time series tuaj n\u00eb tre time series t\u00eb ve\u00e7anta. Kjo \u00ebsht\u00eb min, max dhe avg. Un\u00eb mendoj se \u00ebsht\u00eb shum\u00eb e rehatshme, sepse ndonj\u00ebher\u00eb kjo mund t\u00eb tregoj\u00eb ndonj\u00eb anomalit\u00eb dhe imprecisions. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/d5ff7d6f6ae8f7550434a3dbbca09b20.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe n\u00ebse thjesht b\u00ebni irate ose rate, ndoshta mund t\u00eb humbni ndonj\u00eb rast kur time series e ka sjelljen ndryshe nga ajo q\u00eb keni supozuar. Me k\u00ebt\u00eb funksion \u00ebsht\u00eb shum\u00eb m\u00eb e leht\u00eb t\u00eb shihni, p\u00ebr shembull, se max \u00ebsht\u00eb shum\u00eb larg avg.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/a4e9f0d246fa33459597f7140e09538c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00eb pas variabla default. Default \u2013 do t\u00eb thot\u00eb, cila \u00ebsht\u00eb vlera q\u00eb duhet t\u00eb vizatojm\u00eb n\u00eb Grafana, n\u00ebse nuk kemi time series n\u00eb k\u00ebt\u00eb moment. Kur ndodh kjo? Supozoni se ju eksportoni nj\u00eb metrik\u00eb p\u00ebr gabimet. Dhe keni nj\u00eb aplikacion kaq t\u00eb shk\u00eblqyer, sa q\u00eb kur e filloni, nuk keni gabime dhe as q\u00eb nuk ka gabime n\u00eb tre or\u00ebt e ardhshme ose madje nj\u00eb dit\u00eb. Dhe keni dashboard-e q\u00eb tregojn\u00eb marr\u00ebdh\u00ebnien mes suksesit dhe gabimit. Dhe ata do t'ju tregojn\u00eb asgj\u00eb, sepse nuk keni metrik\u00eb p\u00ebr gabimet. Por n\u00eb default mund t\u00eb tregoni \u00e7far\u00ebdo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/cb4e23199194006186ac6907d2335cf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Keep_last_Value \u2013 ruan vler\u00ebn e fundit t\u00eb metrik\u00ebs, n\u00ebse ajo ka humbur. N\u00ebse Prometheus nuk e gjen at\u00eb n\u00eb 5 minuta pas skrapit t\u00eb ardhsh\u00ebm, k\u00ebtu do t\u00eb mbajm\u00eb vler\u00ebn e saj t\u00eb fundit dhe grafik\u00ebt tuaj p\u00ebrs\u00ebri nuk do t\u00eb prishen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/ca202f8a70f071cbd85b33b98cd28bb5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Scrape_interval \u2013 tregon sa shpesh Prometheus mbledh t\u00eb dh\u00ebnat p\u00ebr metrik\u00ebn tuaj, me \u00e7far\u00eb frekuence. K\u00ebtu mund t\u00eb shihni ndonj\u00eb humbje, p\u00ebr shembull. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/9e9f43c7e9ef9a24dcc0b43673558046.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLabel replace \u2013 funksion popullor. Por ne mendojm\u00eb se \u00ebsht\u00eb paksa e komplikuar, sepse ai merr shum\u00eb argumente. Dhe ju duhet jo vet\u00ebm t\u00eb mbani mend 5 argumente, por gjithashtu t\u00eb mbani mend radh\u00ebn e tyre.<br \/>\n<img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/adfee335e9329f6b03d6f8a42ad8e7b8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPrandaj, pse t\u00eb mos i b\u00ebjm\u00eb ato m\u00eb t\u00eb thjeshta? Pra, t\u2019i ndajm\u00eb n\u00eb funksione t\u00eb vogla me sintaks\u00eb t\u00eb qart\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/e928549205018e7405cc2a81970a8514.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe tani vjen pjesa m\u00eb interesante. Pse ne mendojm\u00eb q\u00eb kjo \u00ebsht\u00eb PromQL e zgjeruar? Sepse mb\u00ebshtesim Shprehjet e Tabelave t\u00eb Zakonshme. Mund t\u00eb kaloni p\u00ebrmes QR-kodit (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL\">https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL<\/a><\/noindex>), shikoni lidhjet me shembuj, me nj\u00eb playground, ku mund t\u00eb b\u00ebni k\u00ebrkesa drejtp\u00ebrdrejt n\u00eb VictoriaMetrics pa e instaluar at\u00eb, thjesht n\u00eb shfletuesin tuaj.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/33259a4bcd1a92f2cab6e943b73502ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe \u00e7far\u00eb \u00ebsht\u00eb kjo? Ky k\u00ebrkes\u00eb lart \u2013 \u00ebsht\u00eb nj\u00eb k\u00ebrkes\u00eb mjaft e njohur. Mendoj se n\u00eb \u00e7do panel t\u00eb shum\u00eb kompanive p\u00ebrdorni t\u00eb nj\u00ebjtin filtrin p\u00ebr gjith\u00e7ka. Zakonisht b\u00ebhet k\u00ebshtu. Por kur ju nevojitet t\u00eb shtoni ndonj\u00eb filtrin t\u00eb ri, ju duhet t\u00eb azhurnoni \u00e7do panel, ose t\u00eb shkarkoni dashboard-in, ta hapni n\u00eb JSON, t\u00eb b\u00ebni find replace, q\u00eb gjithashtu merr koh\u00eb. Pse t\u00eb mos e ruani k\u00ebt\u00eb vler\u00eb n\u00eb nj\u00eb variab\u00ebl dhe ta rishfryt\u00ebzoni at\u00eb? M\u00eb duket se kjo \u00ebsht\u00eb shum\u00eb m\u00eb e thjesht\u00eb dhe e qart\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/60aea73cf49934ef7d9a7928a8e2f8e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebr shembull, kur duhet t\u00eb azhurnoj filtrat n\u00eb Grafana p\u00ebr t\u00eb gjitha k\u00ebrkesat, dhe dashboard-i mund t\u00eb jet\u00eb i madh ose mund t\u00eb ket\u00eb edhe disa. Si do t\u00eb doja ta zgjidhja k\u00ebt\u00eb problem n\u00eb Grafana?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/7cf9eb13219bbd9a5d3240bdda1839a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>E zgjidh k\u00ebt\u00eb problem k\u00ebshtu: krijoj commonFilter dhe n\u00eb t\u00eb p\u00ebrcaktoj k\u00ebt\u00eb filtrin, e pastaj e rishfryt\u00ebzoj n\u00eb k\u00ebrkesa. Por n\u00ebse tani e b\u00ebni nj\u00ebsoj, kjo nuk do t\u00eb funksionoj\u00eb, sepse Grafana nuk lejon q\u00eb t\u00eb p\u00ebrdorni variablat brenda k\u00ebrkesave t\u00eb variablave. Dhe kjo \u00ebsht\u00eb pak e \u00e7uditshme.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/0b7a40976cb3eeda370518a242f78708.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Prandaj krijova nj\u00eb variant q\u00eb lejon k\u00ebt\u00eb. N\u00ebse jeni t\u00eb interesuar ose doni nj\u00eb ve\u00e7ori t\u00eb till\u00eb, mb\u00ebshtetni ose jepni nj\u00eb dislike n\u00ebse kjo ide nuk ju p\u00eblqen. <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=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/68e3a408ff2b554cdfd61a2da4c75bc0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00eb tutje n\u00eb lidhje me PromQL t\u00eb zgjeruar. K\u00ebtu ne p\u00ebrcaktojm\u00eb jo vet\u00ebm nj\u00eb variab\u00ebl, por nj\u00eb funksion t\u00eb t\u00ebr\u00eb. E quajm\u00eb at\u00eb ru (resource usage). Ky funksion pranon burimet e lira, kufizimin e burimit dhe filtrin. Duket se sintaksa \u00ebsht\u00eb mjaft e thjesht\u00eb. Edhe shum\u00eb e leht\u00eb p\u00ebr t\u00eb p\u00ebrdorur k\u00ebt\u00eb funksion dhe p\u00ebr t\u00eb llogaritur p\u00ebrqindjen e memories s\u00eb lir\u00eb. Pra, sa kemi memories, \u00e7far\u00eb kufizimi kemi dhe si ta filtrojm\u00eb. Kjo duket shum\u00eb m\u00eb e p\u00ebrshtatshme, n\u00ebse do t'ju duhej t\u00eb shkruanit t\u00eb gjitha k\u00ebto, duke rishfryt\u00ebzuar t\u00eb nj\u00ebjtat filtra, sepse do t\u00eb shnd\u00ebrrohej n\u00eb nj\u00eb k\u00ebrkes\u00eb shum\u00eb t\u00eb madhe.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/4ca66e18ac665fe1038493709530b82b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe ja nj\u00eb shembull i nj\u00eb k\u00ebrkese shum\u00eb t\u00eb madhe. Ai vjen nga dashboard-i zyrtar NodeExporter p\u00ebr Grafana. Por un\u00eb nuk e kuptoj shum\u00eb se \u00e7far\u00eb po ndodh k\u00ebtu. Sigurisht, e kuptoj n\u00ebse e shoh me kujdes, por numri i kllapave mund t\u00eb zvog\u00ebloj\u00eb menj\u00ebher\u00eb motivimin p\u00ebr t\u00eb kuptuar se \u00e7far\u00eb po ndodh k\u00ebtu. Pse t\u00eb mos e b\u00ebjm\u00eb at\u00eb m\u00eb t\u00eb thjesht\u00eb dhe m\u00eb t\u00eb qart\u00eb?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/50e01e7f0c1d03965b028266130413f0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebr shembull, k\u00ebshtu, duke e ndar\u00eb at\u00eb n\u00eb gj\u00ebra ose pjes\u00eb thelb\u00ebsore n\u00eb variabla. Dhe pastaj t\u00eb b\u00ebj matematik\u00ebn time bazike. Kjo \u00ebsht\u00eb m\u00eb e ngjashme me programimin, kjo \u00ebsht\u00eb ajo q\u00eb un\u00eb do t\u00eb doja t\u00eb shihja n\u00eb t\u00eb ardhmen n\u00eb Grafana.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/81f957d89f97ebf686abdf969982d3ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja nj\u00eb shembull tjet\u00ebr, se si mund ta b\u00ebjm\u00eb edhe m\u00eb t\u00eb leht\u00eb, n\u00ebse do t\u00eb kishim k\u00ebt\u00eb funksion ru, dhe ai tashm\u00eb \u00ebsht\u00eb n\u00eb VictoriaMetrics. Dhe ju at\u00ebher\u00eb thjesht kaloni vler\u00ebn e ruajtur q\u00eb keni shpallur n\u00eb CTE.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/415302741e14232228353db6ec57a2e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kam folur tashm\u00eb se sa e r\u00ebnd\u00ebsishme \u00ebsht\u00eb t\u00eb p\u00ebrdor\u00ebsh gjuh\u00ebn e duhur t\u00eb programimit. Dhe ndoshta n\u00eb \u00e7do kompani n\u00eb Grafana ndodhin gj\u00ebra t\u00eb ndryshme. Dhe ndoshta ju gjithashtu u jepni qasje zhvilluesve tuaj n\u00eb Grafana, dhe zhvilluesit b\u00ebjn\u00eb di\u00e7ka t\u00eb tyre. Dhe t\u00eb gjith\u00eb e b\u00ebjn\u00eb at\u00eb ndryshe. Do t\u00eb ishte mir\u00eb q\u00eb ta zbresim k\u00ebt\u00eb n\u00eb nj\u00eb standard t\u00eb p\u00ebrbashk\u00ebt.<\/p>\n<p><\/p>\n<p>Supozoni se keni jo vet\u00ebm inxhinier\u00eb sistemesh, ndoshta keni edhe ekspert\u00eb, devops ose SRE. Mund t\u00eb keni ekspert\u00eb q\u00eb e din\u00eb se \u00e7far\u00eb \u00ebsht\u00eb monitorimi, e din\u00eb se \u00e7far\u00eb \u00ebsht\u00eb Grafana, pra, ata punojn\u00eb me k\u00ebt\u00eb p\u00ebr vite me radh\u00eb dhe ata me siguri e din\u00eb si ta b\u00ebjn\u00eb si\u00e7 duhet. Dhe ata e kan\u00eb shkruar k\u00ebt\u00eb 100 her\u00eb dhe e kan\u00eb shpjeguar t\u00eb gjith\u00ebve, por p\u00ebr ndonj\u00eb arsye, askush nuk d\u00ebgjon.<\/p>\n<p><\/p>\n<p>Por \u00e7far\u00eb do t\u00eb ndodhte, n\u00ebse ata do t\u00eb mund ta vendosin k\u00ebt\u00eb njohuri direkt n\u00eb Grafana, q\u00eb p\u00ebrdoruesit e tjer\u00eb t\u00eb mund t\u00eb rishfryt\u00ebzojn\u00eb funksionet? Dhe n\u00ebse do t\u00eb duhej t\u00eb llogarisnin p\u00ebrqindjen e memories s\u00eb lir\u00eb, ata do t\u00eb thoshin thjesht ta aplikonin funksionin. \u00c7far\u00eb, n\u00ebse krijuesit e eksportuesve, s\u00eb bashku me produktin e tyre, ofronin gjithashtu nj\u00eb grup funksionesh, si t\u00eb punoni me metrikat e tyre, sepse ata e din\u00eb me siguri se \u00e7far\u00eb jan\u00eb ato metrika dhe si t\u00eb llogariten si\u00e7 duhet?<\/p>\n<p><\/p>\n<p>N\u00eb fakt, kjo nuk ekziston. K\u00ebt\u00eb e kam b\u00ebr\u00eb vet\u00eb. Kjo \u00ebsht\u00eb mb\u00ebshtetja e librarive n\u00eb Grafana. Supozoni, djemt\u00eb q\u00eb krijuan NodeExporter, b\u00ebn\u00eb at\u00eb q\u00eb kam treguar. Dhe ofruan gjithashtu nj\u00eb grup funksionesh. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/755391ee41fd2abf4cb74fad17cecaf0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pra, duket k\u00ebshtu. Ju lidheni me k\u00ebt\u00eb bibliotek\u00eb n\u00eb Grafana, hyni n\u00eb redaktim dhe k\u00ebtu \u00ebsht\u00eb shum\u00eb e thjesht\u00eb shkruar n\u00eb JSON, se si t\u00eb punoni me k\u00ebt\u00eb metrik\u00eb. Pra, nj\u00eb grup funksionesh, p\u00ebrshkrimi i tyre dhe si ato zgjidhen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/78a85dd219a421757807be895c173a39.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mendoj se kjo mund t\u00eb ishte e dobishme, sepse at\u00ebher\u00eb n\u00eb Grafana do t\u00eb shkruanit thjesht k\u00ebshtu. Dhe Grafana \"tregon\" se ka nj\u00eb funksion t\u00eb till\u00eb nga nj\u00eb bibliotek\u00eb e till\u00eb \u2013 le t\u00eb p\u00ebrdorim at\u00eb. M\u00eb duket se kjo do t\u00eb ishte shum\u00eb e shk\u00eblqyer.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/6e6b2b459c574d95d56251cd5fae5586.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pak pak p\u00ebr VictoriaMetrics. Ne b\u00ebjm\u00eb shum\u00eb gj\u00ebra interesante. Lexoni artikujt tan\u00eb mbi compression, konkurrencat tona me aplikacionet e tjera t\u00eb dh\u00ebnash time series, shpjegimin ton\u00eb se si t\u00eb punoni me PromQL, sepse ka shum\u00eb fillestar\u00eb akoma, si dhe mbi vertical scalability dhe p\u00ebrballjen me Thanos.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 interpretimi i raportit nga Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/562829a25ee6131c7eaed8c561c6927c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pyetje:<\/p>\n<p><\/p>\n<p><em>Do ta filloj pyetjen time me nj\u00eb histori t\u00eb thjesht\u00eb nga jeta. Kur fillova p\u00ebr her\u00eb t\u00eb par\u00eb t\u00eb p\u00ebrdorja Grafana, shkrova nj\u00eb k\u00ebrkes\u00eb shum\u00eb t\u00eb besueshme me gjat\u00ebsi 5 rreshta. N\u00eb fund doli nj\u00eb grafik shum\u00eb i pranuesh\u00ebm. Ky grafik pothuajse shkoi n\u00eb production. Por, duke e par\u00eb nga af\u00ebr, u zbulua se ky grafik tregonte nj\u00eb patate nj\u00ebmij\u00eb, q\u00eb nuk kishte asnj\u00eb lidhje me realitetin, megjith\u00ebse numrat bien brenda kufijve q\u00eb ne prisnim t\u00eb shihnim. Dhe pyetja ime \u00ebsht\u00eb: ne kemi biblioteka, kemi funksione, por si shkruajm\u00eb teste p\u00ebr Grafana? Keni shkruar nj\u00eb k\u00ebrkes\u00eb t\u00eb komplikuar, e cila varet nga nj\u00eb vendim biznesi \u2013 t\u00eb porositni nj\u00eb en\u00eb reale serverash ose jo. Dhe si e dim\u00eb se ajo funksion q\u00eb vizaton grafikun duket si e v\u00ebrtet\u00eb. Faleminderit.<\/em><\/p>\n<p><\/p>\n<p>Faleminderit p\u00ebr pyetjen. K\u00ebtu ka dy pjes\u00eb. E para \u2013 m\u00eb duket, nga p\u00ebrvoja ime, se shumica e p\u00ebrdoruesve, kur shohin grafik\u00ebt e tyre, nuk kuptojn\u00eb se \u00e7far\u00eb u tregojn\u00eb ata. P\u00ebr ndonj\u00eb arsye, njer\u00ebzit jan\u00eb shum\u00eb t\u00eb mir\u00eb p\u00ebr t\u00eb gjetur justifikime p\u00ebr \u00e7do anomalie q\u00eb ndodh n\u00eb grafik\u00eb, madje edhe n\u00ebse \u00ebsht\u00eb nj\u00eb gabim brenda funksionit. Dhe pjesa e dyt\u00eb \u2013 mendoj se p\u00ebrdorimi i k\u00ebtyre funksioneve do t\u00eb ishte shum\u00eb m\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr zgjidhjen e problemit tuaj, n\u00eb vend q\u00eb \u00e7do zhvillues t\u00eb b\u00ebnte planifikimin e kapacitetit dhe t\u00eb gabonte me ndonj\u00eb probabilitet.<\/p>\n<p><\/p>\n<p><em>Si ta kontrollojm\u00eb?<\/em><\/p>\n<p><\/p>\n<p>Si ta kontrollojm\u00eb? Ndoshta, ashtu. <\/p>\n<p><\/p>\n<p><em>N\u00eb form\u00ebn e nj\u00eb testi n\u00eb Grafana.<\/em><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb lidhet me Grafana? Grafana transmeton k\u00ebt\u00eb k\u00ebrkes\u00eb menj\u00ebher\u00eb n\u00eb DataSource.<\/p>\n<p><\/p>\n<p><em>Duke shtuar pak n\u00eb parametrat.<\/em><\/p>\n<p><\/p>\n<p>Jo, n\u00eb Grafana nuk shtojn\u00eb asgj\u00eb. Mund t\u00eb ket\u00eb parametra GET, si p\u00ebr shembull, step. Ai nuk tregohet qart\u00eb, por ju mund ta tejkaloni, mund edhe t\u00eb mos e tejkaloni, por ai shtohet automatikisht. K\u00ebtu nuk do t\u00eb shkruani teste. Mendoj se nuk ia vlen t\u00eb besoni Grafana si burimi i t\u00eb v\u00ebrtet\u00ebs.<\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr raportin! Faleminderit p\u00ebr compression! Ju p\u00ebrmend\u00ebt lidhjen e variableve n\u00eb grafik, se n\u00eb Grafana nuk mund t\u00eb p\u00ebrdoren variabla brenda variablave. A e kuptoni \u00e7far\u00eb kam parasysh?<\/em><\/p>\n<p><\/p>\n<p>Po.<\/p>\n<p><\/p>\n<p><em>Kjo ishte fillimisht nj\u00eb dhimbje koke, kur doja t\u00eb b\u00ebja nj\u00eb alert n\u00eb Grafana. Dhe atje duhet t\u00eb b\u00ebsh nj\u00eb alert p\u00ebr \u00e7do host ve\u00e7 e ve\u00e7. A funksionon kjo gj\u00eb q\u00eb b\u00ebt\u00eb p\u00ebr alertet n\u00eb Grafana?<\/em><\/p>\n<p><\/p>\n<p>N\u00ebse Grafana nuk i qaset variablave ndryshe, at\u00ebher\u00eb po, ajo do t\u00eb funksionoj\u00eb. Por k\u00ebshilla ime \u00ebsht\u00eb t\u00eb mos p\u00ebrdorni alarmin n\u00eb Grafana fare, m\u00eb mir\u00eb t\u00eb p\u00ebrdorni alertmanager.<\/p>\n<p><\/p>\n<p><em>Po, un\u00eb e p\u00ebrdor, por thjesht dukej m\u00eb e leht\u00eb p\u00ebr t'u konfiguruar n\u00eb Grafana, por faleminderit p\u00ebr k\u00ebshill\u00ebn!<\/em><\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/494034\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e &quot;ExtendedPromQL&quot; \u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e \u043c\u043d\u0435. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 CloudFlare, \u0436\u0438\u0432\u0443 \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0435. \u041d\u043e \u0442\u0430\u043a\u0436\u0435 \u044f \u043c\u0435\u0439\u0442\u0435\u043d\u0435\u0440 VictoriaMetrics. \u0418 \u044f \u0430\u0432\u0442\u043e\u0440 ClickHouse \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f Grafana \u0438 ClickHouse-proxy \u2013 \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ClickHouse. \u041c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u00bb \u0438 \u0432 \u043d\u0435\u0439 \u044f \u0431\u0443\u0434\u0443 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":75586,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-75585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e &quot;ExtendedPromQL&quot; \u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e \u043c\u043d\u0435. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 CloudFlare, \u0436\u0438\u0432\u0443 \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0435. \u041d\u043e \u0442\u0430\u043a\u0436\u0435 \u044f \u043c\u0435\u0439\u0442\u0435\u043d\u0435\u0440 VictoriaMetrics. \u0418 \u044f \u0430\u0432\u0442\u043e\u0440 ClickHouse \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f Grafana \u0438 ClickHouse-proxy \u2013 \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ClickHouse. \u041c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u00bb \u0438 \u0432 \u043d\u0435\u0439 \u044f \u0431\u0443\u0434\u0443\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u00abExtendedPromQL\u00bb \u2014 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e &quot;ExtendedPromQL&quot; \u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e \u043c\u043d\u0435. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 CloudFlare, \u0436\u0438\u0432\u0443 \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0435. \u041d\u043e \u0442\u0430\u043a\u0436\u0435 \u044f \u043c\u0435\u0439\u0442\u0435\u043d\u0435\u0440 VictoriaMetrics. \u0418 \u044f \u0430\u0432\u0442\u043e\u0440 ClickHouse \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f Grafana \u0438 ClickHouse-proxy \u2013 \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ClickHouse. \u041c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u00bb \u0438 \u0432 \u043d\u0435\u0439 \u044f \u0431\u0443\u0434\u0443\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/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\"ExtendedPromQL\" \u2014 p\u00ebrmbledhja e raportit t\u00eb Roman Havronenko | ProHoster","description":"Propozoj t\u00eb njiheni me p\u00ebrmbledhjen e raportit t\u00eb Roman Havronenko \"ExtendedPromQL\". N\u00eb shkurt p\u00ebr veten time. M\u00eb quajn\u00eb Roman. Punoj n\u00eb CloudFlare, jetoj n\u00eb Lond\u00ebr. Por gjithashtu jam mjetues i VictoriaMetrics. Dhe un\u00eb jam krijuesi i plugin-it ClickHouse p\u00ebr Grafana dhe ClickHouse-proxy \u2013 nj\u00eb proxy i vog\u00ebl p\u00ebr ClickHouse. Do t\u00eb fillojm\u00eb me pjes\u00ebn e par\u00eb, q\u00eb quhet \"V\u00ebshtir\u00ebsit\u00eb e p\u00ebrkthimit\" dhe do ta kem","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u00abExtendedPromQL\u00bb \u2014 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0420\u043e\u043c\u0430\u043d\u0430 \u0425\u0430\u0432\u0440\u043e\u043d\u0435\u043d\u043a\u043e &quot;ExtendedPromQL&quot; \u041a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e \u043c\u043d\u0435. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 CloudFlare, \u0436\u0438\u0432\u0443 \u0432 \u041b\u043e\u043d\u0434\u043e\u043d\u0435. \u041d\u043e \u0442\u0430\u043a\u0436\u0435 \u044f \u043c\u0435\u0439\u0442\u0435\u043d\u0435\u0440 VictoriaMetrics. \u0418 \u044f \u0430\u0432\u0442\u043e\u0440 ClickHouse \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0434\u043b\u044f Grafana \u0438 ClickHouse-proxy \u2013 \u044d\u0442\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ClickHouse. \u041c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u00bb \u0438 \u0432 \u043d\u0435\u0439 \u044f \u0431\u0443\u0434\u0443","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-27T05:42:28+00:00","article:modified_time":"2020-03-27T05:42:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"75585","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:54:47","updated":"2022-09-28 07:46:53"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/75585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=75585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/75585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/75586"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=75585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=75585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=75585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}