Prometheus简介

Prometheus是什么

Prometheus 是由前 Google 工程师从 2012 年开始在 Soundcloud 以开源软件的形式进行研发的系统监控和告警工具包,此后,许多公司和组织都采用了 Prometheus 作为监控告警工具。它现在是一个独立的开源项目,可以独立于任何公司进行维护。Prometheus 于 2016 年 5 月加入 CNCF 基金会,成为继 Kubernetes 之后的第二个 CNCF 托管项目。Prometheus现已广泛用于集群监控系统中。

Prometheus的优势

  • 由指标名称和和键/值对标签标识的时间序列数据组成的多维数据模型。
  • 强大的查询语言 PromQL。
  • 不依赖分布式存储;单个服务节点具有自治能力。
  • 时间序列数据是服务端通过 HTTP 协议主动拉取获得的。
  • 也可以通过中间网关来推送时间序列数据。
  • 可以通过静态配置文件或服务发现来获取监控目标。
  • 支持多种类型的图表和仪表盘。

Prometheus的组件

Prometheus 生态系统由多个组件组成:

  • Prometheus Server: 服务端用来存储时间序列数据。
  • 客户端库: 用来检测应用程序代码。
  • 推送网关: 用于支持临时任务的。
  • Exporter: 用来监控 HAProxy,StatsD,Graphite 等特殊的监控目标,并向 Prometheus 提供标准格式的监控样本数据。
  • alartmanager: 用来处理告警。
  • 一些周边的支持工具。

其中组件大多数是用 Go 编写的,因此很容易构建和部署为静态二进制文件。

Prometheus的架构

architecture

Prometheus Server 直接从监控目标中或者间接通过推送网关来拉取监控指标,它在本地存储所有抓取到的样本数据,并对此数据执行一系列规则,以汇总和记录现有数据的新时间序列或生成告警。可以通过 Grafana 或者其他工具来实现监控数据的可视化。