Ievads par Prometeju un Grafānu

Prometheus ir atvērtā koda uz metriku balstīta uzraudzības sistēma. Tā apkopo datus no pakalpojumiem un resursdatoriem, nosūtot HTTP pieprasījumus metrikas galapunktos. Pēc tam tas saglabā rezultātus laikrindu datu bāzē un padara tos pieejamus analīzei un brīdināšanai.

Kāpēc jāuzrauga?

  • Iespējo brīdinājumus, ja kaut kas noiet greizi, vēlams, pirms tās noiet greizi. Lai kāds varētu to apskatīt.
  • Tas sniedz ieskatu, lai iespējotu problēmas analīzi, atkļūdošanu un atrisināšanu.
  • Tas ļauj jums redzēt tendences/izmaiņas laika gaitā. Piemēram, cik aktīvo sesiju jebkurā laikā. Tas palīdz projektēšanas lēmumos un jaudas plānošanā.

Uzraudzība parasti attiecas uz notikumiem. Notikums var ietvert HTTP pieprasījuma saņemšanu, atbildes nosūtīšanu, nolasīšanu no diska, lietotāja pieteikšanos. Sistēmas uzraudzība var ietvert profilēšanu, reģistrēšanu, izsekošanu, metriku, brīdinājumus un vizualizāciju.

Blackbox un Whitebox uzraudzība

Uzraudzība iedalās divās galvenajās kategorijās:

Blackbox uzraudzība

Blackbox uzraudzībā uzraudzība notiek lietojumprogrammas vai resursdatora līmenī, jo tie tiek novēroti no ārpuses. Tas var būt diezgan ierobežojošs.

Whitebox uzraudzība

Whitebox uzraudzība nozīmē pakalpojuma iekšējo elementu uzraudzību. Tas atklātu datus par iekšējo komponentu stāvokli un veiktspēju.

Četri zelta signāli

Saskaņā ar Googleja varat izmērīt tikai četrus lietotājam paredzētās sistēmas rādītājus, koncentrējieties uz tālāk norādītajiem četriem, ko sauc par četriem zelta signāliem.

#1. Latentums

Laiks, kas nepieciešams pieprasījuma izpildei — veiksmīgs vai neizdevies. Ir svarīgi izsekot ne tikai veiksmīgiem, bet arī neveiksmīgiem pieprasījumiem.

  40 gadus vēlāk “Pac-Man” joprojām iekaro mūsu sirdis

#2. Satiksme

Mērījums, kas parāda, cik liels pieprasījums ir jūsu sistēmai. Tīmekļa pakalpojumam tas parasti ir HTTP pieprasījumi sekundē.

#3. Kļūdas

Neveiksmīgo pieprasījumu rādītājs.

#4. Piesātinājums

Cik pilns ir jūsu pakalpojums. Latenta palielināšanās bieži ir svarīgs piesātinājuma rādītājs. Daudzu sistēmu veiktspēja pasliktinās daudz pirms 100% izmantošanas.

Prometeja metrikas veidi

Prometheus metrikas ir četri galvenie veidi:

#1. Skaitītājs

Skaitītāja vērtība vienmēr palielināsies. Tas nekad nevar samazināties, bet to var atiestatīt uz nulli. Tātad, ja nokasīšana neizdodas, tas nozīmē tikai nokavētu datu punktu. Kumulatīvais palielinājums būs pieejams nākamajā lasījumā. Piemēri:

  • Kopējais saņemto HTTP pieprasījumu skaits
  • Izņēmumu skaits.

#2. Mērinstruments

Mērinstruments ir momentuzņēmums jebkurā noteiktā laika brīdī. Tas var gan palielināties, gan samazināties. Ja datu ielāde neizdodas, jūs zaudējat paraugu; nākamajā ielāde var parādīt citu vērtību: diska vietas piemēri, atmiņas lietojums.

#3. Histogramma

Histogramma ņem paraugus novērojumiem un saskaita tos konfigurējamos segmentos. Tos izmanto, piemēram, pieprasījuma ilgumam vai atbildes lielumam. Piemēram, varat izmērīt pieprasījuma ilgumu konkrētam HTTP pieprasījumam. Histogrammā būs segmentu kopa, piemēram, 1 ms, 10 ms un 25 ms. Tā vietā, lai saglabātu katru katra pieprasījuma ilgumu, Prometheus saglabās to pieprasījumu biežumu, kas ietilpst noteiktā segmentā.

#4. Kopsavilkums

Līdzīgi kā histogrammu paraugu novērojumos, parasti tiek pieprasīts ilgums vai atbildes lielums. Tas nodrošinās kopējo novērojumu skaitu un visu novēroto vērtību summu, ļaujot aprēķināt novēroto vērtību vidējo vērtību. Piemēram, vienas minūtes laikā jums bija trīs pieprasījumi, kas aizņēma 2,3,4 sekundes. Summa būtu 9, un skaits būtu 3. Latentums būtu 3 sekundes.

Prometeja ekosistēmas sastāvdaļas

Prometheus serveris

Apkopo metriku, saglabā tos un padara tos pieejamus vaicājumiem, sūta brīdinājumus, pamatojoties uz savāktajiem rādītājiem.

  Izlabojiet Black Ops 3 ABC kļūdu PS4

Kasīšana

Prometejs ir uz vilkšanu balstīta sistēma. Lai iegūtu metriku, Prometheus nosūta HTTP pieprasījumu, ko sauc par skrāpējumu. Tas nosūta skrāpējumus mērķiem, pamatojoties uz tā konfigurāciju.

Katrs mērķis (statiski definēts vai dinamiski atklāts) tiek nokasīts ar regulāru intervālu (nokasīšanas intervāls). Katrs skrāpējums nolasa /metrics HTTP galapunktu, lai iegūtu klienta metrikas pašreizējo stāvokli, un saglabā vērtības Prometheus laikrindu datu bāzē.

Ir vairāk laikrindu datu bāzu uzraudzības risinājumiem, kurus, iespējams, vēlēsities izpētīt.

Klientu bibliotēkas

Lai pārraudzītu pakalpojumu, kodam jāpievieno instrumenti. Ir pieejamas klientu bibliotēkas visām populārajām valodām un izpildlaikiem. Izmantojot šīs bibliotēkas, kad esat pievienojis dažas koda rindiņas, kods var sākt izdalīt metriku. To sauc par tiešo instrumentāciju. Šīs bibliotēkas ļauj definēt iekšējos rādītājus un arī atklāt tos, izmantojot HTTP galapunktu. Kad Prometheus nokasa metrikas HTTP galapunktu, klienta bibliotēka nosūta metriku uz serveri.

Oficiālās klientu bibliotēkas piedāvā Prometheus for Go, Java, Python un Ruby. Prometejam ir atvērta ekosistēma. Ir pieejamas arī kopienas veidotas klientu bibliotēkas C, PHP, Node.js, C#/.NET un daudziem citiem.

Eksportētāji

Daudzas lietojumprogrammas parāda metriku formātā, kas nav Prometheus. Šīm un lietojumprogrammām, kas jums nepieder vai kurām jums nav piekļuves kodam, instrumentus nevar pievienot tieši. Piemēram, MySQL, Kafka, JMX, HAProxy un NGINX serveris. Šajos scenārijos jūs izmantojat eksportētājiem.

Eksportētājs ir rīks, ko izvietojat kopā ar lietojumprogrammu, no kuras vēlaties iegūt metriku. Eksportētājs darbojas kā starpnieks starp lietojumprogrammu un Prometheus. Tas saņems pieprasījumus no Prometheus servera, apkopos datus no piekļuves žurnāliem, lietojumprogrammas kļūdu žurnāliem, pārveidos tos pareizajā formātā un beidzot atgriezīsies Prometheus serverī.

Daži no populārākajiem eksportētājiem ir:

  • Windows – Windows servera metrikai
  • Mezgls – Linux servera rādītājiem
  • Melnā kaste – DNS un vietnes veiktspējas rādītājiem
  • JMX – uz Java balstītu lietojumprogrammu metrikai
  Kā iestatīt MP4 video atskaņotāju Ubuntu

Kad lietojumprogrammas ir aprīkotas vai ir izveidoti eksportētāji, jums jāpaziņo Prometheus, kur tie atrodas. To var izdarīt, izmantojot statisko konfigurāciju. Dinamiskās vides gadījumā to nevar izdarīt; tāpēc tiek izmantota pakalpojuma atklāšana.

Brīdinājums

Brīdināšana ar Prometheus sastāv no divām daļām –

Brīdinājumu noteikumi nosūta brīdinājumus Alertmanager.

Alertmanager pārvalda šos brīdinājumus. Tas izsūta paziņojumus, izmantojot daudzas jau iebūvētas integrācijas, piemēram, e-pastu, Slack, Hipchat un PagerDuty. Alertmanager var arī veikt klusēšanu vai apkopošanu, lai samazinātu paziņojumu skaitu.

Šeit ir rokasgrāmata Linux servera uzraudzībai, izmantojot Prometheus un informācijas paneli.

Vizualizācija ar informācijas paneļiem

Prometheus ir vairākas API, ar kurām PromQL vaicājumi var radīt neapstrādātus datus vizualizācijām.

Lai gan Prometheus ietver izteiksmes pārlūkprogrammu, ko var izmantot ad hoc vaicājumiem, labākais pieejamais rīks ir Grafana. Grafana pilnībā integrējas ar Prometheus un var ražot dažādus informācijas paneļus.

Jums būs jākonfigurē Prometheus kā Grafana datu avots.

Varat pievienot informācijas paneļus, veicot tālāk norādītās darbības.

  • Kopienā izveidoto informācijas paneļu importēšana
  • Veidojot savu
  • Izmantojot iepriekš definētu informācijas paneli.

Šādi izskatās iepriekš definēta mezgla eksportētāja informācijas panelis:

Grafana ir worldPing modulis, kas ļauj pārraudzīt vietņu un DNS veiktspējas rādītājus visā pasaulē.

Kopsavilkums

Prometejam ir ļoti maz prasību. Tas var būt diezgan vienkārši palaist, jo tas ir viens binārs ar konfigurācijas failu. Tas var apstrādāt tūkstošiem mērķu un uzņemt miljoniem paraugu sekundē. Prometheus ir paredzēts, lai izsekotu vispārējai sistēmai, veselībai, sistēmas uzvedībai.

Grafana ir labākais pieejamais rīks metrikas vizualizācijai un nemanāmi integrējas ar Prometejs.