一般我们说 Prometheus,有两种理解,我们平时需要注意识别的,其含义有两种,一是指的 Prometheus 自身,是一个时序数据库;另外一种是指 Prometheus 生态圈,指的是是整体的监控报警的生态圈和解决方案(Prometheus+Grafana+Alertmanager)。 Prometheus 在 2016年加入了 CNCF(Cloud Native Computing Foundation),是继 Kubernetes 之后的第二个托管项目,目前已经毕业,其主要的特点如下: 多维度的数据模型:由指标名称和键/值对标签标识的时间序列数据来组成多维的数据模型。 灵活的查询语言:在 Prometheus 中使用强大的查询语言 PromSQL 来进行查询。 不依赖分布式存储,Prometheus 单个节点也可以直接工作,支持本地存储(TSDB)和远程存储的模式。 服务端采集数据:Prometheus 基于 HTTP pull 方式去对不同的端采集时间序列数据。 客户端主动推送:支持通过 PushGateway 组件主动推送时间序列数据。 Prometheus 生态组件 Prometheus 生态由多个组件共同组成,其中许多组件是可根据实际情况选择的,并且绝大部分由 Go 语言编写,在部署和构建上比较方便,如下: