{"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 transkriptimi i prezantimit t\u00eb Roman Khavronenko","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Ju lutem shikoni shpjegimin e raportit t\u00eb Roman Khavronenko \"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 transkriptimi i prezantimit t\u00eb 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 p\u00ebr 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 ClickHouse<\/a><\/noindex> p\u00ebr Grafana dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/chproxy\">ClickHouse-proxy<\/a><\/noindex> \u2013 \u00ebsht\u00eb nj\u00eb proxy i vog\u00ebl p\u00ebr ClickHouse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 \"V\u00ebshtir\u00ebsit\u00eb e p\u00ebrkthimit\" dhe n\u00eb t\u00eb do t\u00eb flas p\u00ebr at\u00eb se \u00e7do gjuh\u00eb ose madje edhe thjesht m\u00ebnyra e komunikimit \u2013 \u00ebsht\u00eb shum\u00eb e r\u00ebnd\u00ebsishme. Sepse kjo \u00ebsht\u00eb m\u00ebnyra se si ju i p\u00ebrcillni nj\u00eb personi tjet\u00ebr ose nj\u00eb sistemi mendimet tuaja, si e formuloni k\u00ebrkes\u00ebn. Njer\u00ebzit n\u00eb internet debatojn\u00eb p\u00ebr at\u00eb se cila gjuh\u00eb \u00ebsht\u00eb m\u00eb e mira \u2013 java apo ndonj\u00eb tjet\u00ebr. P\u00ebr vete, vendosa t\u00eb zgjedh sipas detyr\u00ebs, sepse e gjith\u00eb kjo \u00ebsht\u00eb specifike.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/ea21f52ba5c2d3507e0106715c4ab96d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb fillojm\u00eb nga fillimi. \u00c7far\u00eb \u00ebsht\u00eb PromQL? PromQL \u2013 \u00ebsht\u00eb Gjuha e K\u00ebrkimeve Prometheus. Kjo \u00ebsht\u00eb m\u00ebnyra se si formojm\u00eb k\u00ebrkesat n\u00eb Prometheus, p\u00ebr t\u00eb marr\u00eb t\u00eb dh\u00ebna serike temporale.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 serike temporale? N\u00ebse e shohim literal, ato jan\u00eb tre parametra. <\/p>\n<p><\/p>\n<p>Ato jan\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>\u00c7far\u00eb po shohim. <\/li>\n<li>Kur po e shohim at\u00eb.<\/li>\n<li>Dhe \u00e7far\u00eb vlere tregon. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/358a193e889204d28debe1b74b93df3a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00ebse e shikojm\u00eb k\u00ebt\u00eb diagram (k\u00ebtu jan\u00eb t\u00eb dh\u00ebnat nga telefoni im q\u00eb tregon statistikat e hapave t\u00eb mi), mund t\u00eb p\u00ebrgjigjemi shpejt n\u00eb k\u00ebto pyetje. <\/p>\n<p><\/p>\n<p>Po shohim hapa. Shohim vler\u00ebn dhe shohim koh\u00ebn, kur po e shohim. Dometh\u00ebn\u00eb, duke e par\u00eb k\u00ebt\u00eb diagram, \u00ebsht\u00eb leht\u00eb t\u00eb thuash se t\u00eb diel\u00ebn kam kaluar rreth 15,000 hapa. K\u00ebto jan\u00eb t\u00eb dh\u00ebna serike temporale. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 \"ndajm\u00eb\" (transformojm\u00eb) ato n\u00eb nj\u00eb model tjet\u00ebr t\u00eb t\u00eb dh\u00ebnave n\u00eb form\u00eb tabele. K\u00ebtu kemi gjithashtu at\u00eb q\u00eb po shikojm\u00eb. K\u00ebtu kam shtuar pak t\u00eb dh\u00ebna t\u00eb tjera, t\u00eb cilat do t'i quajm\u00eb metadhen\u00eb, dmth. nuk ka kaluar un\u00eb, por dy persona, le t\u00eb themi, Jay dhe Silent Bob. Kjo \u00ebsht\u00eb ajo q\u00eb po shikojm\u00eb; \u00e7far\u00eb tregon dhe kur tregon k\u00ebt\u00eb vler\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/fd7b48ea3c25b57c13605e84c4a52a2c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTani le t\u00eb p\u00ebrpiqemi t\u2019i ruajm\u00eb t\u00eb gjitha k\u00ebto t\u00eb dh\u00ebna n\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash. P\u00ebr shembull, mora sintaks\u00ebn e ClickHouse. Dhe k\u00ebtu krijojm\u00eb nj\u00eb tabel\u00eb q\u00eb quhet \"Steps\", dmth. \u00e7far\u00eb po shohim. Kemi koh\u00ebn, kur po e shohim at\u00eb; \u00e7far\u00eb tregon dhe disa meta-t\u00eb dh\u00ebna, ku do t\u00eb ruajm\u00eb, kush \u00ebsht\u00eb: Jay dhe Silent Bob.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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\u00ebrpiqur 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 transkriptimi i prezantimit t\u00eb 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 p\u00ebr k\u00ebt\u00eb. E para \u2013 sepse un\u00eb e shkrova at\u00eb. Dhe un\u00eb e di mir\u00eb se sa e v\u00ebshtir\u00eb \u00ebsht\u00eb t\u00eb nxjerr\u00ebsh t\u00eb dh\u00ebna time series nga ClickHouse, p\u00ebr t'i treguar n\u00eb Grafana. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/29f2d72f9995afb54b23bb7b4230b840.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Do ta tregojm\u00eb n\u00eb Graph Panel. Kjo \u00ebsht\u00eb paneli m\u00eb popullor n\u00eb Grafana, i cili tregon var\u00ebsin\u00eb e vler\u00ebs nga koha, prandaj na duhen vet\u00ebm dy parametra.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 i ruajtur k\u00ebto t\u00eb dh\u00ebna n\u00eb ClickHouse, n\u00eb at\u00eb tabel\u00eb q\u00eb e krijuam. Dhe ne shkruajm\u00eb nj\u00eb k\u00ebrkes\u00eb t\u00eb till\u00eb t\u00eb thjesht\u00eb. Ne zgjedhim nga hapat. Ne zgjedhim vler\u00ebn dhe zgjedhim koh\u00ebn e k\u00ebtyre vlerave, dmth ato tri parametra q\u00eb kemi p\u00ebrmendur.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/ad7895105050178de5bc8a154da7e6e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe rezultati do t\u00eb jet\u00eb nj\u00eb grafik i till\u00eb. Kush e di pse \u00ebsht\u00eb kaq i \u00e7uditsh\u00ebm?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 transkriptimi i prezantimit t\u00eb 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 kemi nj\u00eb grafik m\u00eb t\u00eb mir\u00eb, por ende t\u00eb \u00e7uditsh\u00ebm. Kush e di pse? E sakt\u00eb, ka dy pjes\u00ebmarr\u00ebs, dhe ne n\u00eb Grafana i japim dy time series, sepse n\u00ebse e shqyrtojm\u00eb modelin e t\u00eb dh\u00ebnave p\u00ebrs\u00ebri, \u00e7do time series \u00ebsht\u00eb nj\u00eb kombinim unik i emrit dhe t\u00eb gjitha \u00e7el\u00ebs-vlerave t\u00eb etiketave.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/f19bf1a9f43ae8de22af6bf7b494902f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Prandaj duhet t\u00eb zgjedhim nj\u00eb person konkret. Ne zgjedhim Jay.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 duket m\u00eb i v\u00ebrtet\u00eb. Tani \u00ebsht\u00eb nj\u00eb grafik normal dhe gjith\u00e7ka funksionon mir\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 ta b\u00ebni di\u00e7ka t\u00eb ngjashme n\u00eb Prometheus p\u00ebrmes PromQL. Paksa k\u00ebshtu. M\u00eb e thjesht\u00eb. Dhe gjithashtu do ta ndajm\u00eb k\u00ebt\u00eb t\u00eb gjitha. Ne merremi me Hapat. Dhe filtrojm\u00eb p\u00ebr Jay. K\u00ebtu nuk specifikojm\u00eb se duam t\u00eb marrim vler\u00ebn dhe nuk zgjedhim koh\u00ebn. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/5e080a1b88c156522af21bf00f3cd641.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tani le t\u00eb provojm\u00eb t\u00eb llogarisim shpejt\u00ebsin\u00eb e l\u00ebvizjes s\u00eb Jay ose Silent Bob. N\u00eb ClickHouse do t\u00eb duhet t\u00eb b\u00ebjm\u00eb runningDifference, dmth t\u00eb llogarisim diferenc\u00ebn midis \u00e7ifteve t\u00eb pikave dhe t'i ndajm\u00eb ato me koh\u00ebn, p\u00ebr t\u00eb marr\u00eb shpejt\u00ebsin\u00eb e sakt\u00eb. K\u00ebrkesa do t\u00eb duket pak a shum\u00eb k\u00ebshtu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 vlera t\u00eb tilla, dmth Silent Bob ose Jay b\u00ebjn\u00eb p\u00ebraf\u00ebrsisht 1.8 hapa n\u00eb sekond\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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. 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 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/a7145785dee9fafcc8ab573e920cb88e.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Dhe q\u00eb t\u00eb mbetet gjithashtu e leht\u00eb p\u00ebr t'u b\u00ebr\u00eb n\u00eb Grafana, kam shtuar k\u00ebt\u00eb mb\u00ebshtjell\u00ebs, q\u00eb duket shum\u00eb si PromQL. E quajm\u00eb Rate Macros ose si t\u00eb doni ta quani. N\u00eb Grafana shkruani thjesht \u00abrate\u00bb, por diku thell\u00eb ajo transformohet n\u00eb nj\u00eb pyetje t\u00eb madhe. Dhe nuk keni nevoj\u00eb ta shikoni at\u00eb, ajo \u00ebsht\u00eb diku aty, por ju kurseni shum\u00eb koh\u00eb, sepse t\u00eb shkruani pyetje kaq t\u00eb m\u00ebdha SQL \u2013 \u00ebsht\u00eb gjithmon\u00eb e shtrenjt\u00eb. Ju mund t\u00eb gaboni leht\u00ebsisht dhe pastaj t\u00eb mos kuptoni p\u00ebr \u00e7far\u00eb po ndodh p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 pyetje q\u00eb nuk u vendos as n\u00eb nj\u00eb slajd dhe m\u00eb duhej ta ndaj n\u00eb dy kolona. Kjo \u00ebsht\u00eb gjithashtu nj\u00eb pyetje n\u00eb ClickHouse, q\u00eb b\u00ebn t\u00eb nj\u00ebjt\u00ebn gj\u00eb rate, por p\u00ebr t\u00eb dyja serit\u00eb e koh\u00ebs: Silent Bob dhe Jay, n\u00eb m\u00ebnyr\u00eb q\u00eb n\u00eb panel t\u00eb kemi dy seri kohore. 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 transkriptimi i prezantimit t\u00eb 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 do t\u00eb jet\u00eb sum (rate). P\u00ebr ClickHouse b\u00ebra nj\u00eb makros t\u00eb ve\u00e7ant\u00eb, e cila quhet RateColumns, e cila duket si nj\u00eb pyetje n\u00eb Prometheus.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/9743c6a4b3de4aab7cfb5bd3fd50fcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne e shikuam dhe duket se PromQL \u00ebsht\u00eb i shk\u00eblqyer, por ai ka, natyrisht, kufizime.<\/p>\n<p><\/p>\n<p>Ato jan\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>SELECT i kufizuar.<\/li>\n<li>JOIN-i kufitar.<\/li>\n<li>Nuk ka mb\u00ebshtetje 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, ju 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 q\u00eb ne po i diskutojm\u00eb tani mund t\u00eb ishin b\u00ebr\u00eb n\u00eb SQL. Por do t\u00eb ishte e p\u00ebrshtatshme p\u00ebr t'u p\u00ebrdorur? Dhe kjo m\u00eb \u00e7on n\u00eb mendimin se nuk \u00ebsht\u00eb gjithmon\u00eb gjuha m\u00eb e fuqishme q\u00eb mund t\u00eb jet\u00eb m\u00eb e p\u00ebrshtatshme.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 nj\u00eb gjuh\u00eb p\u00ebr detyra. Kjo \u00ebsht\u00eb si beteja e Batman-it me Superman-in. \u00cbsht\u00eb e qart\u00eb se Superman \u00ebsht\u00eb m\u00eb i fort\u00eb, por Batman arriti ta mposht at\u00eb, sepse ai 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 transkriptimi i prezantimit t\u00eb 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 \u2013 \u00ebsht\u00eb Extending PromQL.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/b806acf0e6c7c416614d3fd49004b4be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nj\u00eb her\u00eb tjet\u00ebr p\u00ebr VictoriaMetrics. \u00c7far\u00eb \u00ebsht\u00eb VictoriaMetrics? Kjo \u00ebsht\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash serish kohore, ajo \u00ebsht\u00eb OpenSource, ne e shp\u00ebrndajm\u00eb versionet nj\u00ebher\u00ebsh dhe klaster. Sipas benchmarkeve tona, ajo \u00ebsht\u00eb m\u00eb e shpejt\u00eb nga gjith\u00e7ka q\u00eb ka n\u00eb treg tani dhe p\u00ebr kompresimin po ashtu, pra, njer\u00ebz t\u00eb v\u00ebrtet\u00eb raportojn\u00eb kompresimin diku n\u00eb 0,4 bytes p\u00ebr pik\u00eb, kur p\u00ebr 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>N\u00eb ne mund t\u00eb \"shkruajm\u00eb\", dmth. mund t\u00eb transferojm\u00eb t\u00eb dh\u00ebnat e vjetra. <\/p>\n<p><\/p>\n<p>Dhe po ashtu punojm\u00eb n\u00eb m\u00ebnyr\u00eb perfekte me Prometheus dhe Grafana, pra ne mb\u00ebshtesim motorin PromQL. Dhe n\u00eb Grafana mund t\u00eb thjesht ndryshoni endpoint-in e Prometheus-it me VictoriaMetrics dhe t\u00eb gjitha dashboardet tuaja do t\u00eb funksionojn\u00eb si\u00e7 kan\u00eb funksionuar. <\/p>\n<p><\/p>\n<p>Porosin\u00eb e VictoriaMetrics, ju gjithashtu mund t\u00eb p\u00ebrdorni ve\u00e7ori t\u00eb tjera.<\/p>\n<p><\/p>\n<p>Ne do t\u00eb kalojm\u00eb shpejt n\u00ebp\u00ebr funksionet q\u00eb kemi shtuar.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 ju mund t\u00eb mos e p\u00ebrfshini parametrin e intervalit n\u00eb Grafana. Kur nuk d\u00ebshironi t\u00eb merrni grafika t\u00eb \u00e7uditshme gjat\u00eb zoom-in\/ out n\u00eb panel, rekomandohet t\u00eb p\u00ebrdorni variabl\u00ebn <code>{$__interval}.<\/code>Kjo \u00ebsht\u00eb nj\u00eb variab\u00ebl e brendshme e Grafana dhe ajo e zgjidh vet\u00eb intervalin e t\u00eb dh\u00ebnave. Dhe VictoriaMetrics mund t\u00eb kuptoj\u00eb se \u00e7far\u00eb duhet t\u00eb jet\u00eb ky interval. Nuk keni nevoj\u00eb ta p\u00ebrdit\u00ebsoni t\u00eb gjith\u00eb k\u00ebrkesat tuaja. Do t\u00eb jet\u00eb shum\u00eb m\u00eb e thjesht\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 referimi i intervalit. Ju mund ta p\u00ebrdorni k\u00ebt\u00eb interval n\u00eb shprehjet tuaja. Mund ta shum\u00ebzoni, ta ndani, ta kaloni e ta referoni.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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, kemi familjen e funksioneve t\u00eb rollup. Funksioni rollup transformon \u00e7do ser\u00eb kohore tuaj\u00ebn n\u00eb tri ser\u00eb t\u00eb ve\u00e7anta. K\u00ebto jan\u00eb min, max dhe avg. Mendoj se \u00ebsht\u00eb shum\u00eb e dobishme, sepse ndonj\u00ebher\u00eb mund t\u00eb tregoj\u00eb disa outliers (anomali) dhe pasakt\u00ebsi. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/d5ff7d6f6ae8f7550434a3dbbca09b20.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00ebse thjesht b\u00ebni irate ose rate, ka shum\u00eb t\u00eb ngjar\u00eb q\u00eb mund t\u00eb humbni disa raste kur ser\u00eb kohore sillet ndryshe nga \u00e7far\u00eb keni pritur. Me k\u00ebt\u00eb funksion \u00ebsht\u00eb shum\u00eb m\u00eb e leht\u00eb t\u00eb shihni, p\u00ebr shembull, q\u00eb max \u00ebsht\u00eb shum\u00eb m\u00eb i lart\u00eb se avg.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 kemi variabl\u00ebn default. Default tregon se cili \u00ebsht\u00eb vlera q\u00eb duam t\u00eb vizatojm\u00eb n\u00eb Grafana, n\u00ebse n\u00eb at\u00eb moment nuk kemi ndonj\u00eb ser\u00eb t\u00eb dh\u00ebnash. Kur ndodh kjo? P\u00ebr shembull, n\u00ebse eksportoni ndonj\u00eb metrik\u00eb p\u00ebr gabimet. Nd\u00ebrkoh\u00eb q\u00eb aplikacioni juaj \u00ebsht\u00eb aq i shk\u00eblqyer, saq\u00eb kur e keni nisur, nuk ka pasur gabime dhe as nuk ka patur gabime n\u00eb or\u00ebt e para ose madje edhe nj\u00eb dit\u00eb. Dhe keni dashboard q\u00eb tregojn\u00eb raportin mes suksesit dhe gabimeve. Ato do t'ju tregojn\u00eb asgj\u00eb, sepse nuk keni metrik\u00eb gabimi. Por n\u00eb default mund t\u00eb vendosni \u00e7far\u00ebdo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 humbet. N\u00ebse Prometheus pas skanimit t\u00eb ardhsh\u00ebm nuk e gjen at\u00eb brenda 5 minutash, ne do t\u00eb ruajm\u00eb vler\u00ebn e saj t\u00eb fundit dhe grafikat tuaja s\u00ebrish nuk do t\u00eb d\u00ebshtojn\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 se sa shpesh Prometheus mbledh t\u00eb dh\u00ebna p\u00ebr metrik\u00ebn tuaj, me \u00e7far\u00eb frekuence. K\u00ebtu mund t\u00eb shihni ndonj\u00eb shk\u00ebputje, p\u00ebr shembull. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 i komplikuar, sepse merr gjithsej argumente. Dhe ju duhet jo vet\u00ebm t\u00eb mbani mend 5 argumente, por gjithashtu renditjen e tyre.<br \/>\n<img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/adfee335e9329f6b03d6f8a42ad8e7b8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPrandaj, pse t\u00eb mos i thjeshtojm\u00eb ato? Dometh\u00ebn\u00eb, t'i ndajm\u00eb n\u00eb funksione t\u00eb vogla me sintaks\u00eb t\u00eb kuptueshme.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/e928549205018e7405cc2a81970a8514.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe tani, ajo q\u00eb \u00ebsht\u00eb m\u00eb interesante. Pse e quajm\u00eb k\u00ebt\u00eb PromQL t\u00eb zgjeruar? Sepse mb\u00ebshtesim Shprehjet e Tavolinave t\u00eb P\u00ebrgjithshme. Mund t\u00eb kaloni n\u00ebp\u00ebr QR-kodin (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL\">https:\/\/github.com\/VictoriaMetrics\/VictoriaMetrics\/wiki\/ExtendedPromQL<\/a><\/noindex>), t\u00eb shihni lidhjet me shembuj, me playground, ku mund t\u00eb ekzekutoni k\u00ebrkesat direkt n\u00eb VictoriaMetrics pa e instaluar at\u00eb, thjesht n\u00eb shfletues.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 \u00ebsht\u00eb nj\u00eb k\u00ebrkes\u00eb mjaft popullore. Mendoj se n\u00eb \u00e7do dashboard t\u00eb shum\u00eb kompanive, p\u00ebrdorni t\u00eb nj\u00ebjtin filtr p\u00ebr gjith\u00e7ka. Zakonisht, ashtu \u00ebsht\u00eb. Por kur ju nevojitet t\u00eb shtoni ndonj\u00eb filt\u00ebr t\u00eb ri, duhet t\u00eb p\u00ebrdit\u00ebsoni \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 ri-p\u00ebrdorni at\u00eb? M\u00eb duket kjo shum\u00eb m\u00eb e thjesht\u00eb dhe e qart\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 m\u00eb duhet t\u00eb p\u00ebrdit\u00ebsoj filtrat n\u00eb Grafana n\u00eb t\u00eb gjitha k\u00ebrkesat, dhe dashboard-i mund t\u00eb jet\u00eb i madh ose mund t\u00eb ket\u00eb edhe disa. Dhe si do doja ta zgjidhja k\u00ebt\u00eb problem n\u00eb Grafana?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/7cf9eb13219bbd9a5d3240bdda1839a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Un\u00eb e zgjidh k\u00ebt\u00eb problem k\u00ebshtu: krijoj commonFilter dhe n\u00eb t\u00eb p\u00ebrcaktoj k\u00ebt\u00eb filt\u00ebr, dhe pastaj e ri-p\u00ebrdor n\u00eb k\u00ebrkesa. Por n\u00ebse e b\u00ebni tani ashtu si un\u00eb, kjo nuk do t\u00eb funksionoj\u00eb, sepse Grafana nuk ju lejon t\u00eb p\u00ebrdorni variablat brenda variablave t\u00eb k\u00ebrkesave. Dhe kjo \u00ebsht\u00eb pak e \u00e7uditshme.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/0b7a40976cb3eeda370518a242f78708.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe prandaj b\u00ebra nj\u00eb variant t\u00eb till\u00eb q\u00eb lejon ta b\u00ebni k\u00ebt\u00eb. Dhe n\u00ebse jeni t\u00eb interesuar ose d\u00ebshironi nj\u00eb tipar t\u00eb till\u00eb, at\u00ebher\u00eb mb\u00ebshteteni ose jepni nj\u00eb dislike, n\u00ebse nuk ju p\u00eblqen kjo ide. <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 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/68e3a408ff2b554cdfd61a2da4c75bc0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00eb pas p\u00ebr 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. Dhe e quajm\u00eb ru (konsumimi i burimeve). Dhe kjo funksion merr burimet e lira, kufizimin e burimit dhe filtrin. Duket se sintaksa \u00ebsht\u00eb e thjesht\u00eb. Dhe \u00ebsht\u00eb shum\u00eb e leht\u00eb t\u00eb p\u00ebrdorim k\u00ebt\u00eb funksion dhe t\u00eb llogarisim p\u00ebrqindjen e memories s\u00eb lir\u00eb q\u00eb kemi. Dometh\u00ebn\u00eb, sa memorie kemi, \u00e7far\u00eb kufizimi dhe si t\u00eb filtrojm\u00eb. Kjo duket shum\u00eb m\u00eb e p\u00ebrshtatshme n\u00ebse do t\u00eb shkruanit t\u00eb gjitha, duke ri-p\u00ebrdorur t\u00eb nj\u00ebjt\u00ebt filtrat, 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 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/4ca66e18ac665fe1038493709530b82b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja, dhe ky \u00ebsht\u00eb nj\u00eb shembull i nj\u00eb k\u00ebrkese t\u00eb madhe. Ai vjen nga pisha zyrtare e NodeExporter p\u00ebr Grafana. Por un\u00eb e kuptoj pak \u00e7far\u00eb po ndodh k\u00ebtu. Dometh\u00ebn\u00eb, natyrisht e kuptoj, n\u00ebse e shikoj me v\u00ebmendje, por numri i hap\u00ebsirave mund t\u00eb zvog\u00ebloj\u00eb menj\u00ebher\u00eb motivimin p\u00ebr t\u00eb kuptuar se \u00e7far\u00eb po ndodh k\u00ebtu. E pse t\u00eb mos e b\u00ebjm\u00eb m\u00eb t\u00eb thjesht\u00eb dhe m\u00eb t\u00eb kuptuesh\u00ebm?<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 theksuar gj\u00ebrat ose pjes\u00ebt e r\u00ebnd\u00ebsishme n\u00eb variabla. Dhe m\u00eb pas t\u00eb b\u00ebjm\u00eb matematik\u00ebn ton\u00eb baz\u00eb. Kjo duket m\u00eb shum\u00eb si programim, kjo \u00ebsht\u00eb ajo q\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 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/81f957d89f97ebf686abdf969982d3ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ky \u00ebsht\u00eb nj\u00eb shembull tjet\u00ebr, se si mund ta b\u00ebjm\u00eb edhe m\u00eb t\u00eb thjesht\u00eb, n\u00ebse do t\u00eb kishim k\u00ebt\u00eb funksion ru, dhe ajo \u00ebsht\u00eb tashm\u00eb e pranishme n\u00eb VictoriaMetrics. Dhe ju thjesht kaloni vler\u00ebn e mbajtur, t\u00eb cil\u00ebn e keni shpallur n\u00eb CTE.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/415302741e14232228353db6ec57a2e1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Un\u00eb kam folur tashm\u00eb rreth r\u00ebnd\u00ebsis\u00eb s\u00eb p\u00ebrdorimit t\u00eb gjuh\u00ebs s\u00eb duhur t\u00eb programimit. Dhe, ndoshta, n\u00eb \u00e7do kompani n\u00eb Grafana ndodhin disa gj\u00ebra t\u00eb ndryshme. Nd\u00ebrsa, ndoshta, ju jepni akses n\u00eb Grafana p\u00ebr zhvilluesit tuaj, dhe ata b\u00ebjn\u00eb di\u00e7ka tjet\u00ebr. Dhe t\u00eb gjith\u00eb e b\u00ebjn\u00eb k\u00ebt\u00eb ndryshe. Por do t\u00eb donim q\u00eb t\u00eb ishte pak si nj\u00eb standard, dometh\u00ebn\u00eb t\u00eb reduktonim n\u00eb nj\u00eb standard t\u00eb p\u00ebrbashk\u00ebt.<\/p>\n<p><\/p>\n<p>Le t\u00eb themi se nuk keni vet\u00ebm inxhinier\u00eb sistemesh, ndoshta keni edhe ekspert\u00eb, devops ose SRE. Mund t\u00eb keni ekspert\u00eb q\u00eb din\u00eb se \u00e7far\u00eb \u00ebsht\u00eb monitorimi, din\u00eb se \u00e7far\u00eb \u00ebsht\u00eb Grafana, dometh\u00ebn\u00eb ata punojn\u00eb me k\u00ebt\u00eb p\u00ebr vite dhe e din\u00eb mir\u00eb si t\u00eb b\u00ebjn\u00eb. 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 po d\u00ebgjon.<\/p>\n<p><\/p>\n<p>E \u00e7far\u00eb do t\u00eb ndodhte n\u00ebse do t\u00eb mund t\u00eb vendosnin k\u00ebto njohuri direkt n\u00eb Grafana, n\u00eb m\u00ebnyr\u00eb q\u00eb p\u00ebrdoruesit e tjer\u00eb t\u00eb mund t\u00eb rip\u00ebrdorin funksionet? Dhe n\u00ebse do t\u00eb duhej t\u00eb llogarisnim p\u00ebrqindjen e memories s\u00eb lir\u00eb, ata thjesht do t\u00eb aplikonin funksionin. E \u00e7far\u00eb, n\u00ebse krijuesit e eksportuesve, s\u00eb bashku me produktin e tyre, ofronin gjithashtu nj\u00eb grup funksionesh, se si t\u00eb punonin me metrikat e tyre, sepse ata e din\u00eb sakt\u00ebsisht se \u00e7far\u00eb jan\u00eb metrikat dhe si t\u00eb llogariten sakt\u00eb?<\/p>\n<p><\/p>\n<p>Kjo n\u00eb t\u00eb v\u00ebrtet\u00eb nuk ekziston. K\u00ebt\u00eb e kam b\u00ebr\u00eb vet\u00eb. Kjo \u00ebsht\u00eb mb\u00ebshtetje p\u00ebr bibliotekat n\u00eb Grafana. T\u00eb themi, djemt\u00eb q\u00eb b\u00ebn\u00eb NodeExporter, kan\u00eb b\u00ebr\u00eb at\u00eb q\u00eb kam folur. Dhe gjithashtu ofruan nj\u00eb grup funksionesh. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/755391ee41fd2abf4cb74fad17cecaf0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pra, duket se k\u00ebshtu duket. Ju lidhni k\u00ebt\u00eb bibliotek\u00eb n\u00eb Grafana, hyni n\u00eb redaktim dhe k\u00ebtu \u00ebsht\u00eb shum\u00eb e thjesht\u00eb n\u00eb JSON si t\u00eb punoni me k\u00ebt\u00eb metrik\u00eb. Pra, nj\u00eb grup funksionesh, p\u00ebrshkrimi i tyre dhe se si shfaqen ato.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/78a85dd219a421757807be895c173a39.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mendoj se do t\u00eb ishte e dobishme, sepse at\u00ebher\u00eb n\u00eb Grafana do t'ju duhej vet\u00ebm t\u00eb shkruani k\u00ebshtu. Dhe Grafana ju \"thot\u00eb\" se ka nj\u00eb funksion t\u00eb till\u00eb nga nj\u00eb bibliotek\u00eb t\u00eb till\u00eb - le ta p\u00ebrdorim at\u00eb. M\u00eb duket se do t\u00eb ishte shum\u00eb mir\u00eb.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb Roman Khavronenko\" src=\"\/wp-content\/uploads\/2020\/03\/6e6b2b459c574d95d56251cd5fae5586.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pak rreth VictoriaMetrics. Ne b\u00ebjm\u00eb shum\u00eb gj\u00ebra interesante. Lexoni artikujt tan\u00eb p\u00ebr kompresimin, p\u00ebr garat tona me aplikacionet e tjera t\u00eb t\u00eb dh\u00ebnave t\u00eb serive t\u00eb koh\u00ebs, shpjegimin ton\u00eb si t\u00eb punoni me PromQL, sepse ka akoma shum\u00eb fillestar\u00eb, si dhe p\u00ebr shkall\u00ebzimin vertikal dhe p\u00ebrballjen me Thanos.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u00abExtendedPromQL\u00bb \u2014 transkriptimi i prezantimit t\u00eb 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 personale. Kur fillova p\u00ebr her\u00eb t\u00eb par\u00eb t\u00eb p\u00ebrdor Grafana, shkrova nj\u00eb k\u00ebrkes\u00eb shum\u00eb bind\u00ebse me gjat\u00ebsi 5 rreshta. N\u00eb fund rezultoi nj\u00eb grafik shum\u00eb bind\u00ebs. Ky grafik pothuajse shkoi n\u00eb prodhim. Por kur e shqyrtova m\u00eb nga af\u00ebr, doli se ky grafik tregon nj\u00eb boll\u00ebk t\u00eb \u00e7uditsh\u00ebm, pa asnj\u00eb lidhje me realitetin, ndon\u00ebse numrat bien n\u00eb intervalin q\u00eb prisnim t\u00eb shihnim. Dhe pyetja ime. Ne kemi biblioteka, kemi funksione, por si shkruajm\u00eb teste p\u00ebr Grafana? Ju keni shkruar nj\u00eb k\u00ebrkes\u00eb komplekse, nga e cila varet nj\u00eb vendim biznesi \u2013 t\u00eb porositni ose jo nj\u00eb kontejner real serverash. Dhe si e dim\u00eb q\u00eb ky funksion, i cili \u00e7izmon grafik\u00ebt, duket si e v\u00ebrteta. Faleminderit.<\/em><\/p>\n<p><\/p>\n<p>Faleminderit p\u00ebr pyetjen. K\u00ebtu ka dy pjes\u00eb. E para \u2013 ndjej bazuar n\u00eb praktik\u00ebn time, q\u00eb shumica e p\u00ebrdoruesve, kur shohin grafik\u00ebt e tyre, nuk e kuptojn\u00eb se \u00e7far\u00eb po tregojn\u00eb ata. P\u00ebr nj\u00eb arsye, njer\u00ebzit jan\u00eb shum\u00eb t\u00eb mir\u00eb n\u00eb t\u00eb gjetur justifikim p\u00ebr \u00e7do anomalie q\u00eb ndodh n\u00eb grafik\u00ebt, p\u00ebrderisa kjo \u00ebsht\u00eb nj\u00eb gabim brenda funksionit. Dhe pjesa e dyt\u00eb \u2013 m\u00eb duket se p\u00ebrdorimi i funksioneve t\u00eb tilla 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 i juaj t\u00eb b\u00ebnte planifikimin e kapacitetit dhe t\u00eb gabonte me nj\u00eb ndonj\u00eb probabilitet.<\/p>\n<p><\/p>\n<p><em>Si t\u00eb verifikohet?<\/em><\/p>\n<p><\/p>\n<p>Si t\u00eb verifikohet? Ndoshta, asnj\u00ebher\u00eb. <\/p>\n<p><\/p>\n<p><em>N\u00eb form\u00eb testi n\u00eb Grafana.<\/em><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb ka t\u00eb b\u00ebj\u00eb Grafana me k\u00ebt\u00eb? Grafana e p\u00ebrktheu k\u00ebt\u00eb k\u00ebrkes\u00eb drejtp\u00ebrdrejt 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 ka asgj\u00eb q\u00eb shtohet. Aty mund t\u00eb ket\u00eb parametra GET, si p\u00ebr shembull, step. Ai nuk specifikohet qart\u00eb, por mund ta rip\u00ebrcaktoni, ose mund ta lini si\u00e7 \u00ebsht\u00eb, por ai shtohet automatikisht. Nuk do t\u00eb shkruani teste k\u00ebtu. Mendonj\u00ebse, nuk ia vlen t\u00eb mb\u00ebshteteni k\u00ebtu n\u00eb Grafana si burim t\u00eb v\u00ebrtet\u00eb.<\/p>\n<p><\/p>\n<p><em>Faleminderit p\u00ebr prezantimin! Faleminderit p\u00ebr kompresimin! Ju p\u00ebrmend\u00ebt p\u00ebr mapping-in e variabl\u00ebs n\u00eb grafik, se n\u00eb Grafana nuk mund t\u00eb p\u00ebrdorni nj\u00eb variab\u00ebl brenda nj\u00eb variabele. E kuptoni p\u00ebr \u00e7far\u00eb po flas?<\/em><\/p>\n<p><\/p>\n<p>Po.<\/p>\n<p><\/p>\n<p><em>Ishte fillimisht nj\u00eb dhimbje koke, kur doja t\u00eb b\u00ebja alert n\u00eb Grafana. Dhe aty duhet b\u00ebr\u00eb alert p\u00ebr \u00e7do host ve\u00e7 e ve\u00e7. Ky gj\u00eb q\u00eb keni b\u00ebr\u00eb, a funksionon p\u00ebr alerts n\u00eb Grafana?<\/em><\/p>\n<p><\/p>\n<p>N\u00ebse Grafana nuk i qaset variablave ndryshe, at\u00ebher\u00eb \u2013 po, ajo do t\u00eb funksionoj\u00eb. Por k\u00ebshilla ime \u00ebsht\u00eb t\u00eb mos p\u00ebrdorni alerting n\u00eb Grafana fare, m\u00eb mir\u00eb ta p\u00ebrdorni alertmanager.<\/p>\n<p><\/p>\n<p><em>Po, e p\u00ebrdor, por thjesht kjo n\u00eb Grafana duket m\u00eb e leht\u00eb p\u00ebr konfigurim, 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 5.0.2 - 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\/sq\/blog\/administrirovanie\/extendedpromql-rasshifrovka-doklada-romana-havronenko\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\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;\" \/>\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\u00abExtendedPromQL\u00bb \u2014 shpjegimi i prezantimit t\u00eb Roman Khavronenko | ProHoster","description":"Ju lutem shqyrtoni interpretimin e raportit t\u00eb Roman Khavronenko \"ExtendedPromQL\"","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;","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}