{"id":31864,"date":"2019-10-31T21:43:33","date_gmt":"2019-10-31T18:43:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/monitoring-myortv-da-zdravstvuet-monitoring\/"},"modified":"2019-10-31T21:43:33","modified_gmt":"2019-10-31T18:43:33","slug":"monitoring-myortv-da-zdravstvuet-monitoring","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/monitoring-myortv-da-zdravstvuet-monitoring","title":{"rendered":"Monitorimi i vdekur? \u2014 Jetofsh\u00eb monitorimi","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Monitorimi i vdekur? \u2014 Jetofsh\u00eb monitorimi\" src=\"\/wp-content\/uploads\/2019\/04\/13453bb7025a6bf3d1c7a3dc6d038d16.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKompania jon\u00eb ka qen\u00eb duke u marr\u00eb kryesisht me menaxhimin e infrastrukturave dhe mb\u00ebshtetje teknike 24\/7 p\u00ebr projekte web q\u00eb nga viti 2008: kemi m\u00eb shum\u00eb se 400 klient\u00eb, q\u00eb p\u00ebrb\u00ebn rreth 15% t\u00eb tregtis\u00eb elektronike n\u00eb Rusi. P\u00ebr k\u00ebt\u00eb arsye, mb\u00ebshtetja p\u00ebrfshin nj\u00eb arkitektur\u00eb shum\u00eb t\u00eb larmishme. N\u00ebse ndodhin probleme, ne jemi t\u00eb detyruar ta rregullojm\u00eb brenda 15 minutash. Por p\u00ebr t\u00eb kuptuar q\u00eb nj\u00eb aksident ka ndodhur, duhet t\u00eb monitorojm\u00eb projektin dhe t\u00eb reagojm\u00eb ndaj incidenteve. Por si ta b\u00ebjm\u00eb k\u00ebt\u00eb? <\/p>\n<p>Mendoj se n\u00eb organizimin e nj\u00eb sistemi t\u00eb duhur monitorimi ka ndodhur nj\u00eb katastrof\u00eb. Po t\u00eb mos kishte ndodhur nj\u00eb katastrof\u00eb, fjalimi im do t\u00eb p\u00ebrb\u00ebhej nga nj\u00eb tez\u00eb: \"Ju lutem, instaloni Prometheus + Grafana dhe plugins 1, 2, 3\". Fatkeq\u00ebsisht, tani ashtu nuk funksionon. Dhe problemi kryesor \u00ebsht\u00eb se t\u00eb gjith\u00eb vazhdojn\u00eb t\u00eb besojn\u00eb n\u00eb di\u00e7ka t\u00eb till\u00eb q\u00eb ekzistonte n\u00eb vitin 2008, n\u00eb aspektin e komponent\u00ebve t\u00eb softuerit. <\/p>\n<p>Sa i p\u00ebrket organizimit t\u00eb sistemit t\u00eb monitorimit, do t\u00eb rrezikoja t\u00eb thosha se... nuk ekzistojn\u00eb projekte me monitorim t\u00eb mir\u00ebfillt\u00eb. Dhe situata \u00ebsht\u00eb aq e keqe, n\u00ebse ndodhi nj\u00eb r\u00ebnien, ka rrezik q\u00eb ajo t\u00eb mbetet e padukur \u2014 t\u00eb gjith\u00eb jan\u00eb t\u00eb bindur se \"\u00e7do gj\u00eb monitorohet\".<br \/>\nMund t\u00eb jet\u00eb se gjith\u00e7ka monitorohet. Por si? <\/p>\n<p>T\u00eb gjith\u00eb ne kemi hasur n\u00eb histori t\u00eb ngjashme: punon nj\u00eb devops, nj\u00eb admin, ekipi i zhvilluesve vjen dhe thot\u00eb - \"ne u lansuam, tani monitoro\". \u00c7far\u00eb t\u00eb monitorosh? Si funksionon kjo?<\/p>\n<p>Mir\u00eb. Monitorojm\u00eb n\u00eb m\u00ebnyr\u00eb tradicionale. Por tashm\u00eb po ndryshon, dhe zbulohet se ti ke monitoruar sh\u00ebrbimin A, i cili ka kaluar n\u00eb sh\u00ebrbimin B, i cili bashk\u00ebpunon me sh\u00ebrbimin C. Por ekipi i zhvilluesve t\u00eb thot\u00eb: \"Instalo softin, ai duhet t\u00eb monitoroj\u00eb gjith\u00e7ka!\"<\/p>\n<p>\u00c7far\u00eb ka ndryshuar? \u2014 E gjith\u00eb gj\u00eb ka ndryshuar!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Viti 2008. Gjith\u00e7ka \u00ebsht\u00eb t\u00eb shk\u00eblqyer.<\/h4>\n<p>\nKa disa zhvillues, nj\u00eb server, nj\u00eb server DB. K\u00ebtu fillon gjith\u00e7ka. Ne kemi disa informacione, instalojm\u00eb zabbix, Nagios, cacti. Dhe m\u00eb pas vendosim alarme t\u00eb qarta p\u00ebr CPU, p\u00ebr funksionimin e disqeve, p\u00ebr hap\u00ebsir\u00ebn n\u00eb disqe. Po ashtu, kryejm\u00eb disa kontrolle manuale, q\u00eb faqja \u00ebsht\u00eb aktive, q\u00eb porosit\u00eb vijn\u00eb n\u00eb baz\u00eb t\u00eb t\u00eb dh\u00ebnave. Dhe kjo \u00ebsht\u00eb \u2013 jemi m\u00eb shum\u00eb se sa t\u00eb mbrojtur. <\/p>\n<p>N\u00ebse e krahasojm\u00eb sasin\u00eb e pun\u00ebs q\u00eb admini b\u00ebnte p\u00ebr t\u00eb siguruar monitorimin, 98% ishte automatike: njeriu q\u00eb merret me monitorimin duhet t\u00eb kuptoj\u00eb si t\u00eb vendos\u00eb Zabbix, si ta konfiguroj\u00eb dhe t\u00eb vendos\u00eb alerte. Dhe 2% \u2014 p\u00ebr verifikime t\u00eb jashtme: n\u00ebse siti p\u00ebrgjigjet dhe b\u00ebn k\u00ebrkesa n\u00eb baz\u00eb, n\u00ebse jan\u00eb b\u00ebr\u00eb porosi t\u00eb reja.<\/p>\n<p><img decoding=\"async\" alt=\"Monitorimi i vdekur? \u2014 Jetofsh\u00eb monitorimi\" src=\"\/wp-content\/uploads\/2019\/04\/3563dda4d025fd18200d6410d7d065ed.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <\/p>\n<h4>Viti 2010. Rritet ngarkesa<\/h4>\n<p>\nFillojm\u00eb t\u00eb skaluam uebet, shtojm\u00eb motorin e k\u00ebrkimit. Duam t\u00eb jemi t\u00eb sigurt se katalogu i produkteve p\u00ebrmban t\u00eb gjitha produktet. Dhe se k\u00ebrkimi i produkteve funksionon. Se baza funksionon, se porosit\u00eb b\u00ebhen, se siti p\u00ebrgjigjet jasht\u00eb dhe p\u00ebrgjigjet me dy <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sq\/server\/\"   title=\"server\u00ebsh\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1314\">server\u00ebsh<\/a> dhe p\u00ebrdoruesi nuk hidhet jasht\u00eb nga siti, derisa ai t\u00eb ribalancohet n\u00eb nj\u00eb server tjet\u00ebr, etj. Entitetet po b\u00ebhen m\u00eb shum\u00eb. <\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, entiteti i lidhur me infrastruktur\u00ebn mbetet ende m\u00eb i madhi n\u00eb mendjen e menaxherit. Ideja se njeriu q\u00eb merret me monitorimin \u00ebsht\u00eb ai q\u00eb do t\u00eb vendos\u00eb zabbix dhe do ta konfiguroj\u00eb ende ekziston n\u00eb mendje.<\/p>\n<p>Por n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb po shfaqen pun\u00eb p\u00ebr kryerjen e verifikimeve t\u00eb jashtme, p\u00ebr krijimin e nj\u00eb grupi skriptesh p\u00ebr k\u00ebrkuesin e indeksimit, t\u00eb nj\u00eb grupi skriptesh p\u00ebr t\u00eb verifikuar se k\u00ebrkimi po ndryshon gjat\u00eb procesit t\u00eb indeksimit, nj\u00eb grupi skriptesh q\u00eb kontrollojn\u00eb se sh\u00ebrbimi i d\u00ebrges\u00ebs po merr produktet, etj. dhe m\u00eb tej.<\/p>\n<p><img decoding=\"async\" alt=\"Monitorimi i vdekur? \u2014 Jetofsh\u00eb monitorimi\" src=\"\/wp-content\/uploads\/2019\/04\/afa94a3156a24a81ab359b430341f27d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVini re: shkruajta 3 her\u00eb \u00abgrup skriptesh\u00bb. K\u00ebshtu q\u00eb p\u00ebrgjegj\u00ebsi p\u00ebr monitorimin \u2014 nuk \u00ebsht\u00eb m\u00eb ai q\u00eb thjesht instalon zabbix. Ky \u00ebsht\u00eb nj\u00eb person q\u00eb fillon t\u00eb kode. Por n\u00eb mendjet e ekipit nuk ka asnj\u00eb ndryshim ende. <\/p>\n<p>Nd\u00ebrkoh\u00eb, bota po ndryshon, duke u komplikuar gjithnj\u00eb e m\u00eb shum\u00eb. Shtohet nj\u00eb shtres\u00eb virtualizimi, disa sisteme t\u00eb reja. Ato fillojn\u00eb t\u00eb nd\u00ebrveprojn\u00eb me nj\u00ebra-tjetr\u00ebn. Kush tha \u00abngjason me mikrosh\u00ebrbimet?\u00bb Por \u00e7do sh\u00ebrbim ende duket si nj\u00eb site i ve\u00e7ant\u00eb. Ne mund ta qasnim at\u00eb dhe t\u00eb kuptojm\u00eb se ai jep informacionin e nevojsh\u00ebm dhe funksionon vet\u00eb. Dhe n\u00ebse je admin q\u00eb merret vazhdimisht me nj\u00eb projekt q\u00eb zhvillohet p\u00ebr 5-7-10 vjet, k\u00ebto njohuri grumbullohen: nj\u00eb nivel i ri shfaqet \u2014 e ke kuptuar, shfaqet nj\u00eb tjet\u00ebr nivel \u2014 e ke kuptuar... <\/p>\n<p><img decoding=\"async\" alt=\"Monitorimi i vdekur? \u2014 Jetofsh\u00eb monitorimi\" src=\"\/wp-content\/uploads\/2019\/04\/3578182594d012732afde7849b75322a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPor rrall\u00eb ndokush e mb\u00ebshtet nj\u00eb projekt p\u00ebr 10 vjet.<\/p>\n<h3>P\u00ebrmbledhje e monitorimit<\/h3>\n<p>\nSupozoni se q\u00eb keni hyr\u00eb n\u00eb nj\u00eb fillim t\u00eb ri, i cili menj\u00ebher\u00eb ka grumbulluar 20 zhvillues, ka shkruar 15 mikros\u00ebrvish, dhe ju jeni administrator i cili i thon\u00eb: \"Nd\u00ebrto CI\/CD. T\u00eb lutem.\" Ju e nd\u00ebrtuat CI\/CD dhe papritur d\u00ebgjoni: \"Na \u00ebsht\u00eb v\u00ebshtir\u00eb t\u00eb punojm\u00eb me prodhimin n\u00eb 'kub', pa kuptuar si do t\u00eb funksionoj\u00eb aplikacioni aty. Na b\u00ebj nj\u00eb sandbox n\u00eb k\u00ebt\u00eb 'kub'.\"<br \/>\n Ju po krijoni nj\u00eb sandbox n\u00eb k\u00ebt\u00eb kub. Menj\u00ebher\u00eb ju thon\u00eb: \"Duam nj\u00eb baz\u00eb t\u00eb dh\u00ebnash stage, e cila p\u00ebrdit\u00ebsohet nga prodhimi, p\u00ebr t\u00eb kuptuar q\u00eb kjo funksionon me baz\u00ebn e dh\u00ebnash, por pa prishur baz\u00ebn e dh\u00ebnash t\u00eb prodhimit.\"<\/p>\n<p>Ju jetoni n\u00eb gjith\u00eb k\u00ebt\u00eb situat\u00eb. Ka mbetur 2 jav\u00eb deri n\u00eb lansim, ju thon\u00eb: \"Tani do t\u00eb ishte mir\u00eb t\u00eb monitorohej gjith\u00e7ka...\" Pra, t\u00eb monitorohet infrastruktura klasterike, t\u00eb monitorohet arkitektura mikros\u00ebrvish, t\u00eb monitorohet puna me sh\u00ebrbime t\u00eb jashtme... <\/p>\n<p>Dhe koleg\u00ebt nxjerrin nga mendja skem\u00ebn e zakonshme dhe thon\u00eb: \"K\u00ebtu \u00ebsht\u00eb krejt e qart\u00eb! Vendosni nj\u00eb program q\u00eb do t\u00eb monitoroj\u00eb gjith\u00e7ka.\" Po, po: Prometheus + Grafana + plugins. <br \/>\nDhe shtojn\u00eb: \"Ke dy jav\u00eb, b\u00ebj q\u00eb gjith\u00e7ka t\u00eb jet\u00eb e besueshme.\"<\/p>\n<p>N\u00eb shumic\u00ebn e projekteve q\u00eb shohim, nj\u00eb person i dedikohet monitorimit. Paraqitini q\u00eb duam t\u00eb pun\u00ebsojm\u00eb nj\u00eb person p\u00ebr 2 jav\u00eb, q\u00eb do t\u00eb merret me monitorimin, dhe ne p\u00ebrgatitim nj\u00eb CV p\u00ebr t\u00eb. \u00c7far\u00eb aft\u00ebsish duhet t\u00eb ket\u00eb ky person \u2014 n\u00ebse marrim parasysh gjith\u00e7ka q\u00eb tham\u00eb m\u00eb par\u00eb?<\/p>\n<ul>\n<li>Ai duhet t\u00eb kuptoj\u00eb monitorimin dhe specifik\u00ebn e funksionimit t\u00eb infrastruktur\u00ebs harduerike.<\/li>\n<li>Ai duhet t\u00eb kuptoj\u00eb specifik\u00ebn e monitorimit t\u00eb Kubernetes (t\u00eb gjith\u00eb duan n\u00eb 'kub', sepse mund t\u00eb abstretohen nga gjith\u00e7ka, t\u00eb fshihen, pasi administrator\u00ebt do ta zgjidhin pjes\u00ebn tjet\u00ebr) \u2014 vet\u00eb Kubernetes, infrastruktur\u00ebn e tij, dhe t\u00eb dij\u00eb se si t\u00eb monitoroj\u00eb aplikacionet brenda.<\/li>\n<li>Ai duhet t\u00eb kuptoj\u00eb se sh\u00ebrbimet komunikojn\u00eb me nj\u00ebra-tjetr\u00ebn n\u00eb m\u00ebnyra t\u00eb ve\u00e7anta, dhe t\u00eb njoh\u00eb specifikat e bashk\u00ebveprimit mes sh\u00ebrbimeve. \u00cbsht\u00eb krejt e mundur t\u00eb shihni nj\u00eb projekt ku disa sh\u00ebrbime komunikojn\u00eb n\u00eb m\u00ebnyr\u00eb sinkrone, sepse p\u00ebrndryshe nuk ka asnj\u00eb mund\u00ebsi tjet\u00ebr. P\u00ebr shembull, backend-i shkon n\u00ebp\u00ebrmjet REST, n\u00ebp\u00ebrmjet gRPC te sh\u00ebrbimi i katalogut, merr list\u00ebn e produkteve dhe e kthen prapa. K\u00ebtu nuk mund t\u00eb pres\u00ebsh. Nd\u00ebrsa me sh\u00ebrbime t\u00eb tjera ai punon n\u00eb m\u00ebnyr\u00eb asinkrone. D\u00ebrgo nj\u00eb porosi n\u00eb sh\u00ebrbimin e d\u00ebrgimit, d\u00ebrgo nj\u00eb email etj.<br \/>\nTani, ndoshta, e keni humbur gjith\u00eb k\u00ebt\u00eb? Nd\u00ebrsa administratorit, i cili duhet ta monitoroj\u00eb k\u00ebt\u00eb, i \u00ebsht\u00eb b\u00ebr\u00eb edhe m\u00eb e v\u00ebshtir\u00eb. <\/li>\n<li>Ai duhet t\u00eb jet\u00eb n\u00eb gjendje t\u00eb planifikoj\u00eb dhe t\u00eb planifikoj\u00eb si\u00e7 duhet \u2014 pasi pun\u00ebt po b\u00ebhen gjithnj\u00eb e m\u00eb shum\u00eb. <\/li>\n<li>Ai duhet, pra, t\u00eb krijoj\u00eb nj\u00eb strategji nga sh\u00ebrbimi i krijuar p\u00ebr t\u00eb kuptuar se si ta monitoroj\u00eb at\u00eb sakt\u00ebsisht. Aji ka nevoj\u00eb p\u00ebr njohuri mbi arkitektur\u00ebn e projektit dhe zhvillimin e tij + kuptimin e teknologjive q\u00eb p\u00ebrdoren n\u00eb zhvillim. <\/li>\n<\/ul>\n<p>\nLe t\u00eb kujtojm\u00eb nj\u00eb rast krejt normal: disa sh\u00ebrbime n\u00eb PHP, disa sh\u00ebrbime n\u00eb Go, disa sh\u00ebrbime n\u00eb JS. Ato punojn\u00eb ndonj\u00ebher\u00eb midis tyre. K\u00ebtu ka dal\u00eb termi \"mikrosh\u00ebrbim\": sistemet e ndara u b\u00ebn\u00eb kaq shum\u00eb saq\u00eb zhvilluesit nuk mund ta kuptojn\u00eb projektin n\u00eb t\u00ebr\u00ebsi. Nj\u00eb pjes\u00eb e ekipit shkruan sh\u00ebrbime n\u00eb JS, t\u00eb cilat punojn\u00eb vet\u00ebm dhe nuk din\u00eb si punon pjesa tjet\u00ebr e sistemit. Nj\u00eb pjes\u00eb tjet\u00ebr shkruan sh\u00ebrbime n\u00eb Python dhe nuk p\u00ebrzihet n\u00eb at\u00eb se si punojn\u00eb sh\u00ebrbimet e tjera, ato jan\u00eb t\u00eb izoluar n\u00eb fush\u00ebn e tyre. T\u00eb tjera shkruajn\u00eb sh\u00ebrbime n\u00eb PHP ose di\u00e7ka tjet\u00ebr. <br \/>\nT\u00eb gjith\u00eb k\u00ebta 20 persona jan\u00eb t\u00eb ndar\u00eb n\u00eb 15 sh\u00ebrbime, dhe ka vet\u00ebm nj\u00eb administrator, i cili duhet ta kuptoj\u00eb t\u00eb gjith\u00eb k\u00ebt\u00eb. Stop! Ne sapo ndam\u00eb sistemin n\u00eb 15 mikrosh\u00ebrbime, sepse 20 persona nuk mund ta kuptojn\u00eb t\u00eb gjith\u00eb sistemin. <\/p>\n<p>Por ajo duhet ndonj\u00ebher\u00eb t\u00eb monitorohet...<\/p>\n<p>\u00c7far\u00eb ndodhi n\u00eb fund? N\u00eb fund ka nj\u00eb person, i cili di gjith\u00e7ka q\u00eb nj\u00eb ekip i t\u00ebr\u00eb zhvilluesish nuk mund ta kuptoj\u00eb, dhe p\u00ebr m\u00eb tep\u00ebr ai duhet t\u00eb dij\u00eb dhe t\u00eb jet\u00eb n\u00eb gjendje t\u00eb b\u00ebj\u00eb at\u00eb q\u00eb kemi theksuar m\u00eb sip\u00ebr \u2014 infrastruktur\u00ebn harduerike, infrastruktur\u00ebn Kubernetes etj.<\/p>\n<p>\u00c7far\u00eb t\u00eb themi... Hjuston, kemi probleme.<\/p>\n<h3>Monitorimi i nj\u00eb projekti modern software \u00ebsht\u00eb nj\u00eb projekt software vet\u00eb.<\/h3>\n<p>\nNga besimi i gabuar se monitorimi \u00ebsht\u00eb softuer, ne fitojm\u00eb besimin n\u00eb mrekulli. Dhe p\u00ebr fat t\u00eb keq, nuk ka mrekulli. Nuk mund t\u00eb vendos\u00ebsh Zabbix dhe t\u00eb presesh q\u00eb gjith\u00e7ka t\u00eb funksionoj\u00eb. Nuk ka sens t\u00eb vendos\u00ebsh Grafana dhe t\u00eb shpresosh se gjith\u00e7ka do t\u00eb jet\u00eb n\u00eb rregull. Nj\u00eb pjes\u00eb e madhe e koh\u00ebs do t\u00eb shpenzohet p\u00ebr organizimin e kontrollit t\u00eb pun\u00ebs s\u00eb sh\u00ebrbimeve dhe nd\u00ebrveprimin e tyre me nj\u00ebri-tjetrin, kontrollimeve si funksionojn\u00eb sistemet e jashtme. Faktikisht, 90% e koh\u00ebs do t\u00eb shpenzohet jo p\u00ebr t\u00eb shkruar skripta, por p\u00ebr t\u00eb zhvilluar softuerin. Dhe kjo duhet ta b\u00ebj\u00eb nj\u00eb ekip q\u00eb e kupton pun\u00ebn e projektit. <br \/>\nN\u00ebse n\u00eb k\u00ebt\u00eb situat\u00eb nj\u00eb person \u00ebsht\u00eb kthyer n\u00eb monitorim, do t\u00eb ndodhin probleme. \u00c7far\u00eb ndodh kudo.<\/p>\n<p>P\u00ebr shembull, ka disa sh\u00ebrbime q\u00eb komunikojn\u00eb midis tyre p\u00ebrmes Kafka. Ka ardhur nj\u00eb porosi, ne e d\u00ebrguam mesazhin e porosis\u00eb n\u00eb Kafka. Ka nj\u00eb sh\u00ebrbim q\u00eb d\u00ebgjon informacionin p\u00ebr porosin\u00eb dhe realizon dor\u00ebzimin e mallrave. Ka nj\u00eb sh\u00ebrbim tjet\u00ebr q\u00eb d\u00ebgjon informacionin p\u00ebr porosin\u00eb dhe i d\u00ebrgon nj\u00eb email p\u00ebrdoruesit. Dhe pastaj shfaqen edhe disa sh\u00ebrbime t\u00eb tjera, dhe ne fillojm\u00eb t\u00eb ngat\u00ebrrohemi.<\/p>\n<p>Por n\u00ebse ju e jepni k\u00ebt\u00eb gjithashtu administratorit dhe zhvilluesve n\u00eb nj\u00eb faz\u00eb kur ka mbetur pak koh\u00eb deri n\u00eb lansim, dikush do t\u00eb duhet t\u00eb kuptoj\u00eb t\u00eb gjith\u00eb k\u00ebt\u00eb protokoll. Dometh\u00ebn\u00eb, nj\u00eb projekt i k\u00ebtij shkalle k\u00ebrkon nj\u00eb koh\u00eb t\u00eb konsiderueshme dhe n\u00eb zhvillimin e sistemit duhet t\u00eb parashikohet kjo. <br \/>\nPor shum\u00eb shpesh, ve\u00e7an\u00ebrisht gjat\u00eb faz\u00ebs s\u00eb fillimit, n\u00eb startup-e, ne shohim se monitorimi shtyhet p\u00ebr m\u00eb von\u00eb. \"Tani do t\u00eb b\u00ebjm\u00eb nj\u00eb Proof of Concept, do t\u00eb startojm\u00eb me t\u00eb, le t\u00eb bjer\u00eb \u2013 ne jemi t\u00eb gatsh\u00ebm t\u00eb sakrifikojm\u00eb. Dhe m\u00eb pas do ta monitorojm\u00eb t\u00eb gjith\u00eb k\u00ebt\u00eb\". Kur (ose n\u00ebse) projekti fillon t\u00eb sjell\u00eb para, biznesi d\u00ebshiron t\u00eb zhvilloj\u00eb edhe m\u00eb shum\u00eb karakteristika \u2014 sepse \u00ebsht\u00eb filluar t\u00eb funksionoj\u00eb, pra duhet t\u00eb shtojm\u00eb m\u00eb shum\u00eb! Dhe ju jeni n\u00eb nj\u00eb pik\u00eb ku n\u00eb fillim duhet t\u00eb monitoroni gjith\u00e7ka q\u00eb ka ndodhur m\u00eb par\u00eb, q\u00eb z\u00eb jo 1% t\u00eb koh\u00ebs, por shum\u00eb m\u00eb tep\u00ebr. Dhe, p\u00ebr m\u00eb tep\u00ebr, p\u00ebr monitorimin do t\u00eb nevojiten zhvillues, dhe \u00ebsht\u00eb m\u00eb e leht\u00eb t'i d\u00ebrgoni ata n\u00eb karakteristika t\u00eb reja. N\u00eb fund, shkruhen karakteristika t\u00eb reja, gjith\u00e7ka nd\u00ebrlikohet, dhe ju jeni n\u00eb nj\u00eb bllokim t\u00eb pafund.<\/p>\n<p>Si duhet ta monitoroni nj\u00eb projekt duke filluar nga e para, dhe \u00e7far\u00eb duhet t\u00eb b\u00ebni n\u00ebse ju ka r\u00ebn\u00eb nj\u00eb projekt q\u00eb duhen monitoruar, por nuk e dini nga t\u00eb filloni?<\/p>\n<p>S\u00eb pari, duhet t\u00eb planifikoni. <\/p>\n<p><i>Nj\u00eb shk\u00ebputje lirik: shpesh e fillojn\u00eb me monitorimin e infrastruktur\u00ebs. P\u00ebr shembull, kemi Kubernetes. Do t\u00eb fillojm\u00eb duke vendosur Prometheus me Grafana, do t\u00eb vendosim plugins p\u00ebr monitorimin e \"kubikut\". Jo vet\u00ebm zhvilluesit, por edhe administrator\u00ebt kan\u00eb nj\u00eb praktik\u00eb t\u00eb ngush\u00ebllueshme: \"Do t\u00eb vendosim k\u00ebt\u00eb plugin, dhe plugin ndoshta e di si ta b\u00ebj\u00eb k\u00ebt\u00eb\". Njer\u00ebzit e p\u00eblqejn\u00eb t\u00eb fillojn\u00eb me gj\u00ebra t\u00eb thjeshta dhe t\u00eb kuptueshme, dhe jo me veprime t\u00eb r\u00ebnd\u00ebsishme. Dhe monitorimi i infrastruktur\u00ebs \u00ebsht\u00eb thjesht i till\u00eb.<\/i><\/p>\n<p>P\u00ebr t\u00eb filluar, vendosni se \u00e7far\u00eb dhe si d\u00ebshironi t\u00eb monitoroni, dhe pastaj zgjidhni mjetin, sepse njer\u00ebzit e tjer\u00eb nuk mund t'ju mendojn\u00eb ju. Dhe a duhet t\u00eb mendojn\u00eb? Njer\u00ebzit e tjer\u00eb menduan p\u00ebr veten e tyre, p\u00ebr nj\u00eb sistem univerzal \u2014 apo madje nuk menduan fare, kur e shkruanin k\u00ebt\u00eb plugin. Dhe fakti q\u00eb ky plugin ka 5 mij\u00eb p\u00ebrdorues, nuk do t\u00eb thot\u00eb se ai sjell ndonj\u00eb dobi. Mund\u00ebsisht, ju do t\u00eb b\u00ebheni p\u00ebrdoruesi i 5001-t\u00eb thjesht p\u00ebr faktin se deri m\u00eb tani kishim 5000 njer\u00ebz. <\/p>\n<p>N\u00ebse keni filluar t\u00eb monitoroni infrastruktur\u00ebn dhe backendi i aplikacionit tuaj ka pushuar s\u00eb p\u00ebrgjiguri, t\u00eb gjith\u00eb p\u00ebrdoruesit do t\u00eb humbasin lidhjen me aplikacionin mobil. Do t\u00eb paraqitet nj\u00eb gabim. Do t\u00eb vini dhe do t\u00eb thoni 'Aplikacioni nuk funksionon, \u00e7far\u00eb po b\u00ebni k\u00ebtu?' - 'Ne po monitorojm\u00eb'. - 'Si po monitoroni, n\u00ebse nuk shihni q\u00eb aplikacioni nuk funksionon?!' <\/p>\n<ol>\n<li>Mendoj se duhet t\u00eb filloni t\u00eb monitoroni pik\u00ebrisht nga pika e hyrjes s\u00eb p\u00ebrdoruesit. N\u00ebse p\u00ebrdoruesi nuk sheh q\u00eb aplikacioni funksionon \u2014 kjo \u00ebsht\u00eb ve\u00e7an\u00ebrisht nj\u00eb d\u00ebshtim. Dhe sistemi i monitorimit duhet t\u00eb paralajm\u00ebroj\u00eb p\u00ebr k\u00ebt\u00eb n\u00eb radh\u00eb t\u00eb par\u00eb. <\/li>\n<li>Dhe vet\u00ebm pastaj mund t\u00eb monitorojm\u00eb infrastruktur\u00ebn. Ose ta b\u00ebjm\u00eb k\u00ebt\u00eb paralelisht. Me infrastruktur\u00ebn \u00ebsht\u00eb m\u00eb e leht\u00eb \u2014 k\u00ebtu mund t\u00eb vendosim thjesht zabbix. <\/li>\n<li>Dhe tani duhet t\u00eb shkojm\u00eb n\u00eb rr\u00ebnj\u00ebt e aplikacionit p\u00ebr t\u00eb kuptuar se \u00e7far\u00eb nuk funksionon.<\/li>\n<\/ol>\n<p>\nIdeja ime kryesore \u00ebsht\u00eb \u2013 monitorimi duhet t\u00eb shkoj\u00eb paralelisht me procesin e zhvillimit. N\u00ebse e shk\u00ebputni ekipin e monitorimit n\u00eb detyra t\u00eb tjera (krijimi i CI\/CD, sandbox, reorganizimi i infrastruktur\u00ebs), monitorimi do t\u00eb filloj\u00eb t\u00eb mbetet prapa dhe ndoshta, ju kurr\u00eb nuk do t\u00eb arrini m\u00eb zhvillimin (ose her\u00ebt a von\u00eb do t\u00eb detyroheni ta ndaloni at\u00eb).<\/p>\n<h3>T\u00eb gjitha n\u00eb nivele<\/h3>\n<p>\nK\u00ebshtu e shoh organizimin e sistemit t\u00eb monitorimit.<\/p>\n<p>1) Niveli i aplikacionit:<\/p>\n<ul>\n<li>monitorimi i logjik\u00ebs biznesore t\u00eb aplikacionit;<\/li>\n<li>monitorimi i p\u00ebrmasave t\u00eb sh\u00ebndetit t\u00eb sh\u00ebrbimeve;<\/li>\n<li>monitorimi i integrimeve.<\/li>\n<\/ul>\n<p>\n2) Niveli i infrastruktur\u00ebs:<\/p>\n<ul>\n<li>monitorimi i nivelit t\u00eb orkestrimit;<\/li>\n<li>monitorimi i softuerit sistemor;<\/li>\n<li>monitorimi i nivelit t\u00eb \u2018harduerit\u2019.<\/li>\n<\/ul>\n<p>\n3) S\u00ebrish niveli i aplikacionit \u2014 por tashm\u00eb si nj\u00eb produkt inxhinierik:<\/p>\n<ul>\n<li>mbledhja dhe v\u00ebzhgimi i regjistrimeve t\u00eb aplikacionit;<\/li>\n<li>APM;<\/li>\n<li>tracing.<\/li>\n<\/ul>\n<p>\n4) Alarmimi:<\/p>\n<ul>\n<li>organizimi i sistemit t\u00eb njoftimeve;<\/li>\n<li>organizimi i sistemit t\u00eb kujdestaris\u00eb;<\/li>\n<li>organizimi i \u2018baz\u00ebs s\u00eb njohurive\u2019 dhe pun\u00ebs fluks t\u00eb trajtimit t\u00eb incidenteve.<\/li>\n<\/ul>\n<p>\n<b>\u00cbht\u00eb e r\u00ebnd\u00ebsishme<\/b>: ne arrijm\u00eb te alarmin jo pasi, por menj\u00ebher\u00eb! Nuk keni nevoj\u00eb t\u00eb filloni monitorimin dhe t\u00eb mendoni se si do t'i d\u00ebrgoni alarmin pas nj\u00eb kohe. Sepse \u00e7far\u00eb \u00ebsht\u00eb q\u00ebllimi i monitorimit: t\u00eb kuptoni ku di\u00e7ka nuk funksionon n\u00eb sistem dhe t'ua b\u00ebni t\u00eb ditur personave t\u00eb duhur. N\u00ebse e lini p\u00ebr n\u00eb fund, at\u00ebher\u00eb njer\u00ebzit e duhur do t\u00eb m\u00ebsojn\u00eb p\u00ebr problemet vet\u00ebm pas nj\u00eb telefonate \"n\u00eb nuk funksionon asgj\u00eb\".<\/p>\n<h3>Niveli i aplikacionit \u2014 monitorimi i logjik\u00ebs s\u00eb biznesit<\/h3>\n<p>\nK\u00ebtu b\u00ebhet fjal\u00eb p\u00ebr kontrollin e faktit q\u00eb aplikacioni po punon p\u00ebr p\u00ebrdoruesin.<\/p>\n<p>Ky nivel duhet t\u00eb realizohet n\u00eb faz\u00ebn e zhvillimit. P\u00ebr shembull, ne kemi nj\u00eb Prometheus t\u00eb supozuar: ai lidhet me serverin q\u00eb kryen kontrollin, b\u00ebn thirrje n\u00eb endpoint, dhe endpoint-i shkon dhe kontrollon API-n\u00eb.<\/p>\n<p>Kur shpesh k\u00ebrkohet t\u00eb monitoroni faqen kryesore p\u00ebr t\u00eb siguruar q\u00eb website-i funksionon, programuesit ofrojn\u00eb nj\u00eb lidhje q\u00eb mund t\u00eb thirret \u00e7do her\u00eb q\u00eb duhet t\u00eb sigurohen se API-ja po funksionon. Nd\u00ebrkoh\u00eb, programuesit jan\u00eb duke shkruar \/api\/test\/helloworld. <br \/>\nA \u00ebsht\u00eb nj\u00eb m\u00ebnyr\u00eb e vetme p\u00ebr t\u00eb siguruar q\u00eb gjith\u00e7ka funksionon? \u2014 Jo!<\/p>\n<ul>\n<li>Krijimi i kontrollimeve t\u00eb tilla \u00ebsht\u00eb, n\u00eb thelb, detyra e zhvilluesve. Testet unit duhet t'i shkruajn\u00eb programuesit q\u00eb shkruajn\u00eb kodin. Sepse, n\u00ebse i jepni k\u00ebt\u00eb nj\u00eb administratori \"Djali, ja lista e protokolleve API t\u00eb 25 funksioneve, t\u00eb lutem, monitoro t\u00eb gjith\u00eb!\" \u2014 nuk do t\u00eb ndodh\u00eb asgj\u00eb. <\/li>\n<li>N\u00ebse b\u00ebni print \"hello world\", askush nuk do t\u00eb m\u00ebsoj\u00eb ndonj\u00ebher\u00eb se API-ja duhet dhe v\u00ebrtet po funksionon. \u00c7do ndryshim n\u00eb API duhet t\u00eb sjell\u00eb p\u00ebr pasoj\u00eb ndryshimin e kontrollimeve. <\/li>\n<li>N\u00ebse tashm\u00eb keni nj\u00eb problem t\u00eb till\u00eb \u2013 ndaloni funksionalitetet dhe caktoni zhvillues q\u00eb do t\u00eb shkruajn\u00eb k\u00ebto kontrollime, ose pranoni humbjet, pranoni q\u00eb nuk po kontrollohet asgj\u00eb dhe do t\u00eb ket\u00eb d\u00ebshtime.<\/li>\n<\/ul>\n<p>\nK\u00ebshilla teknike:<\/p>\n<ul>\n<li>Sigurohuni t\u00eb organizoni nj\u00eb server t\u00eb jasht\u00ebm p\u00ebr t\u00eb kryer kontrollime \u2014 duhet t\u00eb jeni t\u00eb sigurt se projekti juaj \u00ebsht\u00eb i aksesuesh\u00ebm p\u00ebr bot\u00ebn e jashtme.<\/li>\n<li>Organizoni kontrollin p\u00ebr t\u00eb gjitha protokollet API, jo vet\u00ebm p\u00ebr disa endpoint-e t\u00eb ve\u00e7anta.<\/li>\n<li>Krijoni nj\u00eb prometheus-endpoint me rezultatet e kontrollimeve.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Niveli i aplikacionit \u2014 monitorimi i metrikave t\u00eb sh\u00ebndetit<\/h3>\n<p>\nTani b\u00ebhet fjal\u00eb p\u00ebr metrikat e sh\u00ebndetit t\u00eb jashtme t\u00eb sh\u00ebrbimeve. <\/p>\n<p>Ne kemi vendosur q\u00eb t\u00eb monitorojm\u00eb t\u00eb gjitha \"duart\" e aplikacionit me ndihm\u00ebn e kontrollimeve t\u00eb jashtme, t\u00eb cilat i th\u00ebrrasim nga nj\u00eb sistem jashtm\u00ebonitorimi. Por k\u00ebto jan\u00eb pik\u00ebrisht \"duart\" q\u00eb \"sheh\" p\u00ebrdoruesi. Ne duam t\u00eb jemi t\u00eb sigurt se sh\u00ebrbimet tona funksionojn\u00eb. K\u00ebtu historia \u00ebsht\u00eb m\u00eb e mir\u00eb: n\u00eb K8s ka kontrolle sh\u00ebndet\u00ebsore, q\u00eb t\u00eb pakt\u00ebn \"kubiku\" t\u00eb sigurohet se sh\u00ebrbimi po funksionon. Por gjysma e kontrolleve q\u00eb kam par\u00eb, jan\u00eb t\u00eb nj\u00ebjta me printimin \"hello world\". Pra, ai th\u00ebrret nj\u00eb her\u00eb pas vendosjes, dhe merr nj\u00eb p\u00ebrgjigje q\u00eb gjith\u00e7ka \u00ebsht\u00eb mir\u00eb \u2014 dhe kaq. Nd\u00ebrsa p\u00ebr nj\u00eb sh\u00ebrbim, n\u00ebse ai jep API-n\u00eb e tij n\u00ebp\u00ebrmjet REST, ka nj\u00eb num\u00ebr t\u00eb madh pikash hyr\u00ebse t\u00eb atij API, q\u00eb gjithashtu duhet t\u00eb monitorohen, sepse ne duam t\u00eb dim\u00eb q\u00eb ai funksionon. Dhe ne e monitorojm\u00eb at\u00eb brenda. <\/p>\n<p>Si t\u00eb realizohet sakt\u00ebsisht nga ana teknike: \u00e7do sh\u00ebrbim hap nj\u00eb endpoint p\u00ebr funksionimin e tij aktual dhe n\u00eb grafikat e Grafana (apo \u00e7do aplikacion tjet\u00ebr) ne shohim statusin e t\u00eb gjitha sh\u00ebrbimeve.<\/p>\n<ul>\n<li>\u00c7do ndryshim n\u00eb API duhet t\u00eb \u00e7oj\u00eb pas vetes nj\u00eb ndryshim n\u00eb kontroll. <\/li>\n<li>Krijoni sh\u00ebrbimin e ri menj\u00ebher\u00eb me metrika sh\u00ebndeti.<\/li>\n<li>Admini mund t\u00eb vij\u00eb tek zhvilluesit dhe t'i k\u00ebrkoj\u00eb \"shtoni disa karakteristika p\u00ebr mua, q\u00eb t\u00eb kuptoj gjith\u00e7ka dhe t\u00eb shtoj informacionin p\u00ebr k\u00ebt\u00eb n\u00eb sistemin tim t\u00eb monitorimit\". Por zhvilluesit zakonisht p\u00ebrgjigjen \"Nuk do t\u00eb shtojm\u00eb asgj\u00eb dy jav\u00eb para lansimit\".<br \/>\nLe t\u00eb din\u00eb menaxher\u00ebt e zhvillimit se do t\u00eb ket\u00eb humbje t\u00eb tilla, le t\u00eb dij\u00eb drejtoria e menaxher\u00ebve t\u00eb zhvillimit gjithashtu. Sepse, kur gjith\u00e7ka t\u00eb bjer\u00eb, dikush do t\u00eb telefonoj\u00eb dhe do t\u00eb k\u00ebrkoj\u00eb q\u00eb t\u00eb monitorohet \"sh\u00ebrbimi q\u00eb bie vazhdimisht\" (c) <\/li>\n<li>P\u00ebr m\u00eb tep\u00ebr, ndajn\u00eb zhvillues t\u00eb shkruajn\u00eb plugina p\u00ebr Grafana \u2014 kjo do t\u00eb jet\u00eb nj\u00eb ndihm\u00eb e mir\u00eb p\u00ebr admin\u00ebt.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Niveli i aplikacionit \u2014 Monitorimi integrues<\/h3>\n<p>\nMonitorimi integrues fokusohet n\u00eb monitorimin e komunikimit midis sistemeve kritike p\u00ebr biznesin.<\/p>\n<p>P\u00ebr shembull, ekzistojn\u00eb 15 sh\u00ebrbime q\u00eb komunikojn\u00eb me nj\u00ebra-tjetr\u00ebn. K\u00ebto nuk jan\u00eb m\u00eb faqe t\u00eb ve\u00e7anta. Pra, ne nuk mund t\u00eb th\u00ebrrasim sh\u00ebrbimin n\u00eb vetvete, t\u00eb marrim \/helloworld dhe t\u00eb kuptojm\u00eb se sh\u00ebrbimi po funksionon. Sepse sh\u00ebrbimi i procesimit t\u00eb porosive duhet t\u00eb d\u00ebrgoj\u00eb informacionin e porosis\u00eb n\u00eb autobusin \u2014 nga autobusi sh\u00ebrbimi p\u00ebr menaxhimin e inventarit duhet t\u00eb marr\u00eb k\u00ebt\u00eb mesazh dhe t\u00eb punoj\u00eb me t\u00eb m\u00eb tej. Dhe sh\u00ebrbimi i d\u00ebrgimit t\u00eb email-eve duhet ta p\u00ebrpunoj\u00eb k\u00ebt\u00eb ndryshe, etj. <\/p>\n<p>Prandaj, ne mund t\u00eb kuptojm\u00eb duke goditur \u00e7do sh\u00ebrbim t\u00eb ve\u00e7ant\u00eb, se si funksionon gjith\u00e7ka. Sepse kemi nj\u00eb bus, p\u00ebrmes t\u00eb cilit gjith\u00e7ka komunikon dhe bashk\u00ebvepron.<br \/>\nPra, kjo faz\u00eb duhet t\u00eb p\u00ebrfaq\u00ebsoj\u00eb faz\u00ebn e testimit t\u00eb sh\u00ebrbimeve p\u00ebr nd\u00ebrveprimin me sh\u00ebrbime t\u00eb tjera. Nuk \u00ebsht\u00eb e mundur t\u00eb monitorosh komunikimin duke monitoruar brokerin e mesazheve. N\u00ebse ka nj\u00eb sh\u00ebrbim q\u00eb jep t\u00eb dh\u00ebna dhe nj\u00eb sh\u00ebrbim q\u00eb i merr ato, duke monitoruar brokerin do t\u00eb shohim vet\u00ebm t\u00eb dh\u00ebnat q\u00eb shkojn\u00eb nga nj\u00ebra an\u00eb n\u00eb tjetr\u00ebn. Edhe n\u00ebse ndonj\u00eb si\u00e7 arrit\u00ebm t\u00eb monitorojm\u00eb nd\u00ebrveprimin e k\u00ebtyre t\u00eb dh\u00ebnave brenda \u2014 q\u00eb nj\u00eb prodhues poston t\u00eb dh\u00ebna, dikush i lexon ato, ky rrjedh i vazhdon n\u00eb Kafka \u2014 kjo p\u00ebrs\u00ebri nuk do t\u00eb na jap\u00eb informacion, n\u00ebse nj\u00eb sh\u00ebrbim d\u00ebrgoi nj\u00eb mesazh n\u00eb nj\u00eb version, nd\u00ebrsa sh\u00ebrbimi tjet\u00ebr nuk e priti k\u00ebt\u00eb version dhe e humbi at\u00eb. Ne nuk do ta marrim vesh k\u00ebt\u00eb, pasi sh\u00ebrbimet do t\u00eb na thon\u00eb se gjith\u00e7ka funksionon. <\/p>\n<p>Si e rekomandoj t\u00eb b\u00ebhet:<\/p>\n<ul>\n<li>P\u00ebr komunikimin sinkron: endpoint-i kryen k\u00ebrkesa ndaj sh\u00ebrbimeve t\u00eb lidhura. Pra, ne marrim k\u00ebt\u00eb endpoint, nxjerrim nj\u00eb skript brenda sh\u00ebrbimit q\u00eb kalon p\u00ebrmes t\u00eb gjitha pikave dhe thot\u00eb 'mund t\u00eb godas atje, dhe atje, mund t\u00eb godas...'<\/li>\n<li>P\u00ebr komunikimin asinkron: mesazhet e ardhshme \u2014 endpoint-i kontrollon busin p\u00ebr mesazhe testuese dhe jep statusin e p\u00ebrpunimit. <\/li>\n<li>P\u00ebr komunikimin asinkron: mesazhet q\u00eb dalin \u2014 endpoint-i d\u00ebrgon mesazhe testuese n\u00eb bus.<\/li>\n<\/ul>\n<p>\nSi ndodh zakonisht: kemi nj\u00eb sh\u00ebrbim q\u00eb d\u00ebrgon t\u00eb dh\u00ebna n\u00eb bus. Ne shkojm\u00eb n\u00eb k\u00ebt\u00eb sh\u00ebrbim dhe k\u00ebrkojm\u00eb t\u00eb flasim p\u00ebr sh\u00ebndetin e tij integrues. Dhe n\u00ebse sh\u00ebrbimi duhet t\u00eb prodhoj\u00eb ndonj\u00eb mesazh diku tjet\u00ebr (WebApp), at\u00ebher\u00eb ai e prodhon at\u00eb mesazh testues. N\u00ebse ne po godasim sh\u00ebrbimin n\u00eb an\u00ebn e P\u00ebrpunimit t\u00eb Porosive, ai fillimisht poston at\u00eb q\u00eb mund t\u00eb postoj\u00eb t\u00eb pavarur, dhe n\u00ebse ka ndonj\u00eb gj\u00eb t\u00eb varur \u2014 at\u00ebher\u00eb ai lexon nga busi nj\u00eb grup mesazhesh testuese, kupton se \u00e7far\u00eb mund t\u00eb p\u00ebrpunoj\u00eb, informon p\u00ebr k\u00ebt\u00eb dhe, n\u00ebse \u00ebsht\u00eb e nevojshme, i poston m\u00eb tutje, dhe p\u00ebr k\u00ebt\u00eb ai thot\u00eb \u2014 gjith\u00e7ka \u00ebsht\u00eb n\u00eb rregull, jam gjall\u00eb. <\/p>\n<p>Shum\u00eb shpesh d\u00ebgjojm\u00eb pyetjen \"si mund ta testojm\u00eb k\u00ebt\u00eb me t\u00eb dh\u00ebna reale?\" P\u00ebr shembull, kjo i referohet sh\u00ebrbimit t\u00eb nj\u00ebjt\u00eb t\u00eb porosis\u00eb. Porosia d\u00ebrgon njoftime n\u00eb magazin\u00eb, ku produktet hiqen: ne nuk mund ta testojm\u00eb k\u00ebt\u00eb me t\u00eb dh\u00ebna reale, sepse \"do t\u00eb hiqen produktet!\" Zgjidhja: n\u00eb faz\u00ebn fillestare, planifikoni t\u00eb gjith\u00eb k\u00ebt\u00eb test. Ju keni teste unitare q\u00eb krijojn\u00eb mock. K\u00ebshtu, b\u00ebni k\u00ebt\u00eb n\u00eb nj\u00eb nivel m\u00eb t\u00eb thell\u00eb, ku do t\u00eb ket\u00eb nj\u00eb kanal komunikimi q\u00eb nuk do t\u00eb d\u00ebmtoj\u00eb funksionimin e biznesit. <\/p>\n<h3>Niveli i infrastruktur\u00ebs<\/h3>\n<p>\nMonitorimi i infrastruktur\u00ebs - \u00ebsht\u00eb di\u00e7ka q\u00eb konsiderohet prej koh\u00ebsh si monitorimi i v\u00ebrtet\u00eb. <\/p>\n<ul>\n<li>Monitorimi i infrastruktur\u00ebs mund dhe duhet t\u00eb filloj\u00eb si nj\u00eb proces i ve\u00e7ant\u00eb.<\/li>\n<li>Nuk \u00ebsht\u00eb mir\u00eb t\u00eb filloni me monitorimin e infrastruktur\u00ebs n\u00eb nj\u00eb projekt q\u00eb funksionon, edhe n\u00ebse kjo ju t\u00ebrheq. Kjo \u00ebsht\u00eb nj\u00eb simptom\u00eb p\u00ebr t\u00eb gjith\u00eb devops-at. \"S\u00eb pari do t\u00eb monitoroj klasterin, do t\u00eb monitoroj infrastruktur\u00ebn\" - dmth. s\u00eb pari do t\u00eb monitoroj\u00eb at\u00eb q\u00eb \u00ebsht\u00eb posht\u00eb, dhe nuk do t\u00eb merret me aplikacionin. Sepse aplikacioni \u00ebsht\u00eb nj\u00eb gj\u00eb e paqart\u00eb p\u00ebr devops-in. I \u00ebsht\u00eb dh\u00ebn\u00eb, dhe ai nuk kupton si funksionon. Ai kupton infrastruktur\u00ebn dhe fillon nga ajo. Por jo - gjithmon\u00eb s\u00eb pari duhet t\u00eb monitoroni aplikacionin. <\/li>\n<li>Mos e teproni me numrin e alarmeve. Duke pasur parasysh kompleksitetin e sistemeve moderne, alertet fluturojn\u00eb vazhdimisht, dhe duhet t\u00eb jetoni me k\u00ebt\u00eb mori alarmesh. Ndaj, njeriu on-call, duke par\u00eb nj\u00ebqind alertet e reja, do t\u00eb vendos\u00eb \"nuk dua t\u00eb mendoj p\u00ebr k\u00ebt\u00eb\". Alertet duhet t\u00eb njoftojn\u00eb vet\u00ebm p\u00ebr gj\u00ebrat kritike. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Niveli i aplikacionit si nj\u00ebsie biznesi<\/h3>\n<p>\nPikat ky\u00e7e:<\/p>\n<ul>\n<li>ELK. Ky \u00ebsht\u00eb standardi industrial. N\u00ebse p\u00ebr ndonj\u00eb arsye nuk po agregoni log-et, filloni urgjentisht ta b\u00ebni k\u00ebt\u00eb.<\/li>\n<li>APM. APM-t\u00eb e jashtme si nj\u00eb m\u00ebnyr\u00eb p\u00ebr t\u00eb mbyllur shpejt monitorimin e aplikacionit (NewRelic, BlackFire, Datadog). Mund ta vendosni p\u00ebrkoh\u00ebsisht k\u00ebt\u00eb gj\u00eb, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb kuptoni \u00e7far\u00eb po ndodh. <\/li>\n<li>Tracing. N\u00eb dhjet\u00ebra mikrosh\u00ebrbime duhet t\u00eb b\u00ebni ndjekje t\u00eb gjith\u00e7kaje, sepse k\u00ebrkesa nuk jeton m\u00eb vet\u00eb. T\u00eb shtosh m\u00eb von\u00eb \u00ebsht\u00eb shum\u00eb e v\u00ebshtir\u00eb, prandaj \u00ebsht\u00eb m\u00eb mir\u00eb ta planifikoni ndjekjen gjat\u00eb zhvillimit - kjo \u00ebsht\u00eb pun\u00eb dhe utilitare p\u00ebr zhvilluesit. N\u00ebse ende nuk e keni zbatuar - zbatojeni! Shihni Jaeger\/Zipkin<\/li>\n<\/ul>\n<p><\/p>\n<h3>Alarmin<\/h3>\n<p><\/p>\n<ul>\n<li>Organizimi i sistemit t\u00eb njoftimeve: n\u00eb kushtet e monitorimit t\u00eb nj\u00eb numri t\u00eb madh gj\u00ebrash duhet t\u00eb ket\u00eb nj\u00eb sistem t\u00eb unifikuar p\u00ebr shp\u00ebrndarjen e njoftimeve. Mund ta b\u00ebni n\u00eb Grafana. N\u00eb Per\u00ebndim, t\u00eb gjith\u00eb p\u00ebrdorin PagerDuty. Njoftimet duhet t\u00eb jen\u00eb t\u00eb qarta (p.sh., nga kan\u00eb ardhur\u2026). \u00cbsht\u00eb e preferueshme t\u00eb kontrolloni n\u00ebse njoftimet arrijn\u00eb v\u00ebrtet. <\/li>\n<li>Organizimi i sistemit t\u00eb turneve: alertrat nuk duhet t\u00eb vijn\u00eb p\u00ebr t\u00eb gjith\u00eb (ndryshe t\u00eb gjith\u00eb do t\u00eb reagojn\u00eb si turm\u00eb, ose askush nuk do t\u00eb reagoj\u00eb). Oncall duhet t\u00eb p\u00ebrfshij\u00eb edhe zhvilluesit: sigurohuni q\u00eb t\u00eb p\u00ebrcaktoni zonat e p\u00ebrgjegj\u00ebsis\u00eb, b\u00ebni nj\u00eb udh\u00ebzim t\u00eb qart\u00eb dhe shkruani n\u00eb t\u00eb se kujt sakt\u00ebsisht duhet t\u00eb i telefononi t\u00eb h\u00ebn\u00ebn dhe t\u00eb m\u00ebrkur\u00ebn, dhe kujt \u2014 t\u00eb mart\u00ebn dhe t\u00eb premten (ndryshe askush nuk do t\u00eb telefonoj\u00eb madje as n\u00eb rast katastrofash t\u00eb m\u00ebdha \u2014 do t\u00eb frik\u00ebsohen t\u00eb zgjojn\u00eb ose shqet\u00ebsojn\u00eb: njer\u00ebzit n\u00eb p\u00ebrgjith\u00ebsi nuk i p\u00eblqen t\u00eb telefonojn\u00eb dhe t\u00eb zgjojn\u00eb t\u00eb tjer\u00ebt, sidomos nat\u00ebn). Dhe shpjegoni se k\u00ebrkimi p\u00ebr ndihm\u00eb nuk \u00ebsht\u00eb tregues i paaft\u00ebsis\u00eb (\u2018po k\u00ebrkoj ndihm\u00eb \u2014 do t\u00eb thot\u00eb se jam punonj\u00ebs i keq\u2019), inkurajoni k\u00ebrkesat p\u00ebr ndihm\u00eb.<\/li>\n<li>Organizimi i \u2018baz\u00ebs s\u00eb njohurive\u2019 dhe procesit t\u00eb trajtimit t\u00eb incidenteve: p\u00ebr \u00e7do incident t\u00eb r\u00ebnd\u00eb duhet t\u00eb planifikohet nj\u00eb postmortem, si nj\u00eb mas\u00eb p\u00ebrkohore, duhen regjistruar veprimet q\u00eb do t\u00eb zgjidhin incidentin. Dhe krijoni nj\u00eb praktik\u00eb q\u00eb alertrat e p\u00ebrs\u00ebritura jan\u00eb nj\u00eb m\u00ebkat; ato duhet t\u00eb regjistrohen n\u00eb kod ose n\u00eb pun\u00ebt infrastrukturore. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Stoku teknologjik<\/h3>\n<p>\nLe t\u00eb imagjinojm\u00eb se staku yn\u00eb \u00ebsht\u00eb si m\u00eb posht\u00eb: <\/p>\n<ul>\n<li>mbledhja e t\u00eb dh\u00ebnave \u2014 Prometheus + Grafana;<\/li>\n<li>analiza e protokolleve \u2014 ELK;<\/li>\n<li>p\u00ebr APM ose gjurmim \u2014 Jaeger (Zipkin).<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Monitorimi i vdekur? \u2014 Jetofsh\u00eb monitorimi\" src=\"\/wp-content\/uploads\/2019\/04\/af26d3c0ba781cd856d220515788b5eb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZgjedhja e opsioneve nuk \u00ebsht\u00eb kritike. Sepse, n\u00ebse e kuptoni n\u00eb fillim se si t\u00eb monitoroni sistemin dhe keni b\u00ebr\u00eb nj\u00eb plan, at\u00ebher\u00eb filloni t\u00eb zgjidhni mjetet sipas k\u00ebrkesave tuaja. Pyetja \u00ebsht\u00eb se \u00e7far\u00eb vendos\u00ebt t\u00eb monitoroni fillimisht. Sepse, ndoshta, mjeti q\u00eb zgjodh\u00ebt fillimisht \u2014 thjesht nuk i p\u00ebrshtatet k\u00ebrkesave tuaja. <\/p>\n<p>Disa pika teknike q\u00eb un\u00eb po shoh kudo koh\u00ebt e fundit:<\/p>\n<p><i>Prometheus po shtohet brenda Kubernetes \u2014 kush e p\u00ebrfundoi k\u00ebt\u00eb?!<\/i> N\u00ebse klasteri juaj bie, \u00e7far\u00eb do t\u00eb b\u00ebni? N\u00ebse keni nj\u00eb klaster t\u00eb nd\u00ebrlikuar brenda, duhet t\u00eb funksionoj\u00eb nj\u00eb sistem monitorimi brenda klasterit, dhe nj\u00eb tjet\u00ebr \u2014 jasht\u00eb, q\u00eb do t\u00eb mbledh\u00eb t\u00eb dh\u00ebna nga brenda klasterit. <\/p>\n<p><i>Brenda klasterit ne mbledhim protokollet dhe gjith\u00e7ka tjet\u00ebr.<\/i> Por sistemi i monitorimit duhet t\u00eb jet\u00eb jasht\u00eb. Shum\u00eb shpesh n\u00eb klaster, ku ka Promtheus t\u00eb vendosur brenda, jan\u00eb gjithashtu sisteme q\u00eb b\u00ebjn\u00eb kontrolle t\u00eb jashtme t\u00eb funksionimit t\u00eb faqes. E n\u00ebse lidhjet me bot\u00ebn e jashtme bien dhe aplikacioni nuk punon? Del se brenda gjith\u00e7ka \u00ebsht\u00eb mir\u00eb, por p\u00ebrdoruesit nuk e kan\u00eb m\u00eb t\u00eb leht\u00eb.<\/p>\n<h3>P\u00ebrfundimet<\/h3>\n<p><\/p>\n<ul>\n<li>Zhvillimi i monitorimit nuk \u00ebsht\u00eb thjesht instalimi i utiliteteve, por zhvillimi i nj\u00eb produkti programor. 98% e monitorimit t\u00eb sot\u00ebm \u00ebsht\u00eb kodim. Kodim n\u00eb sh\u00ebrbime, kodim i kontrolleve t\u00eb jashtme, kontrolli i sh\u00ebrbimeve t\u00eb jashtme, dhe t\u00eb gjitha-t\u00eb gjitha-t\u00eb gjitha. <\/li>\n<li>Mos hidhni posht\u00eb koh\u00ebn e zhvilluesve p\u00ebr monitorimin: kjo mund t\u00eb marr\u00eb deri n\u00eb 30% t\u00eb pun\u00ebs s\u00eb tyre, por ia vlen.<\/li>\n<li>DevOps, mos u shqet\u00ebsoni q\u00eb nuk po arrini t\u00eb monitoroni di\u00e7ka, sepse disa gj\u00ebra jan\u00eb n\u00eb t\u00eb v\u00ebrtet\u00eb nj\u00eb mend\u00ebsi krejt tjet\u00ebr. Nuk ishit programues, dhe puna e monitorimit \u00ebsht\u00eb pik\u00ebrisht puna e tyre.<\/li>\n<li>N\u00ebse projekti tashm\u00eb funksionon dhe nuk \u00ebsht\u00eb monitoruar (dhe ju jeni menaxher) - caktoni burime p\u00ebr monitorim.<\/li>\n<li>N\u00ebse produkti \u00ebsht\u00eb tashm\u00eb n\u00eb prodhim dhe ju jeni DevOps-i q\u00eb u tha \"t\u00eb konfiguroj\u00eb monitorimin\" - p\u00ebrpiquni t\u00eb shpjegoni drejtuesve at\u00eb q\u00eb kam th\u00ebn\u00eb k\u00ebtu.<\/li>\n<\/ul>\n<p>\n<i>Kjo \u00ebsht\u00eb nj\u00eb version i zgjeruar i nj\u00eb referati n\u00eb konferenc\u00ebn Saint Highload++.<\/i><\/p>\n<p>N\u00ebse jeni t\u00eb interesuar p\u00ebr idet\u00eb dhe mendimet e mia mbi IT dhe tema t\u00eb ngjashme, ja ku mund t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/eapotapov_channel\">lexoni kanalin <\/a><\/noindex>\ud83d\ude42<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/448602\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0448\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441 2008 \u0433\u043e\u0434\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0438 \u043a\u0440\u0443\u0433\u043b\u043e\u0441\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432: \u0443 \u043d\u0430\u0441 \u0431\u043e\u043b\u0435\u0435 400 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u044d\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 15% \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043c\u0435\u0440\u0446\u0438\u0438 \u0420\u043e\u0441\u0441\u0438\u0438. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0430\u0434\u0430\u0435\u0442, \u043c\u044b \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 15 \u043c\u0438\u043d\u0443\u0442 \u044d\u0442\u043e \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c. \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0430\u0432\u0430\u0440\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430, \u043d\u0443\u0436\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23731,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31864","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=\"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\/monitoring-myortv-da-zdravstvuet-monitoring\" \/>\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\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043c\u0451\u0440\u0442\u0432? \u2014 \u0414\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/monitoring-myortv-da-zdravstvuet-monitoring\" \/>\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=\"2019-10-31T18:43:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:43:33+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\udd47Monitorimi \u00ebsht\u00eb i vdekur? - Rroft\u00eb monitorimi | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/monitoring-myortv-da-zdravstvuet-monitoring","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\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043c\u0451\u0440\u0442\u0432? \u2014 \u0414\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/monitoring-myortv-da-zdravstvuet-monitoring","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":"2019-10-31T18:43:33+00:00","article:modified_time":"2019-10-31T18:43:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31864","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":"2026-02-09 17:01:09","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:09:27","updated":"2026-02-09 17:01:09","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\/31864","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=31864"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/31864\/revisions"}],"predecessor-version":[{"id":158558,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/31864\/revisions\/158558"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/23731"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=31864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=31864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=31864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}