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.
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).
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.
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:
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).
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ă.
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.
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.
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
„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 ...”