Prometheus (software) - Prometheus (software)

Prometheus
Software Prometheus logo.svg
První vydání24. listopadu 2012; před 8 lety (2012-11-24)
Stabilní uvolnění
v2.22.0[1] / 15. října 2020; Před 44 dny (2020-10-15)
Úložištěhttps://github.com/prometheus/prometheus
NapsánoJít
Operační systémCross-platform
TypDatabáze časových řad
LicenceLicence Apache 2.0
webová stránkaprometheus.io

Prometheus je svobodný software aplikace použitá pro monitorování událostí a výstraha.[2] Zaznamenává metriky v reálném čase v a databáze časových řad (umožňující vysoké rozměrnost ) postavený pomocí a HTTP tažný model s flexibilními dotazy a upozorněním v reálném čase.[3][4] Projekt je napsán v Jít a licencován na základě licence Apache 2 s zdrojový kód k dispozici na GitHub,[5] a je absolvovaným projektem Cloud Native Computing Foundation, spolu s Kubernetes a vyslanec.[6]

Dějiny

Prometheus byl vyvinut v SoundCloud počínaje rokem 2012,[7] když společnost zjistila, že jejich stávající metriky a monitorovací řešení (pomocí StatsD a Grafit ) nebyly pro jejich potřeby dostatečné. Konkrétně identifikovali potřeby, které společnost Prometheus vytvořila, aby splňovaly, včetně: vícerozměrného datového modelu, provozní jednoduchosti, škálovatelného sběru dat a výkonného dotazovacího jazyka, vše v jediném nástroji.[8] Projekt byl od začátku open-source a začal ho používat Boxever a Přístavní dělník i uživatelé, i když nejsou výslovně ohlášeni.[8][9] Prometheus byl inspirován monitorovacím nástrojem Borgmon používaným ve společnosti Google.[10][11]

Do roku 2013 byl Prometheus zaveden pro monitorování výroby na SoundCloud.[8] Oficiální veřejné oznámení bylo učiněno v lednu 2015.[8]

V květnu 2016 Cloud Native Computing Foundation přijal Prometheus jako svůj druhý inkubovaný projekt poté Kubernetes. V příspěvku na blogu, který to oznamoval, bylo uvedeno, že se tento nástroj používá v mnoha společnostech včetně Digitální oceán, Ericsson, CoreOS, Weaveworks, červená čepice, a Google.[12]

Prometheus 1.0 byl vydán v červenci 2016.[13] Následující verze byly vydány v letech 2016 a 2017, což vedlo k Prometheus 2.0 v listopadu 2017.[14][15][16][17][18][19][20][21][22]

V srpnu 2018 oznámila organizace Cloud Native Computing Foundation, že projekt Prometheus promoval.[6]

Architektura

Typická monitorovací platforma s Prometheusem se skládá z několika nástrojů:[Citace je zapotřebí ]

  • Násobek vývozci které obvykle běží na monitorovaném hostiteli a exportují místní metriky.
  • Prometheus centralizuje a ukládá metriky.
  • Alertmanager[23] spouštět upozornění na základě těchto metrik.
  • Grafana vyrábět dashboardy.
  • PromQL je dotazovací jazyk používaný k vytváření řídicích panelů a výstrah.

Formát ukládání dat

Data Prometheus jsou uložena ve formě metrik, přičemž každá metrika má název, který se používá pro odkazování a dotazování. Každá metrika může být podrobně popsána libovolným počtem párů klíč = hodnota (štítky). Štítky mohou obsahovat informace o zdroji dat (ze kterého serveru data pocházejí) a další informace o rozdělení specifické pro konkrétní aplikaci, jako je stavový kód HTTP (pro metriky související s odpověďmi HTTP), metoda dotazu (GET versus POST), koncový bod atd. Schopnost specifikovat libovolný seznam štítků a dotazovat se na nich v reálném čase je důvod, proč se datový model společnosti Prometheus nazývá vícerozměrný.[24][8][9]

Prometheus ukládá data lokálně na disk, což pomáhá k rychlému ukládání dat a rychlému dotazování.[8] Existuje možnost ukládat metriky do vzdáleného úložiště. [25]

Sběr dat

Prometheus shromažďuje údaje ve formě časové řady. Časové řady jsou vytvářeny prostřednictvím modelu vyžádané aktualizace: server Prometheus dotazuje seznam zdrojů dat (někdy nazývaných exportéry) při konkrétní frekvenci dotazování. Každý ze zdrojů dat poskytuje aktuální hodnoty metrik pro tento zdroj dat v koncovém bodě dotazovaném společností Prometheus. Server Prometheus poté agreguje data napříč zdroji dat.[8] Prometheus má řadu mechanismů pro automatické objevování zdrojů, které by měl používat jako zdroje dat.[26]

PromQL

Prometheus poskytuje svůj vlastní dotazovací jazyk PromQL (Prometheus Query Language), který umožňuje uživatelům vybírat a agregovat data. PromQL je speciálně upraven pro práci v konvencích s databází časových řad, a proto poskytuje funkce dotazů souvisejících s časem. Mezi příklady patří funkce rate (), okamžitý vektor a vektor rozsahu, které mohou poskytnout mnoho vzorků pro každou dotazovanou časovou řadu.[27] Prometheus má čtyři jasně definované metrické typy, kolem nichž se otáčejí komponenty PromQL. Čtyři typy jsou

  • Měřidlo
  • Čelit
  • Histogram
  • souhrn

Výstrahy a monitorování

Konfiguraci výstrah lze určit v programu Prometheus, který určuje podmínku, kterou je třeba udržovat po určitou dobu, aby se výstraha spustila. Když se výstrahy aktivují, jsou předány službě Alertmanager. Alertmanager může zahrnovat logiku pro umlčení výstrah a také pro jejich předání e-mailem, Slack nebo oznamovacím službám, jako je PagerDuty.[28]. Některé další systémy pro zasílání zpráv mají rádi Microsoft Teams[29] lze konfigurovat pomocí Přijímač Alertmanager Webhook jako mechanismus pro externí integrace.

Řídicí panely

Prometheus není zamýšlen jako řešení palubní desky. I když je možné jej použít ke grafu konkrétních dotazů, nejedná se o plnohodnotné řešení dashboardu a je třeba ho připojit Grafana generovat dashboardy; toto bylo uvedeno jako nevýhoda kvůli další složitosti nastavení.[30]

Interoperabilita

Prometheus upřednostňuje monitorování bílé skříňky. Doporučujeme aplikacím, aby publikovaly (exportovaly) interní metriky, které budou pravidelně shromažďovány společností Prometheus.[31] Někteří vývozci a agenti pro různé aplikace jsou k dispozici pro poskytování metrik.[32] Prometheus podporuje některé protokoly monitorování a správy umožňující interoperabilitu přechodu: Grafit, StatistikyD, SNMP, JMX a CollectD.

Prometheus se zaměřuje na dostupnost platformy a základní operace.[33] Metriky se obvykle uchovávají několik týdnů. U dlouhodobého úložiště lze metriky streamovat do řešení vzdáleného úložiště. [34]

Standardizace do OpenMetrics

Snahou je propagovat formát expozice Prometheus do standardu známého jako OpenMetrics.[35] Některé produkty přijaly formát: sada TICK sady InfluxData,[36] PřílivDB, Google Cloud Platform,[37] a DataDog.[38]

Používání

Prometheus byl poprvé použit interně ve společnosti SoundCloud, kde byl vyvinut, pro monitorování jejich systémů.[8] Cloud Native Computing Foundation má řadu případových studií jiných společností využívajících Prometheus. Patří mezi ně digitální hostingové služby Digitální oceán,[39] digitální festival DreamHack,[40] a služba migrace e-mailů a kontaktů ShuttleCloud.[41] Odděleně, Rádio Pandora zmínil použití Prometheus k monitorování svého datového kanálu.[42]

GitLab poskytuje průvodce integrací Prometheus pro export metrik GitLab do Prometheus[43] a je standardně aktivován od verze 9.0[44]

Viz také

Reference

  1. ^ Vydání na Githubu
  2. ^ "Přehled". prometheus.io.
  3. ^ James Turnbull (12. června 2018). Monitorování pomocí Prometheus. Turnbull Press. ISBN  978-0-9888202-8-9.
  4. ^ „Prometheus: Od metrik k přehledu. Posilujte své metriky a výstrahy pomocí předního řešení pro monitorování open-source“. Citováno 26. prosince 2018.
  5. ^ "Prometheus". Citováno 26. prosince 2018.
  6. ^ A b Evans, Kristen (9. srpna 2018). „Cloud Native Computing Foundation oznamuje prometheusovou promoci“. Citováno 26. prosince 2018.
  7. ^ Brian Brazil (9. července 2018). Prometheus: Zprovoznění: sledování infrastruktury a výkonu aplikací. O'Reilly Media. str. 3. ISBN  978-1-4920-3409-4.
  8. ^ A b C d E F G h Volz, Julius; Rabenstein, Björn. „Prometheus: Monitoring at SoundCloud“. SoundCloud.
  9. ^ A b „Monitorujte Docker kontejnery s Prometheem“. 5π Poradenství. 26. ledna 2015.
  10. ^ Murphy, Niall; Beyer, Betsy; Jones, Chris; Petoff, Jennifer (2016). Engineering Reliability Engineering: Jak Google provozuje produkční systémy. O'Reilly Media. ISBN  978-1491929124. I když Borgmon zůstává interní ve společnosti Google, myšlenka zacházet s daty časových řad jako se zdrojem dat pro generování výstrah je nyní přístupná všem prostřednictvím těchto nástrojů otevřeného zdroje, jako je Prometheus ...
  11. ^ Volz, Julius (4. září 2017). „PromCon 2017: Rekapitulace konference“ - přes YouTube. Do SoundCloudu jsem se připojil v roce 2012 od Googlu ... ještě jsme neměli žádné monitorovací nástroje, které fungují s tímto druhem dynamického prostředí. Chybělo nám, jak Google sledoval svůj vlastní interní plánovač klastrů, a tím jsme se velmi inspirovali a nakonec jsme se rozhodli vybudovat vlastní open-source řešení.
  12. ^ „Cloud Native Computing Foundation přijímá Prometheus jako druhý hostovaný projekt“. Cloud Native Computing Foundation. 9. května 2016. Citováno 26. prosince 2018.
  13. ^ „Prometheus 1.0 je tady“. Cloud Native Computing Foundation. 18. července 2016. Citováno 26. prosince 2018.
  14. ^ „Nové funkce v Prometheus 1.1.0“. Robustní vnímání. 5. září 2016. Citováno 26. prosince 2018.
  15. ^ „Nové funkce v programu Prometheus 1.2.0“. Robustní vnímání. 10. října 2016. Citováno 26. prosince 2018.
  16. ^ „Nové funkce v programu Prometheus 1.3.0“. Robustní vnímání. 7. listopadu 2016. Citováno 26. prosince 2018.
  17. ^ „Nové funkce v programu Prometheus 1.4.0“. Robustní vnímání. 28. listopadu 2016. Citováno 26. prosince 2018.
  18. ^ „Nové funkce v programu Prometheus 1.5.0“. Robustní vnímání. 10. října 2016. Citováno 26. prosince 2018.
  19. ^ „Nové funkce v programu Prometheus 1.6.0“. Robustní vnímání. 17. dubna 2017. Citováno 26. prosince 2018.
  20. ^ „Nové funkce v programu Prometheus 1.7.0“. Robustní vnímání. 9. října 2017. Citováno 26. prosince 2018.
  21. ^ „Nové funkce v programu Prometheus 1.8.0“. Robustní vnímání. 9. října 2017. Citováno 26. prosince 2018.
  22. ^ „Nové funkce v programu Prometheus 2.0.0“. Robustní vnímání. 8. listopadu 2017. Citováno 26. prosince 2018.
  23. ^ https://github.com/prometheus/alertmanager
  24. ^ „Datový model“. Prometheus. Citováno 26. prosince 2018.
  25. ^ „Integrace - Prometheus“. prometheus.io.
  26. ^ „Prometheus: Sbírá metriky, poskytuje výstrahy a grafy webového uživatelského rozhraní“. 18. března 2017. Citováno 26. prosince 2018.
  27. ^ „Dotaz Prometheus“. Citováno 4. listopadu 2019.
  28. ^ Dubey, Abhishek (25. března 2018). „AlertManager Integration with Prometheus“. Citováno 26. prosince 2018.
  29. ^ Danuka, Praneeth (8. března 2020). „Upozornění na nativní cloudové aplikace s Prometheusem“. Citováno 18. října 2020.
  30. ^ Ryckbosch, Frederick (28. července 2017). „Monitorování Prometheus: klady a zápory“. Citováno 26. prosince 2018.
  31. ^ Prometheus. „Přístrojové vybavení - Prometheus“. prometheus.io.
  32. ^ „Vývozci“. prometheus.io.
  33. ^ Prometheus. „Prometheus - monitorovací systém a databáze časových řad“. prometheus.io.
  34. ^ „Integrace - Prometheus“. prometheus.io.
  35. ^ „OpenMetrics“. GitHub. 2018-11-13.
  36. ^ „Telegraf od InfluxData“. 2018-12-25.
  37. ^ „Oznámení monitorování zásobníku Kubernetes Stackdriver“.
  38. ^ „DataDogHQ“.
  39. ^ Evans, Kristen (28. února 2017). „Uživatelský profil Prometheus: Jak DigitalOcean používá Prometheus“. Cloud Native Computing Foundation. Citováno 26. prosince 2018.
  40. ^ Evans, Kristen (24. srpna 2016). „Uživatelský profil Prometheus: Monitorování největšího digitálního festivalu na světě - DreamHack“. Cloud Native Computing Foundation. Citováno 26. prosince 2018.
  41. ^ Evans, Kirsten (17. května 2017). „Profil uživatele Prometheus: ShuttleCloud vysvětluje, proč je Prometheus vhodný pro váš malý start“. Cloud Native Computing Foundation. Citováno 26. prosince 2018.
  42. ^ Haidrey, Ace (15. března 2018). „Apache Airflow at Pandora“. Engineering ve společnosti Pandora. Citováno 26. prosince 2018.
  43. ^ „Metriky GitLab Prometheus“. Citováno 26. prosince 2018.
  44. ^ „GitLab 9.0 vydán s podskupinami a rozmístěním desek“. GitLab. 2017-03-22.

Další čtení

  • Russ, McKendrick (2015-12-15). Monitorování Dockeru: pomocí tohoto exkluzivního průvodce můžete monitorovat své kontejnery Dockeru a jejich aplikace pomocí různých nativních nástrojů a nástrojů třetích stran!. Birmingham, Velká Británie. ISBN  9781785885501. OCLC  933610431.
  • JOSEPH., HECK (2018). KUBERNETY PRO VÝVOJÁŘE používají kubernetes k vývoji, testování a nasazení vašich aplikací pomocí kontejnerů; kubernetes k vývoji. [S.l.]: PACKT PUBLISHING. ISBN  978-1788830607. OCLC  1031909876.
  • 1976-, Burns, Brendan (2018-02-20). Návrh distribuovaných systémů: vzory a paradigmata pro škálovatelné a spolehlivé služby (První vydání). Sebastopol, CA. ISBN  9781491983614. OCLC  1023861580.CS1 maint: číselné názvy: seznam autorů (odkaz)
  • Martin., Helmich (2017). Cloudové nativní programování s Golangem Vyvíjejte vysoce výkonné webové aplikace založené na mikroslužbách pro cloud pomocí Go. Andrawos, Mina., Snoeck, Jelmer. Birmingham: Packt Publishing. ISBN  9781787127968. OCLC  1020029257.
  • Alok, Shrivastwa (2018-02-23). Hybridní cloud pro architekty: budujte robustní hybridní cloudová řešení pomocí AWS a OpenStack. Birmingham, Velká Británie. ISBN  9781788627986. OCLC  1028641698.
  • Kaewkasi, Chanwit (2016). Nativní shlukování Dockerů s rojem. ISBN  978-1786469755.