Prometheus (mjukvara)
Initial release | 24 november 2012 |
---|---|
Stabil frisättning | v2.39.1 / 7 oktober 2022
|
Förvar | |
Skrivet i | Gå |
Operativ system | Cross-platform |
Typ | Tidsseriedatabas |
Licens | Apache-licens 2.0 |
Hemsida |
Prometheus är ett gratis program som används för händelseövervakning och varning . Den registrerar mätvärden i realtid i en tidsseriedatabas (som möjliggör hög dimensionalitet ) byggd med hjälp av en HTTP pull-modell , med flexibla frågor och realtidsvarning. Projektet är skrivet i Go och licensierat under Apache 2-licensen, med källkod tillgänglig på GitHub , och är ett examensprojekt av Cloud Native Computing Foundation, tillsammans med Kubernetes och Envoy .
Historia
Prometheus utvecklades på SoundCloud med start 2012, när företaget upptäckte att dess befintliga mätvärden och övervakningslösningar (med StatsD och Graphite ) inte räckte till för deras behov. Specifikt identifierade de behov som Prometheus byggdes för att möta, inklusive: en multidimensionell datamodell, operativ enkelhet, skalbar datainsamling och ett kraftfullt frågespråk, allt i ett enda verktyg. Projektet var öppen källkod från början och började användas av Boxever- och Docker -användare också, trots att det inte uttryckligen tillkännagavs. Prometheus inspirerades av övervakningsverktyget Borgmon som användes på Google.
År 2013 introducerades Prometheus för produktionsövervakning på SoundCloud. Det officiella offentliga tillkännagivandet gjordes i januari 2015.
I maj 2016 accepterade Cloud Native Computing Foundation Prometheus som sitt andra inkuberade projekt, efter Kubernetes . I blogginlägget som tillkännagav detta stod det att verktyget användes på många företag inklusive DigitalOcean , Ericsson , CoreOS , Weaveworks, Red Hat och Google .
Prometheus 1.0 släpptes i juli 2016. Efterföljande versioner släpptes under 2016 och 2017, vilket ledde till Prometheus 2.0 i november 2017.
I augusti 2018 meddelade Cloud Native Computing Foundation att Prometheus-projektet hade tagit examen.
Arkitektur
En typisk övervakningsplattform med Prometheus är sammansatt av flera verktyg: [ citat behövs ]
- Flera exportörer kör vanligtvis på den övervakade värden för att exportera lokala mätvärden.
- Prometheus för att centralisera och lagra mätvärdena.
- Alertmanager för att utlösa varningar baserat på dessa mätvärden.
- Grafana för att producera instrumentbrädor.
- PromQL är frågespråket som används för att skapa instrumentpaneler och varningar.
Datalagringsformat
Prometheus-data lagras i form av mått, där varje mått har ett namn som används för att referera till och fråga efter det. Varje måttenhet kan drillas ner med ett godtyckligt antal nyckel=värdepar (etiketter). Etiketter kan inkludera information om datakällan (vilken server data kommer från) och annan applikationsspecifik nedbrytningsinformation som HTTP-statuskoden (för mätvärden relaterade till HTTP-svar), frågemetod (GET kontra POST), slutpunkt, etc. Möjligheten att specificera en godtycklig lista med etiketter och att fråga utifrån dessa i realtid är anledningen till att Prometheus datamodell kallas multidimensionell.
Prometheus lagrar data lokalt på disk, vilket hjälper till för snabb datalagring och snabb förfrågning. Det finns möjlighet att lagra mätvärden i fjärrlagring.
Datainsamling
Prometheus samlar in data i form av tidsserier . Tidsserierna är byggda genom en pull-modell: Prometheus-servern frågar efter en lista över datakällor (ibland kallade exportörer) vid en specifik pollningsfrekvens. Var och en av datakällorna betjänar de aktuella värdena för mätvärdena för den datakällan vid den slutpunkt som efterfrågas av Prometheus. Prometheus-servern aggregerar sedan data över datakällorna. Prometheus har ett antal mekanismer för att automatiskt upptäcka resurser som bör användas som datakällor.
PromQL
Prometheus tillhandahåller sitt eget frågespråk PromQL (Prometheus Query Language) som låter användare välja och aggregera data. PromQL är specifikt anpassad för att fungera i enlighet med en tidsseriedatabas och tillhandahåller därför tidsrelaterade frågefunktioner. Exempel inkluderar funktionen rate(), den omedelbara vektorn och intervallvektorn som kan ge många sampel för varje frågad tidsserie. Prometheus har fyra tydligt definierade metriska typer som PromQL-komponenterna kretsar kring. De fyra typerna är
- Mätare
- Disken
- Histogram
- Sammanfattning
Varningar och övervakning
Konfiguration för varningar kan specificeras i Prometheus som anger ett tillstånd som måste upprätthållas under en specifik varaktighet för att en varning ska utlösas. När varningar utlöses vidarebefordras de till Alertmanager-tjänsten. Alertmanager kan inkludera logik för att tysta varningar och även för att vidarebefordra dem till e-post, Slack eller aviseringstjänster som PagerDuty . Vissa andra meddelandesystem som Microsoft Teams kan konfigureras med Alertmanager Webhook Receiver som en mekanism för externa integrationer. även Prometheus Alerts kan användas för att ta emot varningar direkt på Android-enheter även utan krav på någon målkonfiguration i Alert Manager.
Instrumentbrädor
Prometheus är inte tänkt som en dashboardlösning. Även om det kan användas för att rita specifika frågor, är det inte en fullfjädrad instrumentpanelslösning och måste kopplas till Grafana för att generera instrumentpaneler; detta har nämnts som en nackdel på grund av den extra komplexiteten i installationen.
Interoperabilitet
Prometheus föredrar white-box-övervakning. Ansökningar uppmuntras att publicera (exportera) interna mätvärden som ska samlas in med jämna mellanrum av Prometheus. Vissa exportörer och agenter för olika applikationer är tillgängliga för att tillhandahålla statistik. Prometheus stöder vissa övervaknings- och administrationsprotokoll för att möjliggöra interoperabilitet för övergång: Graphite , StatsD, SNMP , JMX och CollectD.
Prometheus fokuserar på plattformens tillgänglighet och grundläggande verksamhet. Mätvärdena lagras vanligtvis i några veckor. För långtidslagring kan mätvärdena streamas till fjärrlagringslösningar.
Standardisering till OpenMetrics
Det finns ett försök att marknadsföra Prometheus utställningsformat till en standard som kallas OpenMetrics. Vissa produkter använde formatet: InfluxDatas TICK-svit, InfluxDB , Google Cloud Platform och DataDog.
Användande
Prometheus användes först internt på SoundCloud, där det utvecklades, för att övervaka deras system. Cloud Native Computing Foundation har ett antal fallstudier av andra företag som använder Prometheus. Dessa inkluderar den digitala värdtjänsten DigitalOcean , den digitala festivalen DreamHack och e-post- och kontaktmigreringstjänsten ShuttleCloud. Separat Pandora Radio nämnt att använda Prometheus för att övervaka sin datapipeline.
GitLab tillhandahåller en Prometheus-integreringsguide för att exportera GitLab-statistik till Prometheus och den är aktiverad som standard sedan version 9.0
Konferenser
En mängd olika konferenser och bifogade konferenser som fokuserat på Prometheus och dess ekosystem har hållits
- PromCon 2016, 25 och 26 augusti, Berlin , 80 deltagare (slutsålt)
- PrometheusDay 2016, Seattle
- PromCon 2017, 17 och 18 augusti, München , 220 deltagare (slutsålt)
- PromCon 2018, 9 och 10 augusti, München, 220 deltagare (slutsålt)
- PromCon 2019, 7 och 8 november, München, 220 deltagare (slutsålt)
- PromCon 2020, 14–16 juli, online
- PromCon 2021, 3 maj, online
- PromCon North America 2021, 11 oktober, Los Angeles
- PrometheusDay Europe 2022, 17 maj, Valencia , ~400 deltagare
- PrometheusDay North America 2022, 25 oktober, Detroit
- PromCon 2022, 8 och 9 november, München
Se även
- Kolla MK
- Ganglia (mjukvara)
- Zabbix
- Jämförelse av nätverksövervakningssystem
- Lista över systemledningssystem
Vidare läsning
- Russ, McKendrick (2015-12-15). Övervakning av Docker: övervaka dina Docker-behållare och deras appar med hjälp av olika inbyggda och tredjepartsverktyg med hjälp av denna exklusiva guide! . Birmingham, Storbritannien. ISBN 9781785885501 . OCLC 933610431 .
- JOSEPH., HECK (2018). KUBERNETES FÖR UTVECKLARE använder kubernetes för att utveckla, testa och distribuera dina applikationer med hjälp av behållare; använd kubernetes för att utveckla . [Sl]: PACKT PUBLICERING. ISBN 978-1788830607 . OCLC 1031909876 .
- Burns, Brendan (2018-02-20). Designa distribuerade system: mönster och paradigm för skalbara, pålitliga tjänster ( Första upplagan). Sebastopol, CA. ISBN 9781491983614 . OCLC 1023861580 .
- Martin., Helmich (2017). Cloud Native-programmering med Golang Utveckla mikrotjänstbaserade högpresterande webbappar för molnet med Go . Andrawos, Mina., Snoeck, Jelmer. Birmingham: Packt Publishing. ISBN 9781787127968 . OCLC 1020029257 .
- Alok, Shrivastwa (2018-02-23). Hybridmoln för arkitekter: bygg robusta hybridmolnlösningar med AWS och OpenStack . Birmingham, Storbritannien. ISBN 9781788627986 . OCLC 1028641698 .
- Kaewkasi, Chanwit (2016). Native Docker Clustering with Swarm . ISBN 978-1786469755 .