Prometheus是一套开源的系统监控报警框架。如今越来越多的公司开始广泛使用Prometheus来提供近实时的、基于动态云环境和容器微服务、服务以及应用程序的内省监控。同时也用于监控传统架构的资源。
Prometheus作为新一代的云原生监控系统,拥有易于管理、查询功能强大、便于可视化、存储高效以及操作简单等特点。
接下来我们就为大家简单介绍一下Prometheus,让大家对Prometheus有个初步的了解认识!
一 关于Prometheus
Prometheus是一个开源系统监控和警报工具包,最初是在SoundCloud构建的。自2012年成立以来,许多公司和组织都广泛运用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,Prometheus在2016年加入了云计算基金会,成为继Kubernetes之后的第二个托管项目。
01-特点
Prometheus有以下几个主要特点:
强大的查询功能:Prometheus灵活的查询语言PromQL能够对收集的时间序列数据进行切片和分片,以便生成特定的图、表和警报。
高效的存储:Prometheus以一种高效的自定义格式将时序数据存储在内存和本地磁盘上。不依赖分布式存储;单服务器节点是自治的。
便于可视化:Prometheus有多种可视化数据的模式:内置表达式浏览器、Grafana集成和控制台模板语言。
操作简单:每台服务器都是独立的,只依赖于本地存储。所有二进制文件都是静态链接的,易于部署。
警报精确:告警是根据Prometheus灵活的PromQL定义并传递到Alertmanager。再由Alertmanager负责管理、整合和分发各种警报到不同地目的地。
大量的集成:现有的Exporters允许将第三方数据连接到Promehteus。示例:系统统计信息,以及Docker、HAProxy、StatsD和JMX metrics。
02-组件
Prometheus生态系统包含多个组件,其中许多是可选的:
抓取并存储时间序列数据的Prometheus主服务器
用于检测应用程序代码客户端库
支持短期工作的pushgateway
诸如HAProxy,StatsD,Graphite等服务器的专用Exporters
用于处理警报的Alertmanager
各种支持工具
大多数Prometheus组件都是用Go编写的,因此易于构建和部署为静态二进制文件。
03-架构
下图说明了Prometheus的架构及其生态系统组件:

Prometheus 直接或通过pushgateway抓取metrics。将数据存储在本地,并对这些数据运行规则,以便从现有数据聚合和记录新时间序列,或者生成警报。Grafana或其他API consumers可以用来将抓取的数据可视化。
二 适用场景
Prometheus非常适合记录任何纯数字时间序列。它既适用于machine-centric监控,也适用于高度动态的service-oriented的架构监控。在微服务的领域,其对多维数据抓取和查询的支持是一种特别的优势。
Prometheus是您在中断期间也能正常使用并快速诊断问题的系统,是十分值得信赖的伙伴。每个Prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务。当基础结构的其他部分损坏时,您仍可以依靠它来进行监控,并且无需设置广泛的基础结构也可使用它,在故障的情况下,仍可以查看系统可用的统计信息。如果您需要100%精确的统计数据的话,Prometheus可能不能完全满足您的需求,如果是这种情况,您可以运用其他系统来抓取和分析这部分需要精确的数据,然后将Prometheus用于余下的监控环节。
关于Prometheus中文社区
Prometheus中文社区已与Prometheus原厂官方达成合作,通过官方的支持希望能为您带来以下服务:
资讯分享:
Prometheus中文社区旨在为Prometheus开发者们提供最新的官方资讯以及专业知识,为开发者们分享第一手的Prometheus信息
技术交流:
加入社区交流分享经验,让社区大佬帮您解决身边的实际问题;提出您的见解、技术心得,交流专业资源讨论技术话题。打造一个开发者们交流技术干货的信息平台。
专业服务:
现在我们已与Prometheus达成合作,携手联合创始人Julius Volz及其专业团队,旨在为您提供更优质、更具性价比的监控设置咨询服务。了解更多Prometheus内容或需要更多专业服务请联系我们!
扫码加入Prometheus中文社区群了解更多最新的Prometheus咨询以及专业知识!(人数超过上限后烦请联系社区助手入群)


一键关注
关注公众号
社区助手






