Prometeu (software)

Prometeu

informație
Prima versiune 26 noiembrie 2012
Ultima versiune 2.26.0 (31 martie 2021)
Depozit github.com/prometheus/prometheus
Asigurarea calității Integrare continuă
Scris in Merge
Sistem de operare Linux , NetBSD , OpenBSD , FreeBSD , Microsoft Windows , Darwin și DragonFly BSD
Mediu inconjurator X86_64 , IA-32 ( ro ) , arhitectură MIPS , arhitectură PowerPC și ARM
Tip Aplicație de monitorizare ( d )
Baza de date cu serii de timp ( en )
Linux Foundation Project ( d )
Licență Licență Apache versiunea 2.0
Documentație prometheus.io/docs/introduction/overview
Site-ul web prometheus.io

Prometheus este un software open source de monitorizare și alertare a computerului. Înregistrează valori în timp real la o bază de date de serii temporale (cu capacitate mare de achiziție) pe baza conținutului punctului de intrare expus utilizând protocolul HTTP . Aceste valori pot fi apoi interogate folosind un limbaj de interogare simplu (PromQL) și pot fi folosite și pentru a genera alerte. Proiectul este scris în Go și este disponibil sub licența Apache 2. Codul sursă este disponibil pe GitHub și este un proiect întreținut de Cloud Native Computing Foundation alături de alte proiecte precum Kubernetes și Envoy.

Prometheus a fost dezvoltat la SoundCloud din 2012, când compania a realizat că soluțiile sale de monitorizare (StatsD și Graphite) nu erau adecvate nevoilor lor. Prin urmare, Prometeu a fost conceput pentru a rezolva aceste probleme: având o bază de date multidimensională, un instrument ușor de utilizat, un mecanism de colectare simplu și scalabil și un limbaj de interogare puternic, totul într-un singur instrument. Codul sursă pentru proiect a fost lansat sub licență gratuită de la început. Această caracteristică a ajutat la adoptarea rapidă, în special de către Boxever și Docker . Deși nu a fost anunțat în mod explicit. Prometeu a fost inspirat de instrumentul de monitorizare Borgmon folosit de Google.

Din 2013, Prometheus a fost utilizat pentru monitorizarea producției la SoundCloud.

În Mai 2016, Prometheus a fost al doilea proiect incubat în cadrul Cloud Native Computing Foundation după Kubernetes . Postare blog de știri a declarat că instrumentul este folosit la mai multe companii, inclusiv Ocean Digital, Ericsson , CoreOS , Weaveworks, Red Hat, și Google .

Versiunea 1 a lui Prometeu a fost lansată în iulie 2016. Versiunea 2 a fost lansată înnoiembrie 2017.

În august 2018, Cloud Native Computing Foundation a anunțat că Prometheus ar putea fi utilizat în producție.

Arhitectură

O instalație tipică Prometeu este alcătuită din mai multe cărămizi:

Datele Prometheus sunt stocate sub formă de valori. Fiecare valoare are un nume și un set de etichete sub forma unei perechi cheie = valoare. Fiecare valoare poate fi selectată pe baza acestor etichete. Aceste etichete includ informații despre originea valorii (agent, adresa serverului), precum și un set de informații specifice aplicației (cod HTTP, metodă de solicitare), punct final etc. Abilitatea de a specifica o listă arbitrară de etichete și interogarea acestora în timp real explică de ce modelul de date al lui Prometeu se numește multidimensional.

Prometheus stochează date local pe disc. Această tehnică face posibilă optimizarea stocării și recuperării rapide. Prometheus poate stoca, de asemenea, valori pe servere la distanță (în special pentru arhivarea pe termen lung).

Colectarea datelor

Prometeu colectează date sub formă de serii temporale. Seriile temporale sunt recuperate activ: serverul Prometheus interogă o listă de surse de date (exportatorii) la o frecvență de sondare specifică. Aceste puncte de colectare servesc drept surse de date pentru Prometeu. Serverul are, de asemenea, mecanisme pentru descoperirea automată a resurselor de monitorizat.

PromQL

Prometheus are propriul limbaj de interogare PromQL (Prometheus Query Language) Această limbă permite utilizatorilor să selecteze și să agregeze valori stocate în baza de date. Este potrivit în special operațiunilor cu o bază de date de serii temporale, oferind numeroase funcționalități specifice manipulării timpului (decalaj de timp, medie, maxim etc.). Prometeu acceptă patru tipuri de valori:

Alerte și monitorizare

Configurarea alertelor este configurată din Prometheus utilizând o condiție bazată pe o expresie în format PromQL, precum și o durată de timp care permite caracterizarea timpului necesar pentru declanșarea unei alerte. Atunci când alertele sunt declanșate, acestea sunt transmise către serviciul de alertă (Alertmanager). Acesta din urmă este responsabil pentru efectuarea unui anumit număr de operațiuni de agregare, dezactivare și expirare a acestor alerte înainte de a le transmite prin diferite mijloace (e-mail, notificare Slack sau SMS).

Tablouri de bord

Prometheus nu este conceput pentru a face feedback pe tabloul de bord, deși are o soluție pentru a face acest lucru. Este o bună practică să folosiți un instrument precum Grafana, chiar dacă această soluție are dezavantajul de a face instalarea sistemului de monitorizare mai complexă.

Interoperabilitate

Prometeu folosește așa-numita supraveghere a cutiei albe. Aplicațiile sunt încurajate să-și expună valorile interne (folosind un exportator), astfel încât Prometeu să le poată colecta în mod regulat. În cazul în care aplicația (sau componenta) nu a putut să o facă direct (baza de date, servere de monitorizare), există mulți exportatori sau agenți gata de utilizare pentru a îndeplini acest rol. Unii exportatori vă permit, de asemenea, să gestionați comunicarea cu anumite instrumente de monitorizare (Graphite, StatsD, SNMP , JMX și CollectD) pentru a simplifica tranziția către Prometeu în timpul migrației.

Prometheus se concentrează pe disponibilitatea platformei și operațiunile de bază. Valorile sunt de obicei stocate timp de câteva săptămâni. Pentru depozitarea pe termen lung, este recomandabil să apelați la soluții de depozitare mai potrivite.

Standardizarea OpenMetrics

Formatul pentru expunerea valorilor exportatorilor Prometheus a fost standardizat sub denumirea OpenMetrics, astfel încât să poată fi reutilizat în altă parte. Unele produse au adoptat acest format, de exemplu suita TICK de InfluxData, InfluxDB, Google Cloud Platform și DataDog.

utilizare

Prometheus a fost folosit pentru prima dată intern la SoundCloud, unde a fost dezvoltat, pentru a le monitoriza sistemele. Fundația Cloud Native Computing are o serie de studii de caz ale altor companii care folosesc Prometheus. De exemplu, găsim compania Digital Ocean, festivalul digital DreamHack și serviciul de mesagerie și migrare a contactelor ShuttleCloud. Separat, Pandora Radio a menționat utilizarea lui Prometeu pentru a-și monitoriza conducta de date.

GitLab oferă un ghid de integrare Prometheus pentru exportul valorilor GitLab către Prometheus. Acest mecanism este activ în mod implicit de la versiunea 9.0

Vezi si

Referințe

  1. „  Versiunea 2.26.0  ” ,31 martie 2021(accesat la 17 aprilie 2021 )
  2. „  Prometeu  ” (accesat la 26 decembrie 2018 ).
  3. Evans, „  Cloud Native Computing Foundation anunță absolvirea Prometeului  ” ,9 august 2018(accesat la 26 decembrie 2018 )
  4. Brian Brazil , Prometheus: Up & Running: Infrastructure and Application Performance Monitoring , O'Reilly Media,9 iulie 2018( ISBN  978-1-4920-3409-4 , citit online ) , p.  3
  5. Volz și Rabenstein, „  Prometheus: Monitoring at SoundCloud  ” , SoundCloud
  6. „  Monitorizați containerele Docker cu Prometeu  ” , 5π Consulting,26 ianuarie 2015
  7. Niall Murphy , Betsy Beyer , Chris Jones și Jennifer Petoff , Site Reliability Engineering: How Google Runs Production Systems , O'Reilly Media,2016( ISBN  978-1491929124 , citit online ) :

    „Chiar dacă Borgmon rămâne intern în Google, ideea de a trata datele din seria temporală ca sursă de date pentru generarea de alerte este acum accesibilă tuturor prin intermediul acelor instrumente open source precum Prometeu ...”

  8. Volz, „  PromCon 2017: Conference Recap  ” , pe YouTube ,4 septembrie 2017 : "M-am alăturat SoundCloud în 2012, venind de la Google ... nu aveam încă niciun instrument de monitorizare care să funcționeze cu acest tip de mediu dinamic. Ne-a lipsit cam modul în care Google și-a monitorizat propriul programator de cluster intern și am fost foarte inspirați de acest lucru și, în cele din urmă, am decis să construim propria noastră soluție open-source. "
  9. „  Cloud Native Computing Foundation acceptă Prometheus ca al doilea proiect găzduit  ” , Cloud Native Computing Foundation ,9 mai 2016(accesat la 26 decembrie 2018 )
  10. „  Prometheus 1.0 Is Here  ” , Cloud Native Computing Foundation ,18 iulie 2016(accesat la 26 decembrie 2018 )
  11. „  Caracteristici noi în Prometheus 2.0.0  ” , Percepție robustă,8 noiembrie 2017(accesat la 26 decembrie 2018 )
  12. (în) „  Prometheus / AlertManager  ” pe GitHub (accesat la 20 septembrie 2020 ) .
  13. „  Model de date  ” , Prometeu (accesat la 26 decembrie 2018 )
  14. "  Integrări - Prometeu  " , prometheus.io
  15. „  Prometheus: Colectează valori, oferă alerte și grafică UI web  ” ,18 martie 2017(accesat la 26 decembrie 2018 )
  16. Dubey, „  AlertManager Integration with Prometheus  ” ,25 martie 2018(accesat la 26 decembrie 2018 )
  17. Ryckbosch, „  Monitorizarea Prometeului: argumente pro și contra  ” ,28 iulie 2017(accesat la 26 decembrie 2018 )
  18. Prometheus, „  Instrumentare - Prometeu  ” , prometheus.io
  19. „  Exportatori  ” , prometheus.io
  20. Prometheus, „  Prometheus - Sistem de monitorizare și bază de date a seriilor de timp  ” , prometheus.io
  21. „  OpenMetrics  ” , GitHub ,13 noiembrie 2018
  22. „  Telegraf din InfluxData  ” ,25 decembrie 2018
  23. „  Anunțarea monitorizării Stackdriver Kubernetes  ”
  24. „  DataDogHQ  ”
  25. Evans, „  Profilul utilizatorului Prometheus: modul în care DigitalOcean folosește Prometheus  ” , Cloud Native Computing Foundation ,28 februarie 2017(accesat la 26 decembrie 2018 )
  26. Evans, „  Profilul utilizatorului Prometheus: Monitorizarea celui mai mare festival digital din lume - DreamHack  ” , Cloud Native Computing Foundation ,24 august 2016(accesat la 26 decembrie 2018 )
  27. Evans, „  Profilul utilizatorului Prometheus: ShuttleCloud explică de ce Prometheus este bun pentru micul dvs. startup  ” , Cloud Native Computing Foundation ,17 mai 2017(accesat la 26 decembrie 2018 )
  28. Haidrey, „  Apache Airflow at Pandora  ” , Inginerie la Pandora,15 martie 2018(accesat la 26 decembrie 2018 )
  29. „  Valori GitLab Prometheus  ” (accesat la 26 decembrie 2018 )
  30. „  GitLab 9.0 lansat cu Subgrupuri și Deploy Boards  ” , GitLab,22 martie 2017

Lecturi suplimentare