Prometheus
简单介绍
Prometheus是由Go编写的一套开源的监控&报警&时间序列数据库的组合,由SoundCloud开发,从 2012 年开始编写代码,再到 2015 年 github 上开源以来,已经吸引了 9k+ 关注,以及很多大公司的使用;2016 年 Prometheus 成为继 k8s 后,第二名 CNCF(Cloud Native Computing Foundation) 成员。作为新一代开源解决方案,很多理念与 Google SRE 运维之道不谋而合。
主要特点
- 基于HTTP的pull方式采集时序数据
- 可以通过push gateway进行时序列数据推送(pushing)
- 有简单的多种可视化图表及仪表盘支持
- 可以通过服务发现或者静态配置去获取要采集的目标服务器
- 不依赖分布式存储,单个服务器节点
- 比较容易扩展,联邦集群
- 自己定义的一套多维数据模型(时间序列由指标metric名称和键/值对组成)
- 有自己的查询语言PromQL
- 非常高效的存储 平均一个采样数据占 ~3.5 bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G。
架构&组件
- Prometheus Server:主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理
- Alertmanager:是独立于Prometheus的一个组件,可以支持Prometheus的查询语句,提供十分灵活的报警方式
- PushGateway:这个组件是支持C