请输入您要查询的百科知识:

 

词条 Prometheus (software)
释义

  1. History

  2. Architecture

      Data storage format    Data collection    Alerts and monitoring   Dashboards    Interoperability    Standardization into OpenMetrics  

  3. Usage

  4. See also

  5. References

  6. Further reading

{{Infobox software
| name = Prometheus
| logo = Prometheus_software logo.svg
| released = {{Start date and age|2012|11|24|df=yes}}
| latest release version = v2.8.0
| latest release date = {{release date and age|2019|03|12|df=yes}}
| programming language = Go
| operating system = Cross-platform
| genre = Time series database
| license = Apache 2
| website = {{URL|https://prometheus.io/|prometheus.io}}
| repo = https://github.com/prometheus/prometheus
}}Prometheus is an open-source software project written in Go that is used to record real-time metrics in a time series database (allowing for high dimensionality) built using a HTTP pull model, with flexible queries and real-time alerting.[1][2] The project is licensed under the Apache 2 License, with source code available on GitHub,[3] and is a graduated project of the Cloud Native Computing Foundation, along with Kubernetes and Envoy.[4]

History

Prometheus was developed at SoundCloud starting in 2012[5], when the company discovered that their existing metrics and monitoring solutions (using StatsD and Graphite) were not sufficient for their needs. Specifically, they identified needs that Prometheus was built to meet including: a multi-dimensional data model, operational simplicity, scalable data collection, and a powerful query language, all in a single tool.[6] The project was open-source from the beginning, and began to be used by Boxever and Docker users as well, despite not being explicitly announced.[6][7] Prometheus was inspired by the monitoring tool Borgmon used at Google.[8][9]

By 2013, Prometheus was introduced for production monitoring at SoundCloud.[6] The official public announcement was made in January 2015.[6]

In May 2016, the Cloud Native Computing Foundation accepted Prometheus as its second incubated project, after Kubernetes. The blog post announcing this stated that the tool was in use at many companies including Digital Ocean, Ericsson, CoreOS, Weaveworks, Red Hat, and Google.[10]

Prometheus 1.0 was released in July 2016.[11] Subsequent versions were released through 2016 and 2017, leading to Prometheus 2.0 in November 2017.[12][13][14][15][16][17][18][19][20]

In August 2018, the Cloud Native Computing Foundation announced that the Prometheus project had graduated.[4]

Architecture

A typical monitoring platform with Prometheus is composed of multiple tools:{{cn|date=January 2019}}

  • Multiple exporters that typically run on the monitored host to export local metrics.
  • Prometheus to centralize and store the metrics.
  • Alertmanager to trigger alerts based on those metrics.
  • Grafana to produce dashboards.
  • PromQL is the query language used to create dashboard and alerts.

Data storage format

Prometheus data is stored in the form of metrics, with each metric having a name that is used for referencing and querying it. Each metric can be drilled down by an arbitrary number of labels. Labels can include information on the data source (which server the data is coming from) and other application-specific breakdown information such as the HTTP status code (for metrics related to HTTP responses), query method (GET versus POST), endpoint, etc. The ability to specify an arbitrary list of labels and to query based on these in real time is why Prometheus' data model is called multi-dimensional.[21][6][7]

Prometheus stores data locally on disk, which helps for fast data storage and fast querying.[6]

Data collection

Prometheus collects data in the form of time series. The time series are built through a pull model: the Prometheus server queries a list of data sources (sometimes called exporters) at a specific polling frequency. Each of the data sources serves the current values of the metrics for that data source at the endpoint queried by Prometheus. The Prometheus server then aggregates data across the data sources.[6] Prometheus has a number of mechanisms to automatically discover resources that it should be using as data sources.[22]

Alerts and monitoring

Configuration for alerts can be specified in Prometheus that specifies a condition that needs to be maintained for a specific duration in order for an alert to trigger. When alerts trigger, they are forwarded to Alertmanager, another Prometheus service. Alertmanager can include logic to silence alerts and also to forward them to email, Slack, or notification services such as PagerDuty.[23]

Dashboards

Prometheus is not intended as a dashboarding solution. Although it can be used to graph specific queries, it is not a full-fledged dashboarding solution and needs to be hooked up with Grafana to generate dashboards; this has been cited as a disadvantage due to the additional setup complexity.[24]

Interoperability

Prometheus favors white-box monitoring. Applications are encouraged to publish (export) internal metrics to be collected periodically by Prometheus.[25] Some exporters and agents for various applications are available to provide metrics.[26] Prometheus supports some monitoring and administration protocols to allow interoperability for transitioning: Graphite, StatsD, SNMP, JMX, and CollectD.

Prometheus focuses on the availability of the platform and basic operations.[27] The metrics are typically stored for few weeks. For long term storage, the metrics can be migrated to a third-party databases like Cortex, CrateDB, InfluxDB, PostgreSQL/TimescaleDB, etc.[28]

Standardization into OpenMetrics

There is an effort to promote Prometheus exposition format into a standard known as OpenMetrics.[29] Some products adopted the format: InfluxData's TICK suite,[30] InfluxDB, Google Cloud Platform,[31] and DataDog.[32]

Usage

Prometheus was first used in-house at SoundCloud, where it was developed, for monitoring their systems.[6] The Cloud Native Computing Foundation has a number of case studies of other companies using Prometheus. These include digital hosting service Digital Ocean,[33] digital festival DreamHack,[34] and email and contact migration service ShuttleCloud.[35] Separately, Pandora Radio has mentioned using Prometheus to monitor its data pipeline.[36]

GitLab provides a Prometheus integration guide to export GitLab metrics to Prometheus.[37]

See also

{{Portal|Free and open-source software}}
  • Ganglia (software)
  • Zabbix
  • Sensu Core
  • Comparison of network monitoring systems
  • List of systems management systems

References

1. ^{{cite book|author=James Turnbull|title=Monitoring with Prometheus|url=https://books.google.com/books?id=EtlfDwAAQBAJ|date=12 June 2018|publisher=Turnbull Press|isbn=978-0-9888202-8-9}}
2. ^{{cite web|url = https://prometheus.io/|title = Prometheus: From metrics to insight. Power your metrics and alerting with a leading open-source monitoring solution.|accessdate = December 26, 2018}}
3. ^{{cite web|url = https://github.com/prometheus|title = Prometheus|accessdate = December 26, 2018}}
4. ^{{cite web|url = https://www.cncf.io/announcement/2018/08/09/prometheus-graduates/|title = Cloud Native Computing Foundation Announces Prometheus Graduation|last = Evans|first = Kristen|date = August 9, 2018|accessdate = December 26, 2018}}
5. ^{{cite book|author=Brian Brazil|title=Prometheus: Up & Running: Infrastructure and Application Performance Monitoring|url=https://books.google.com/books?id=QW1jDwAAQBAJ|date=9 July 2018|publisher=O'Reilly Media|isbn=978-1-4920-3409-4|page=3}}
6. ^{{cite web|url = https://developers.soundcloud.com/blog/prometheus-monitoring-at-soundcloud|title = Prometheus: Monitoring at SoundCloud|last = Volz|first = Julius|last2 = Rabenstein|first2 = Björn|publisher = SoundCloud}}
7. ^{{cite web|url = http://5pi.de/2015/01/26/monitor-docker-containers-with-prometheus/|title = Monitor Docker Containers with Prometheus|date = January 26, 2015|publisher = 5π Consulting}}
8. ^{{cite book|url=http://shop.oreilly.com/product/0636920041528.do |title=Site Reliability Engineering:How Google Runs Production Systems |first1=Niall |last1=Murphy |first2=Betsy |last2=Beyer |first3=Chris |last3=Jones |first4=Jennifer |last4=Petoff |publisher=O'Reilly Media |year=2016 |isbn=978-1491929124 |quote=Even though Borgmon remains internal to Google, the idea of treating time-series data as a data source for generating alerts is now accessible to everyone through those open source tools like Prometheus ... }}
9. ^{{cite web |first=Julius |last=Volz |url=https://www.youtube.com/watch?v=4Pr-z8-r1eo |title=PromCon 2017: Conference Recap |date=4 September 2017 |publisher= |via=YouTube |quote=I joined SoundCloud back in 2012 coming from Google...we didn't yet have any monitoring tools that that works with this kind of dynamic environment. We were kind of missing the way Google did its monitoring for its own internal cluster scheduler and we were very inspired by that and finally decided to build our own open-source solution.}}
10. ^{{cite web|url = https://www.cncf.io/announcement/2016/05/09/cloud-native-computing-foundation-accepts-prometheus-as-second-hosted-project/|title = Cloud Native Computing Foundation Accepts Prometheus as Second Hosted Project|date = May 9, 2016|publisher = Cloud Native Computing Foundation|accessdate = December 26, 2018}}
11. ^{{cite web|url = https://www.cncf.io/blog/2016/07/18/prometheus-1-0-is-here/|title = Prometheus 1.0 Is Here|date = July 18, 2016|accessdate = December 26, 2018|publisher = Cloud Native Computing Foundation}}
12. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-1-1-0|title = New Features in Prometheus 1.1.0|date = September 5, 2016|accessdate = December 26, 2018|publisher = Robust Perception}}
13. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-1-2-0|title = New Features in Prometheus 1.2.0|date = October 10, 2016|accessdate = December 26, 2018|publisher = Robust Perception}}
14. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-1-3-0|title = New Features in Prometheus 1.3.0|date = November 7, 2016|accessdate = December 26, 2018|publisher = Robust Perception}}
15. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-1-4-0|title = New Features in Prometheus 1.4.0|date = November 28, 2016|accessdate = December 26, 2018|publisher = Robust Perception}}
16. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-1-5-0|title = New Features in Prometheus 1.5.0|date = October 10, 2016|accessdate = December 26, 2018|publisher = Robust Perception}}
17. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-1-6-0|title = New Features in Prometheus 1.6.0|date = April 17, 2017|accessdate = December 26, 2018|publisher = Robust Perception}}
18. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-1-7-0|title = New Features in Prometheus 1.7.0|date = October 9, 2017|accessdate = December 26, 2018|publisher = Robust Perception}}
19. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-1-8-0|title = New Features in Prometheus 1.8.0|date = October 9, 2017|accessdate = December 26, 2018|publisher = Robust Perception}}
20. ^{{cite web|url = https://www.robustperception.io/new-features-in-prometheus-2-0-0|title = New Features in Prometheus 2.0.0|date = November 8, 2017|accessdate = December 26, 2018|publisher = Robust Perception}}
21. ^{{cite web|url = https://prometheus.io/docs/concepts/data_model/|title = Data model|publisher = Prometheus|accessdate = December 26, 2018}}
22. ^{{cite web|url = http://www.openwebit.com/c/prometheus-collects-metrics-provides-alerting-and-graphs-web-ui/|title = Prometheus: Collects metrics, provides alerting and graphs web UI|date = March 18, 2017|accessdate = December 26, 2018}}
23. ^{{cite web|url = https://medium.com/@abhishekbhardwaj510/alertmanager-integration-in-prometheus-197e03bfabdf|title = AlertManager Integration with Prometheus|last = Dubey|first = Abhishek|date = March 25, 2018|accessdate = December 26, 2018}}
24. ^{{cite web|url = https://jaxenter.com/prometheus-monitoring-pros-cons-136019.html|title = Prometheus monitoring: Pros and cons|date = July 28, 2017|last = Ryckbosch|first = Frederick|accessdate = December 26, 2018}}
25. ^{{cite web |url=https://prometheus.io/docs/practices/instrumentation/|title=Instrumentation - Prometheus|last=Prometheus|website=prometheus.io}}
26. ^{{cite web |url=https://prometheus.io/docs/instrumenting/exporters/ |title=Exporters |website=prometheus.io}}
27. ^{{cite web|url=https://prometheus.io/|title=Prometheus - Monitoring system & time series database|last=Prometheus|website=prometheus.io}}
28. ^{{cite web|url=https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage|title=Integrations - Prometheus|website=prometheus.io}}
29. ^{{cite web |url=https://github.com/RichiH/OpenMetrics |website=GitHub |title=OpenMetrics|date=2018-11-13 }}
30. ^{{cite web |url=https://github.com/influxdata/telegraf/tree/master/plugins/inputs/prometheus |title=Telegraf from InfluxData |date=2018-12-25 }}
31. ^{{cite web |url=https://cloudplatform.googleblog.com/2018/05/Announcing-Stackdriver-Kubernetes-Monitoring-Comprehensive-Kubernetes-observability-from-the-start.html |title=Announcing Stackdriver Kubernetes Monitoring}}
32. ^{{cite web |url=https://docs.datadoghq.com/agent/prometheus/ |title=DataDogHQ}}
33. ^{{cite web|url = https://www.cncf.io/blog/2017/02/28/prometheus-user-profile-digitalocean-uses-prometheus/|title = Prometheus User Profile: How DigitalOcean Uses Prometheus|last = Evans|first = Kristen|date = February 28, 2017|accessdate = December 26, 2018|publisher = Cloud Native Computing Foundation}}
34. ^{{cite web|url = https://www.cncf.io/blog/2016/08/24/prometheus-user-profile-monitoring-the-worlds-largest-digital-festival-dreamhack/|title = Prometheus User Profile: Monitoring the World’s Largest Digital Festival – DreamHack|last = Evans|first = Kristen|date = August 24, 2016|accessdate = December 26, 2018|publisher = Cloud Native Computing Foundation}}
35. ^{{cite web|url = https://www.cncf.io/blog/2017/05/17/prometheus-user-profile-shuttlecloud-explains-prometheus-good-small-startup/|title = Prometheus User Profile: ShuttleCloud Explains Why Prometheus Is Good for Your Small Startup|date = May 17, 2017|accessdate = December 26, 2018|last = Evans|first = Kirsten|publisher = Cloud Native Computing Foundation}}
36. ^{{cite web|url = https://engineering.pandora.com/apache-airflow-at-pandora-1d7a844d68ee|title = Apache Airflow at Pandora|last = Haidrey|first = Ace|date = March 15, 2018|accessdate = December 26, 2018|publisher = Engineering at Pandora}}
37. ^{{Cite web|url = https://docs.gitlab.com/ee/administration/monitoring/prometheus/gitlab_metrics.html|title = GitLab Prometheus metrics|accessdate = December 26, 2018}}

Further reading

  • {{Cite book|title=Monitoring Docker : monitor your Docker containers and their apps using various native and third-party tools with the help of this exclusive guide!|last=Russ|first=McKendrick|isbn=9781785885501|location=Birmingham, UK|oclc=933610431|date = 2015-12-15}}
  • {{Cite book|title=KUBERNETES FOR DEVELOPERS use kubernetes to develop, test, and deploy your applications with the help of containers;use kubernetes to develop.|last=JOSEPH.|first=HECK|date=2018|publisher=PACKT PUBLISHING|isbn=978-1788830607|location=[S.l.]|oclc=1031909876}}
  • {{Cite book|title=Designing distributed systems : patterns and paradigms for scalable, reliable services|last=1976-|first=Burns, Brendan|isbn=9781491983614|edition=First|location=Sebastopol, CA|oclc=1023861580|date = 2018-02-20}}
  • {{Cite book|title=Cloud Native programming with Golang Develop microservice-based high performance web apps for the cloud with Go.|last=Martin.|first=Helmich|date=2017|publisher=Packt Publishing|others=Andrawos, Mina., Snoeck, Jelmer.|isbn=9781787127968|location=Birmingham|oclc=1020029257}}
  • {{Cite book|title=Hybrid cloud for architects : build robust hybrid cloud solutions using AWS and OpenStack|last=Alok|first=Shrivastwa|isbn=9781788627986|location=Birmingham, UK|oclc=1028641698|date = 2018-02-23}}
  • {{cite book|title=Native Docker Clustering with Swarm |first=Chanwit |last=Kaewkasi |year=2016 |isbn=978-1786469755}}

6 : Software_using_the_Apache_license|System_monitors|Software_using_the_Apache_license|Time series software|Free software programmed in Go|Free software programmed in Go

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/24 13:13:39