Prometheus (programvara) - Prometheus (software)
| Initial release | 24 november 2012 |
|---|---|
| Stabil frisättning | v2.28.1 / 1 juli 2021
|
| Förvar | github |
| Skrivet i | Gå |
| Operativ system | Plattformsoberoende |
| Typ | Tidsseriedatabas |
| Licens | Apache -licens 2.0 |
| Hemsida | prometheus |
Prometheus är en gratis programvara som används för händelseövervakning och varning . Den registrerar realtidsmätvärden i en tidsseriedatabas (som möjliggör hög dimensionalitet ) byggd med en HTTP- dragmodell , 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 examinerat projekt från Cloud Native Computing Foundation , tillsammans med Kubernetes och Envoy.
Historia
Prometheus utvecklades på SoundCloud från 2012, då företaget upptäckte att deras befintliga mått och övervakningslösningar (med hjälp av StatsD och Graphite ) inte var tillräckliga för deras behov. Specifikt identifierade de behov som Prometheus byggdes för att möta, inklusive: en flerdimensionell datamodell, enkelhet i drift, 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 också användas av Boxever- och Docker- användare, trots att det inte uttryckligen meddelades. Prometheus inspirerades av övervakningsverktyget Borgmon som används 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 består av flera verktyg:
- Flera exportörer som vanligtvis körs på den övervakade värden för att exportera lokala mätvärden.
- Prometheus 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 instrumentpaneler.
- PromQL är frågespråket som används för att skapa instrumentpaneler och varningar.
Datalagringsformat
Prometheus -data lagras i form av mätvärden, där varje mätvärde har ett namn som används för att referera till och fråga efter det. Varje mått kan borras ned med ett godtyckligt antal nyckel = värdepar (etiketter). Etiketter kan innehålla information om datakällan (vilken server datan kommer från) och annan applikationsspecifik uppdelningsinformation, till exempel HTTP-statuskoden (för mätvärden relaterade till HTTP-svar), frågemetod (GET kontra POST), slutpunkt, etc. Möjligheten att ange en godtycklig lista med etiketter och att fråga utifrån dessa i realtid är varför Prometheus datamodell kallas multidimensionell.
Prometheus lagrar data lokalt på disken, vilket hjälper till för snabb datalagring och snabb sökning. 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 med datakällor (ibland kallade exportörer) vid en specifik avfrågningsfrekvens. Var och en av datakällorna tjänar de aktuella värdena för mätvärdena för den datakällan vid den slutpunkt som frågas av Prometheus. Prometheus -servern samlar sedan in data över datakällorna. Prometheus har ett antal mekanismer för att automatiskt upptäcka resurser som den bör använda som datakällor.
PromQL
Prometheus tillhandahåller ett eget frågespråk PromQL (Prometheus Query Language) som låter användare välja och sammanställa data. PromQL är specifikt anpassad för att fungera i överensstämmelse med en Time-Series Database och ger därför tidsrelaterade sökfunktioner. Exempel inkluderar funktionen rate (), snabbvektorn och intervallvektorn som kan tillhandahålla många sampel för varje tidsserie som frågas. Prometheus har fyra klart 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 anges i Prometheus som anger ett villkor som måste upprätthållas under en viss varaktighet för att en varning ska kunna utlösas. När varningar utlöses vidarebefordras de till Alertmanager -tjänsten. Alertmanager kan inkludera logik för att tysta varningar och även vidarebefordra dem till e -post, Slack eller aviseringstjänster som PagerDuty . Vissa andra meddelandesystem som Microsoft Teams kan konfigureras med Alertmanager Webhook Receiver som mekanism för externa integrationer. även Prometheus varningar kan användas för att ta emot varningar direkt på Android-enheter även utan krav på någon mål konfiguration i Alert Manager.
Instrumentpaneler
Prometheus är inte avsedd som en instrumentpanellösning. Även om det kan användas för att rita specifika frågor, är det inte en fullfjädrad instrumentpanellösning och måste anslutas till Grafana för att skapa instrumentpaneler. detta har nämnts som en nackdel på grund av den extra installationskomplexiteten.
Interoperabilitet
Prometheus föredrar övervakning av vitlådor. Ansökningar uppmuntras att publicera (exportera) interna mätvärden som ska samlas in regelbundet av Prometheus. Vissa exportörer och agenter för olika applikationer är tillgängliga för att tillhandahålla mätvärden. 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å tillgängligheten av plattformen och grundläggande funktioner. Mätvärdena lagras vanligtvis i några veckor. För långtidslagring kan mätvärdena strömmas till fjärrlagringslösningar.
Standardisering till OpenMetrics
Det finns ett försök att marknadsföra Prometheus -exponeringsformat till en standard som kallas OpenMetrics. Vissa produkter har 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 övervakning av deras system. Cloud Native Computing Foundation har ett antal fallstudier av andra företag som använder Prometheus. Dessa inkluderar digital värdtjänst DigitalOcean , digital festival DreamHack och e -post- och kontaktmigrationstjänsten ShuttleCloud. Separat har Pandora Radio nämnt att man använder Prometheus för att övervaka sin datapipeline.
GitLab tillhandahåller en Prometheus -integrationsguide för att exportera GitLab -mätvärden till Prometheus och den är aktiverad som standard sedan version 9.0
Se även
- Kolla MK
- Ganglia (programvara)
- Zabbix
- Sensu Core
- Jämförelse av nätverksövervakningssystem
- Lista över systemhanteringssystem
Referenser
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). KUBERNETER 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 PUBLISHING. ISBN 978-1788830607. OCLC 1031909876 .
- 1976-, Burns, Brendan (2018-02-20). Designa distribuerade system: mönster och paradigm för skalbara, pålitliga tjänster (första red.). Sebastopol, CA. ISBN 9781491983614. OCLC 1023861580 .CS1 maint: numeriska namn: författarlista ( länk )
- 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.