{"id":81888,"date":"2020-05-17T13:42:23","date_gmt":"2020-05-17T11:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus"},"modified":"2020-05-17T13:42:23","modified_gmt":"2020-05-17T11:42:23","slug":"thanos-masshtabiruemyj-prometheus","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","title":{"rendered":"Thanos \u2014 skal\u0113jams Prometheus.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Raksta tulkojums sagatavots \u012bpa\u0161i kursa studentiem <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jYQP\/\">\u00abDevOps prakse un r\u012bki\u00bb<\/a><\/noindex>.<\/i><\/b><\/p>\n<p>\n<i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fabxc\">Fabians Reinarts<\/a><\/noindex> \u2014 programmat\u016bras izstr\u0101d\u0101t\u0101js, Go entuziasts un sare\u017e\u0123\u012btu probl\u0113mu risin\u0101t\u0101js. Vi\u0146\u0161 ir ar\u012b Prometheus uztur\u0113t\u0101js un Kubernetes SIG instrumentation l\u012bdz\u012bpa\u0161nieks. Iepriek\u0161 vi\u0146\u0161 bija produkcijas in\u017eenieris uz\u0146\u0113mum\u0101 SoundCloud un vad\u012bja monitoringa grupu CoreOS. \u0160obr\u012bd vi\u0146\u0161 str\u0101d\u0101 Google.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Bplotka\">Barteks P\u0142otka<\/a><\/noindex> \u2014 infrastrukt\u016bras in\u017eenieris uz\u0146\u0113mum\u0101 Improbable. Vi\u0146am pat\u012bk jaunas tehnolo\u0123ijas un sadal\u012btu sist\u0113mu izaicin\u0101jumi. Vi\u0146am ir zemu l\u012bme\u0146u programm\u0113\u0161anas pieredze Intel, pieredze k\u0101 Mesos ieguld\u012bt\u0101jam un SRE produkcijas l\u012bme\u0146a pieredze glob\u0101l\u0101 m\u0113rog\u0101 uz\u0146\u0113mum\u0101 Improbable. Vi\u0146\u0161 str\u0101d\u0101 pie mikroservisu pasaules uzlabo\u0161anas. Tr\u012bs vi\u0146a m\u012blest\u012bbas: Golang, atv\u0113rt\u0101 koda un volejbols.<\/i><\/p>\n<p>Skatoties uz m\u016bsu flagma\u0146u produktu SpatialOS, j\u016bs varat nojaust, ka Improbable nepiecie\u0161ama augstas dinamikas glob\u0101la m\u0101kon\u012b balst\u012bta infrastrukt\u016bra ar desmitiem Kubernetes klasteru. M\u0113s bij\u0101m vieni no pirmajiem, kas uzs\u0101ka uzraudz\u012bbas sist\u0113mas izmanto\u0161anu <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex>. Prometheus sp\u0113j re\u0101llaik\u0101 sekot l\u012bdzi miljoniem metrik\u0101m un n\u0101k ar sp\u0113c\u012bgu vaic\u0101jumu valodu, kas \u013cauj ieg\u016bt nepiecie\u0161amo inform\u0101ciju.<\/p>\n<p>Prometheus vienk\u0101r\u0161\u012bba un uzticam\u012bba ir viens no t\u0101 galvenajiem ieguvumiem. Tom\u0113r, sasniedzot noteiktu m\u0113rogu, m\u0113s sask\u0101r\u0101mies ar da\u017e\u0101m probl\u0113m\u0101m. Lai risin\u0101tu \u0161\u012bs probl\u0113mas, m\u0113s izstr\u0101d\u0101j\u0101m <noindex><a rel=\"nofollow\" href=\"https:\/\/thanos.io\/\">Thanos<\/a><\/noindex> \u2014 atv\u0113rt\u0101 koda projektu, ko izveidojusi uz\u0146\u0113mums Improbable, lai bez\u0161uvju veid\u0101 transform\u0113tu eso\u0161os Prometheus klasterus vienot\u0101 uzraudz\u012bbas sist\u0113m\u0101 ar neierobe\u017eotu v\u0113sturisko datu kr\u0101tuvi. Thanos ir pieejams Github <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\">\u0161eit<\/a><\/noindex>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/gdk.improbable.io\/l\/169082\/2020-01-10\/2j9yxq\">Esiet inform\u0113ti par jaun\u0101kaj\u0101m zi\u0146\u0101m no Improbable.<\/a><\/noindex><\/p>\n<h2>M\u016bsu m\u0113r\u0137i ar Thanos<\/h2>\n<p>\nSasniedzot noteiktu m\u0113rogu, rodas probl\u0113mas, kas p\u0101rsniedz vani\u013cas Prometheus iesp\u0113jas. K\u0101 uzticami un ekonomiski uzglab\u0101t petabaitus v\u0113sturisko datu? Vai to var izdar\u012bt, nesamazinot atbildes laiku uz piepras\u012bjumu? Vai var piek\u013c\u016bt vis\u0101m metrik\u0101m, kas atrodas da\u017e\u0101dos Prometheus serveros, izmantojot vienu API piepras\u012bjumu? Vai ir iesp\u0113ja apvienot replik\u0113tus datus, ko sav\u0101ku\u0161i Prometheus HA?<\/p>\n<p>Lai risin\u0101tu \u0161os jaut\u0101jumus, m\u0113s izveidoj\u0101m Thanos. N\u0101kamaj\u0101s sada\u013c\u0101s tiks aprakst\u012bts, k\u0101 m\u0113s piev\u0113r\u0161amies \u0161o jaut\u0101jumu risin\u0101\u0161anai, un tiks izskaidroti m\u0113r\u0137i, kurus m\u0113s cent\u0101mies sasniegt.<\/p>\n<h4>Datu piepras\u012bjums no vair\u0101kiem Prometheus eksempl\u0101riem (glob\u0101lais vaic\u0101jums)<\/h4>\n<p>\nPrometheus pied\u0101v\u0101 funkcion\u0101lu pieeju \u0161ardingu. Pat viens Prometheus serveris nodro\u0161ina pietiekamu m\u0113rogojam\u012bbu, lai atbr\u012bvotu lietot\u0101jus no horizont\u0101l\u0101 \u0161ardinga sare\u017e\u0123\u012bt\u012bb\u0101m praktiski visos izmanto\u0161anas scen\u0101rijos.<\/p>\n<p>Lai ar\u012b t\u0101 ir lieliska izvieto\u0161anas mode\u013ca, bie\u017ei vien ir nepiecie\u0161ams piek\u013c\u016bt datiem no da\u017e\u0101diem Prometheus serveriem, izmantojot vienotu API vai UI \u2014 global view. Protams, ir iesp\u0113ja att\u0113lot vair\u0101kus piepras\u012bjumus vien\u0101 Grafana pane\u013ca, ta\u010du katrs piepras\u012bjums var tikt izpild\u012bts tikai uz viena Prometheus servera. Savuk\u0101rt, izmantojot Thanos, j\u016bs varat piepras\u012bt un agreg\u0113t datus no vair\u0101kiem Prometheus serveriem, jo visi tie ir pieejami no vienas galapunkta.<\/p>\n<p>Iepriek\u0161, lai ieg\u016btu global view Improbable, m\u0113s organiz\u0113j\u0101m savus Prometheus instanc\u0113m daudzl\u012bme\u0146u <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/prometheus\/prometheus\/blob\/master\/docs\/federation.md#hierarchical-federation\">Hierarchical Federation<\/a><\/noindex>. Tas noz\u012bm\u0113ja izveidot vienu metaserveri Prometheus, kas apkopo da\u013cu metrikas no katra \"lapu\" servera.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/82590f017734f5dc1038a0e13f772d2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0160\u012b pieeja izr\u0101d\u012bj\u0101s problem\u0101tiska. T\u0101 rad\u012bja konfigur\u0101cijas sare\u017e\u0123\u012bjumus, pievienojot papildu potenci\u0101lo k\u013c\u016bmes punktu un pielietojot sare\u017e\u0123\u012btus noteikumus, lai nodro\u0161in\u0101tu feder\u0113to galapunktu tikai ar nepiecie\u0161amajiem datiem. Turkl\u0101t \u0161\u0101da veida feder\u0101cija ne\u013cauj ieg\u016bt patiesu global view, jo ne visi dati ir pieejami no viena API piepras\u012bjuma.<\/p>\n<p>Ar to cie\u0161i saist\u012bts vienots datu att\u0113ls, kas sav\u0101kts augstas pieejam\u012bbas (high-availability, HA) Prometheus serveros. HA Prometheus modelis neatkar\u012bgi divreiz sav\u0101c datus, kas ir tik vienk\u0101r\u0161i, ka gr\u016bti iedom\u0101ties vienk\u0101r\u0161\u0101k. Tom\u0113r izmantot apvienotu un de-duplik\u0113tu abi pl\u016bsmas att\u0113lu b\u016btu daudz \u0113rt\u0101k.<\/p>\n<p>Protams, augstas pieejam\u012bbas Prometheus serveros past\u0101v nepiecie\u0161am\u012bba. Improbable m\u0113s tie\u0161\u0101m nopietni pieejam datu uzraudz\u012bbu ik min\u016bti, ta\u010du vienas Prometheus instanc\u0113 klaster\u012b ir vien\u012bgais k\u013c\u016bmes punkts. Jebkura konfigur\u0101cijas k\u013c\u016bda vai aparat\u016bras boj\u0101jums var potenci\u0101li novest pie svar\u012bgu datu zuduma. Pat vienk\u0101r\u0161a izvieto\u0161ana var izrais\u012bt nelielus trauc\u0113jumus metriku sav\u0101k\u0161an\u0101, jo restart\u0113\u0161ana var b\u016bt iev\u0113rojami ilg\u0101ka par skr\u0101p\u0113\u0161anas interv\u0101lu.<\/p>\n<h4>Uzticama v\u0113sturisko datu glab\u0101\u0161ana<\/h4>\n<p>\nL\u0113ts, \u0101trs un ilgtermi\u0146a metriku uzglab\u0101\u0161anas risin\u0101jums ir m\u016bsu sapnis, ko dal\u0101s vairums Prometheus lietot\u0101ju. Improbable m\u0113s bij\u0101m spiesti iestat\u012bt metriku uzglab\u0101\u0161anas termi\u0146u uz devi\u0146\u0101m dien\u0101m (Prometheus 1.8 versijai). Tas pievieno ac\u012bmredzamas robe\u017eas tam, cik t\u0101lu m\u0113s varam skat\u012bties atpaka\u013c.<\/p>\n<p>Prometheus 2.0 \u0161aj\u0101 zi\u0146\u0101 ir uzlabojies, jo laika s\u0113riju skaits vairs neietekm\u0113 servera kop\u0113jo veiktsp\u0113ju (skat. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=nDalewt4BOw\">KubeCon atkl\u0101\u0161anas runu par Prometheus 2<\/a><\/noindex>). Neskatoties uz to, Prometheus uzglab\u0101 datus lok\u0101laj\u0101 disk\u0101. Lai gan augstas efektivit\u0101tes datu saspie\u0161ana var iev\u0113rojami samazin\u0101t lok\u0101l\u0101 SSD izmanto\u0161anu, tom\u0113r galu gal\u0101 joproj\u0101m past\u0101v ierobe\u017eojumi uzglab\u0101jam\u0101s v\u0113sturisk\u0101s inform\u0101cijas apjom\u0101.<\/p>\n<p>Turkl\u0101t Improbable m\u0113s r\u016bp\u0113jamies par uzticam\u012bbu, vienk\u0101r\u0161\u012bbu un izmaks\u0101m. Lieli lok\u0101lie diski ir sare\u017e\u0123\u012bt\u0101ki ekspluat\u0101cij\u0101 un dubl\u0113\u0161an\u0101. Tie maks\u0101 d\u0101rg\u0101k un prasa vair\u0101k r\u012bku dubl\u0113\u0161anai, kas noved pie liekas sare\u017e\u0123\u012bt\u012bbas.<\/p>\n<h4>Samazin\u0101\u0161ana<\/h4>\n<p>\nKad m\u0113s s\u0101k\u0101m str\u0101d\u0101t ar v\u0113sturiskajiem datiem, saprat\u0101m, ka past\u0101v fundament\u0101las gr\u016bt\u012bbas ar O-lielo, kas padara vaic\u0101jumus arvien l\u0113n\u0101kus, ja m\u0113s str\u0101d\u0101jam ar datiem ned\u0113\u013c\u0101m, m\u0113ne\u0161iem un gadiem.<\/p>\n<p>Standarta risin\u0101jums \u0161ai probl\u0113mai b\u016bs <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Decimation_(signal_processing)\">samazin\u0101\u0161ana<\/a><\/noindex> (downsampling) \u2014 sign\u0101la izlases frekvences samazin\u0101\u0161ana. Pateicoties samazin\u0101\u0161anai, m\u0113s varam \"saskan\u0113t\" uz gar\u0101ku laika periodu un saglab\u0101t iepriek\u0161\u0113jo izlases skaitu, kas \u013caus saglab\u0101t vaic\u0101jumu atbildes \u0101trumu.<\/p>\n<p>Samazin\u0101\u0161ana veciem datiem ir neizb\u0113gama pras\u012bba jebkuram ilgtermi\u0146a uzglab\u0101\u0161anas risin\u0101jumam un p\u0101rsniedz parasto Prometheus.<\/p>\n<h4>Papildu m\u0113r\u0137i<\/h4>\n<p>\nViena no s\u0101kotn\u0113j\u0101m projekta Thanos m\u0113r\u0137iem bija bez\u0161uvju integr\u0101cija ar jebkur\u0101m eso\u0161aj\u0101m Prometheus instal\u0101cij\u0101m. Otrais m\u0113r\u0137is bija nodro\u0161in\u0101t vienk\u0101r\u0161u ekspluat\u0101ciju ar minim\u0101lu piek\u013cuves slieksni. Jebkuras atkar\u012bbas j\u0101b\u016bt viegli apmierin\u0101t\u0101m gan mazajiem, gan lielajiem lietot\u0101jiem, kas noz\u012bm\u0113 ar\u012b maz\u0101kas pamatizmaksas.<\/p>\n<h2>Thanos arhitekt\u016bra<\/h2>\n<p>\nP\u0113c tam, kad iepriek\u0161\u0113j\u0101 sada\u013c\u0101 tika uzskait\u012bti m\u016bsu m\u0113r\u0137i, \u013causimies tiem un apskat\u012bsim, k\u0101 Thanos risina \u0161\u012bs probl\u0113mas.<\/p>\n<h4>Glob\u0101l\u0101 skats<\/h4>\n<p>\nLai ieg\u016btu global view virs eso\u0161ajiem Prometheus instanc\u0113m, mums ir j\u0101sasaista vienota piek\u013cuves punkts vis\u0101m serveriem. To tie\u0161i dara Thanos komponents. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2015\/06\/the-distributed-system-toolkit-patterns#example-1-sidecar-containers\">Sidecar<\/a><\/noindex>. Tas tiek izvietots blakus katram Prometheus serverim un darbojas k\u0101 proksis, apkalpojot lok\u0101los Prometheus datus caur gRPC interfeisu Store API, kas \u013cauj izg\u016bt time series datus p\u0113c atz\u012bm\u0113m un laika interv\u0101la.<\/p>\n<p>Savuk\u0101rt ir horizont\u0101li m\u0113rogojams Querier komponents bez st\u0101vok\u013ca saglab\u0101\u0161anas, kas dara nedaudz vair\u0101k nek\u0101 vienk\u0101r\u0161i atbild uz PromQL piepras\u012bjumiem caur standarta Prometheus HTTP API. Querier, Sidecar un citi Thanos komponenti savstarp\u0113ji sazin\u0101s pa <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Gossip_protocol\">gossip protokolu.<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/fbcf1e756f5da4e8529f17abd4cedd00.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Kad Querier sa\u0146em piepras\u012bjumu, tas piesl\u0113dzas atbilsto\u0161ajam Store API serverim, t.i., m\u016bsu Sidecar un ieg\u016bst time series datus no attiec\u012bgajiem Prometheus serveriem.<\/li>\n<li>P\u0113c tam tas apvieno atbildes un izpilda uz t\u0101m PromQL piepras\u012bjumu. Querier var apvienot gan nep\u0101rkl\u0101jo\u0161os datus, gan dubl\u0113tos datus no HA Prometheus serveriem.<\/li>\n<\/ol>\n<p>\nTas atrisina liel\u0101ko da\u013cu m\u016bsu m\u012bklas \u2014 datu apvieno\u0161ana no izol\u0113tiem Prometheus serveriem vienot\u0101 skat\u012bjum\u0101. Faktiski Thanos var izmantot tikai \u0161\u012bs iesp\u0113jas d\u0113\u013c. Eso\u0161ajos Prometheus serveros nav nepiecie\u0161ams veikt nek\u0101das izmai\u0146as!<\/p>\n<h4>Neierobe\u017eota uzglab\u0101\u0161anas termi\u0146\u0161!<\/h4>\n<p>\nTom\u0113r agri vai v\u0113lu m\u0113s v\u0113l\u0113simies saglab\u0101t datus, kas p\u0101rsniedz parasto Prometheus uzglab\u0101\u0161anas laiku. V\u0113sturisko datu glab\u0101\u0161anai m\u0113s izv\u0113l\u0113j\u0101mies objektu glab\u0101tuvi. T\u0101 ir pla\u0161i pieejama jebkur\u0101 m\u0101ko\u0146vid\u0113, k\u0101 ar\u012b lok\u0101lajos datu centros un ir \u013coti izdev\u012bga. Turkl\u0101t gandr\u012bz jebkura objektu glab\u0101tuve ir pieejama caur labi paz\u012bstamo S3 API.<\/p>\n<p>Prometheus ieraksta datus no operat\u012bv\u0101s atmi\u0146as disk\u0101 aptuveni ik p\u0113c div\u0101m stund\u0101m. Saglab\u0101to datu bloks satur visus datus noteiktam laika intervalam un ir nemain\u012bgs. Tas ir \u013coti \u0113rti, jo Thanos Sidecar var vienk\u0101r\u0161i skat\u012bties Prometheus datu katalogu un, kad tiek pievienoti jauni bloki, aug\u0161upiel\u0101d\u0113t tos objektu glab\u0101tuv\u0113.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/2be803d8d7e0ce9a5ffa441b7778a40b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAug\u0161upiel\u0101de objektu glab\u0101tuv\u0113 uzreiz p\u0113c ierakst\u012b\u0161anas disk\u0101 ar\u012b \u013cauj saglab\u0101t \u201cscraper\u201d (Prometheus un Thanos Sidecar) vienk\u0101r\u0161\u012bbu. Tas vienk\u0101r\u0161o atbalstu, izmaksas un sist\u0113mas dizainu.<\/p>\n<p>K\u0101 redzat, datu dubl\u0113\u0161ana tiek \u012bstenota \u013coti vienk\u0101r\u0161i. Bet k\u0101ds ir piepras\u012bjums uz datiem objektu kr\u0101tuv\u0113?<\/p>\n<p>Thanos Store komponents darbojas k\u0101 proksi datu ieg\u016b\u0161anai no objektu kr\u0101tuves. T\u0101pat k\u0101 Thanos Sidecar, tas piedal\u0101s gossip klaster\u012b un \u012bsteno Store API. T\u0101d\u0113j\u0101di eso\u0161ie Querier var uzskat\u012bt to par Sidecar, k\u0101 v\u0113l vienu avotu laika s\u0113riju datiem \u2014 nav nepiecie\u0161ama \u012bpa\u0161a konfigur\u0101cija.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/5a437ae1bf8a6f79b8d24aeb9dde2d17.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLaika s\u0113riju datu bloki sast\u0101v no vair\u0101kiem lieliem failiem. To iel\u0101de p\u0113c piepras\u012bjuma b\u016btu diezgan neefekt\u012bva, bet lok\u0101l\u0101 ke\u0161o\u0161ana pras\u012btu milz\u012bgu atmi\u0146u un diska vietu.<\/p>\n<p>T\u0101d\u0113\u013c Store Gateway zina, k\u0101 str\u0101d\u0101t ar Prometheus uzglab\u0101\u0161anas form\u0101tu. Pateicoties viedajam piepras\u012bjumu pl\u0101not\u0101jam un ke\u0161o\u0161anai tikai nepiecie\u0161amaj\u0101m indeksu da\u013c\u0101m, ir izdevies samazin\u0101t sare\u017e\u0123\u012btos piepras\u012bjumus l\u012bdz minim\u0101lajam HTTP piepras\u012bjumu skaitam uz objektu kr\u0101tuves failiem. T\u0101d\u0113j\u0101di iesp\u0113jams samazin\u0101t piepras\u012bjumu skaitu par \u010detriem l\u012bdz se\u0161iem lielumiem un pan\u0101kt reakcijas laikus, kurus kopum\u0101 gr\u016bti at\u0161\u0137irt no piepras\u012bjumiem uz datiem lok\u0101laj\u0101 SSD.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/ebcbe1ee16dbac18daa474e7cb4b12b2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u0101 redzams iepriek\u0161\u0113j\u0101 diagramm\u0101, Thanos Querier b\u016btiski samazina izmaksas par katru piepras\u012bjumu uz datiem objektu kr\u0101tuv\u0113, izmantojot Prometheus uzglab\u0101\u0161anas form\u0101tu un novietojot saist\u012btos datus blakus. Izmantojot \u0161o pieeju, m\u0113s varam apvienot vair\u0101kus atsevi\u0161\u0137us piepras\u012bjumus minim\u0101laj\u0101 bulk oper\u0101ciju skait\u0101.<\/p>\n<h4>Kompakt\u0113\u0161ana un samazin\u0101\u0161ana<\/h4>\n<p>\nP\u0113c tam, kad jaunais laika s\u0113riju datu bloks ir veiksm\u012bgi aug\u0161upiel\u0101d\u0113ts objektu kr\u0101tuv\u0113, m\u0113s to uzskat\u0101m par \"v\u0113sturiskajiem\" datiem, kuri nekav\u0113joties k\u013c\u016bst pieejami caur Store Gateway.<\/p>\n<p>Tom\u0113r p\u0113c k\u0101da laika, blokiem no viena avota (Prometheus ar Sidecar) uzkr\u0101joties, tie jau nesniedz visu indeksa potenci\u0101lu. Lai risin\u0101tu \u0161o probl\u0113mu, m\u0113s ievies\u0101m v\u0113l vienu komponentu, ko sauc par Compactor. Tas vienk\u0101r\u0161i piem\u0113ro viet\u0113jo Prometheus kompakti meh\u0101nismu v\u0113sturiskajiem datiem objektu kr\u0101tuv\u0113 un var tikt palaists k\u0101 vienk\u0101r\u0161a periodiska partiju uzdevums.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/c7dd83dab074a4c5f93069a4bc152342.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEfekt\u012bvas saspie\u0161anas d\u0113\u013c piek\u013cuve glab\u0101\u0161anai ilg\u0101 laik\u0101 nerada probl\u0113mas datu apjoma zi\u0146\u0101. Tom\u0113r potenci\u0101l\u0101s izmaksas, ko rada miljarda v\u0113rt\u012bbu atpakotne un to p\u0101rlai\u0161ana caur vaic\u0101jumu apstr\u0101d\u0101t\u0101ju, neizb\u0113gami noved\u012bs pie iev\u0113rojama vaic\u0101juma izpildes laika pieauguma. No otras puses, \u0146emot v\u0113r\u0101, ka katram ekr\u0101na pikselim ir simtiem datu punktu, praktiski nav iesp\u0113jams vizualiz\u0113t datus piln\u0101 iz\u0161\u0137irtsp\u0113j\u0101. T\u0101d\u0113j\u0101di lejasparaugo\u0161ana ir ne tikai iesp\u0113jama, bet ar\u012b neb\u016bs iev\u0113rojami samazin\u0101jusi precizit\u0101ti. <\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/5f36a05aba3fbffa905b6a8da482ab3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDatu lejasparaugo\u0161anai Compactor nep\u0101rtraukti agreg\u0113 datus ar piecu min\u016b\u0161u un stundas iz\u0161\u0137irtsp\u0113ju. Katram neapstr\u0101d\u0101tajam fragmentam, kas kod\u0113ts, izmantojot TSDB XOR saspie\u0161anu, tiek glab\u0101ti da\u017e\u0101di agreg\u0113tu datu veidi, piem\u0113ram, min, max vai sum vienam blokam. Tas \u013cauj Querier autom\u0101tiski izv\u0113l\u0113ties agreg\u0101tu, kas atbilst dotajam PromQL vaic\u0101jumam. <\/p>\n<p>Lai izmantotu datus ar samazin\u0101tu precizit\u0101ti, lietot\u0101jam nav nepiecie\u0161ama nek\u0101das \u012bpa\u0161as konfigur\u0101cijas. Querier autom\u0101tiski p\u0101rvietojas starp da\u017e\u0101d\u0101m iz\u0161\u0137irtsp\u0113j\u0101m un neapstr\u0101d\u0101tiem datiem, samazinoties un palielinoties m\u0113rogam. Ja v\u0113las, lietot\u0101js var tie\u0161i p\u0101rvald\u012bt to caur parametru 'step' vaic\u0101jum\u0101. <\/p>\n<p>T\u0101 k\u0101 uzglab\u0101\u0161anas izmaksas par vienu GB ir nelielas, p\u0113c noklus\u0113juma Thanos saglab\u0101 s\u0101kotn\u0113jos datus, datus ar piecu min\u016b\u0161u un stundas iz\u0161\u0137irtsp\u0113ju. Nav nepiecie\u0161ams dz\u0113st s\u0101kotn\u0113jos datus.<\/p>\n<h2>Re\u0123istr\u0113\u0161anas noteikumi<\/h2>\n<p>\nPat ar Thanos re\u0123istr\u0113\u0161anas noteikumi ir noz\u012bm\u012bga uzraudz\u012bbas steka sast\u0101vda\u013ca. Tie samazina vaic\u0101jumu sare\u017e\u0123\u012bt\u012bbu, aizturi un izmaksas. Tie ar\u012b ir \u0113rti lietot\u0101jiem, lai ieg\u016btu agreg\u0113tus datus par metriku. Thanos balst\u0101s uz vani\u013cas Prometheus instanc\u0113m, t\u0101p\u0113c ir piln\u012bgi pie\u0146emami uzglab\u0101t re\u0123istr\u0113\u0161anas un br\u012bdin\u0101\u0161anas noteikumus past\u0101vo\u0161aj\u0101 Prometheus server\u012b. Tom\u0113r da\u017eos gad\u012bjumos tas var b\u016bt nepietiekami:<\/p>\n<ul>\n<li>Glob\u0101l\u0101 br\u012bdin\u0101juma un noteikuma (piem\u0113ram, br\u012bdin\u0101jums, kad pakalpojums nedarbojas vair\u0101k nek\u0101 divos no trim klasteriem).<\/li>\n<li>Noteikums neizvietotajiem datiem.<\/li>\n<li>Tendence glab\u0101t visus noteikumus un br\u012bdin\u0101jumus vien\u0101 viet\u0101.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/ab48e044b952bd891932b99e248120fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVis\u0101m \u0161\u012bm situ\u0101cij\u0101m Thanos ietver atsevi\u0161\u0137u komponentu, kas saucas Ruler, kur\u0161 apr\u0113\u0137ina noteikumus un br\u012bdin\u0101jumus, izmantojot Thanos Queries. Nodro\u0161inot labi zin\u0101mo StoreAPI, Query mezgls var piek\u013c\u016bt svaigi apr\u0113\u0137in\u0101t\u0101m metriskaj\u0101m v\u0113rt\u012bb\u0101m. V\u0113l\u0101k t\u0101s tiek saglab\u0101tas objektu glab\u0101\u0161an\u0101 un k\u013c\u016bst pieejamas caur Store Gateway.<\/p>\n<h2>Thanos jauda<\/h2>\n<p>\nThanos ir pietiekami elast\u012bgs, lai to var\u0113tu piel\u0101got j\u016bsu pras\u012bb\u0101m. Tas ir \u012bpa\u0161i noder\u012bgi migr\u0113jot no vienk\u0101r\u0161a Prometheus. \u013baujiet mums \u012bsi atcer\u0113ties, ko esam uzzin\u0101ju\u0161i par Thanos komponentiem. \u0160eit ir, k\u0101 p\u0101rv\u0113rst j\u016bsu vani\u013cas Prometheus uz \u201eneierobe\u017eotas metrikas glab\u0101\u0161anas\u201d pasauli:<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skal\u0113jams Prometheus.\" src=\"\/wp-content\/uploads\/2020\/05\/f6ee4185af57d2a1869890014e6a0062.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Pievienojiet Thanos Sidecar saviem Prometheus serveriem \u2014 piem\u0113ram, blakus konteineru Kubernetes pod\u0101.<\/li>\n<li>Izveidojiet vair\u0101kas Thanos Querier replika datu skat\u012b\u0161anai. \u0160aj\u0101 posm\u0101 ir viegli konfigur\u0113t gossip starp Scraper un Querier. Lai p\u0101rbaud\u012btu komponentu mijiedarb\u012bbu, izmantojiet metrikas 'thanos_cluster_members'.<\/li>\n<\/ol>\n<p>\nTik vien \u0161o divu so\u013cu pietiek, lai nodro\u0161in\u0101tu glob\u0101lu skatu un nevainojamu datu deduplic\u0113\u0161anu no potenci\u0101laj\u0101m HA Prometheus replik\u0101m! Vienk\u0101r\u0161i pievienojiet savus pane\u013cus HTTP Querier galapunktam vai izmantojiet Thanos UI saskarni tie\u0161i.<\/p>\n<p>Tom\u0113r, ja jums nepiecie\u0161ama metrikas dubl\u0113\u0161ana un ilgtermi\u0146a glab\u0101\u0161ana, jums b\u016bs j\u0101veic v\u0113l tr\u012bs so\u013ci:<\/p>\n<ol>\n<li>Izveidojiet AWS S3 vai GCS tvertni. Iestatiet Sidecar, lai datus kop\u0113tu \u0161aj\u0101s tvertn\u0113s. Tagad varat minimiz\u0113t viet\u0113jo datu glab\u0101\u0161anu.<\/li>\n<li>Izvietojiet Store Gateway un pievienojiet to eso\u0161ajam gossip-klasterim. Tagad varat s\u016bt\u012bt piepras\u012bjumus uz datiem dubl\u0113jumos!<\/li>\n<li>Izvietojiet Compactor, lai uzlabotu piepras\u012bjumu efektivit\u0101ti ilgsto\u0161os laika periodos, izmantojot saspiesto un samazin\u0101to paraugu.<\/li>\n<\/ol>\n<p>\nJa v\u0113laties uzzin\u0101t vair\u0101k, nevilcinieties, apskatiet m\u016bsu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\/tree\/master\/kube\">Kubernetes manifestu piem\u0113riem<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\/blob\/master\/docs\/getting-started.md\">s\u0101kuma ce\u013cvedis<\/a><\/noindex>!<\/p>\n<p>Tikai piecos so\u013cos m\u0113s p\u0101rv\u0113r\u0161am Prometheus par uzticamu monitoringa sist\u0113mu ar glob\u0101lu skatu, neierobe\u017eotu glab\u0101\u0161anas laiku un potenci\u0101li augstu pieejam\u012bbu metrik\u0101m.<\/p>\n<h3>Pull request: mums j\u016bs nepiecie\u0161ami!<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\">Thanos<\/a><\/noindex> jau no pa\u0161a s\u0101kuma bija atv\u0113rt\u0101 koda projekts. Nep\u0101rtraukta integr\u0101cija ar Prometheus un iesp\u0113ja izmantot tikai da\u013cu no Thanos padara to par lielisku izv\u0113li monitoringa sist\u0113mas papla\u0161in\u0101\u0161anai bez liek\u0101m p\u016bl\u0113m.<\/p>\n<p>M\u0113s vienm\u0113r priec\u0101jamies par GitHub Pull Request un Issues. Taj\u0101 pa\u0161\u0101 laik\u0101, nevilcinieties sazin\u0101ties ar mums caur Github Issues vai Slack.<noindex><a rel=\"nofollow\" href=\"https:\/\/join.slack.com\/t\/improbable-eng\/shared_invite\/enQtMzQ1ODcyMzQ5MjM4LWY5ZWZmNGM2ODc5MmViNmQ3ZTA3ZTY3NzQwOTBlMTkzZmIxZTIxODk0OWU3YjZhNWVlNDU3MDlkZGViZjhkMjc\"> Improbable-eng #thanos<\/a><\/noindex>, ja jums ir jaut\u0101jumi vai atsauksmes, vai v\u0113laties dal\u012bties ar savu pieredzi! Ja jums pat\u012bk tas, ko m\u0113s dar\u0101m Improbable, dro\u0161i sazinieties ar mums \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/improbable.io\/careers\/\">mums vienm\u0113r ir vakances.<\/a><\/noindex>!<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jYQP\/\">Uzzin\u0101t vair\u0101k par kursu.<br \/>\n<\/a><\/noindex><\/p>\n<p>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/502122\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb. \u0424\u0430\u0431\u0438\u0430\u043d \u0420\u0435\u0439\u043d\u0430\u0440\u0446 (Fabian Reinartz) \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f, \u0444\u0430\u043d\u0430\u0442 Go \u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u043c\u044d\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440 Prometheus \u0438 \u0441\u043e\u0443\u0447\u0440\u0435\u0434\u0438\u0442\u0435\u043b\u044c Kubernetes SIG instrumentation. \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043e\u043d \u0431\u044b\u043b production-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c \u0432 SoundCloud \u0438 \u0432\u043e\u0437\u0433\u043b\u0430\u0432\u043b\u044f\u043b \u0433\u0440\u0443\u043f\u043f\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432 CoreOS. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 Google. \u0411\u0430\u0440\u0442\u0435\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81889,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81888","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.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.\" \/>\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\/lv\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\udd47Thanos \u2014 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 Prometheus | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus\" \/>\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-05-17T11:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-17T11:42:23+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\udd47Thanos \u2014 m\u0113rogojams Prometheus | ProHoster","description":"Raksta tulkojums sagatavots \u012bpa\u0161i studentiem kurs\u0101 \"DevOps prakses un r\u012bki\".","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\udd47Thanos \u2014 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 Prometheus | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","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-05-17T11:42:23+00:00","article:modified_time":"2020-05-17T11:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81888","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 15:48:24","updated":"2022-09-30 01:06:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/81888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=81888"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/81888\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/81889"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=81888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=81888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=81888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}