Grafana OSS and Enterprise | Grafana documentation
Prometheus的时间序列数据
想象你有一个笔记本,你每隔5分钟记录一下房间的温度。一段时间后,你的笔记本上会有很多记录:
- 9:00 AM – 22°C
- 9:05 AM – 22.5°C
- 9:10 AM – 23°C
- 9:15 AM – 24°C …以此类推
这就是最基本的时间序列数据!它由两部分组成:时间戳(什么时候测量的)和测量值(测量到的数字)。
Prometheus如何使用时间序列数据
Prometheus就像是一个超级版的这种笔记本。它不只记录一个房间的温度,而是可以同时记录成百上千台电脑的各种状态,比如:
- CPU使用率多少?
- 内存还剩多少?
- 网络传输了多少数据?
- 磁盘写入了多少字节?
每一个测量项目在Prometheus中称为一个"指标"(metric)。每个指标都会随着时间推移不断收集新的数据点。
Prometheus的秘密武器:标签
除了记录时间和数值,Prometheus还有个强大的功能:给数据贴标签。
回到温度记录的例子,假设你不只记录一个房间的温度,而是记录整栋楼的温度。这时你需要知道每个温度读数来自哪个房间。在Prometheus中,你可以给每个测量值添加标签(labels):
- 9:00 AM – 22°C – {房间="客厅", 楼层="一楼"}
- 9:00 AM – 20°C – {房间="卧室", 楼层="二楼"}
- 9:00 AM – 18°C – {房间="地下室", 楼层="负一楼"}
这些标签让你可以非常灵活地查询和筛选数据。比如,你可以:
- 只看一楼所有房间的温度
- 比较所有卧室的温度差异
- 查看地下室温度的变化趋势
三种主要的指标类型
Prometheus支持三种主要的指标类型,适合不同场景:
- Counter(计数器):只会增加不会减少的数字,比如总共写入磁盘的字节数、处理的请求总数。就像汽车的里程表,只会随着行驶增加,不会减少。
- Gauge(仪表盘):可增可减的数字,表示当前状态,比如当前CPU使用率、当前内存使用量。就像汽车的速度表,可能现在是60km/h,等会儿可能降到40km/h。
- Histogram(直方图):用于统计数据分布情况,比如请求处理时间的分布。它会自动将数据分组,告诉你有多少请求处理时间在0-10ms之间,有多少在10-30ms之间,等等。
为什么时间序列数据如此有用?
通过这些时间序列数据,你可以:
- 观察趋势:磁盘空间是否正在快速减少?
- 发现异常:CPU使用率突然飙升了?
- 进行预测:按照当前增长速度,何时需要增加存储空间?
- 设置警报:当内存使用超过90%时自动通知管理员
Prometheus的时间序列数据就像是一个超级记事本,它不断记录各种系统指标随时间的变化,并通过标签系统让你能灵活地查询和分析这些数据,从而帮助你了解系统的健康状况,及时发现并解决问题。