Prometheus是一个开源的监控系统,其数据结构主要包括以下几个部分:
1、指标(Metrics):
指标是Prometheus中最基本的数据单位,用于表示被监控对象的各种属性和行为。
指标由一个名称(Name)和一个标签集合(Labels)组成,标签用于描述指标的特征。
每个指标都有一个时间序列(Time Series),用于存储该指标在不同时间点上的值。
2、样本(Samples):
样本是指标时间序列中的一个数据点,包含了指标的值和其他相关信息。
样本由一个时间戳(Timestamp)、指标名称、标签集合和值(Value)组成。
时间戳表示样本收集的时间,标签集合用于标识样本所属的指标,值表示指标在该时间点上的取值。
3、实例(Instance):
实例是Prometheus中用于存储指标数据的对象。
每个实例都有一个唯一的ID(ID),用于标识该实例。
实例可以包含多个指标,每个指标对应一个时间序列。
4、存储(Storage):
Prometheus使用一种称为时间序列数据库(TSDB)的特殊数据结构来存储指标数据。
TSDB将指标按照时间顺序组织成一个有序的数据结构,便于快速查询和聚合操作。
TSDB使用块(Chunks)来管理数据的存储,每个块包含多个样本,每个样本占用一定的存储空间。
5、抓取器(Collector):
抓取器是Prometheus中用于从目标系统收集指标数据的工具。
抓取器通过HTTP协议与目标系统通信,定期获取指标数据并提交给Prometheus。
Prometheus支持多种类型的抓取器,包括静态配置抓取器、服务发现抓取器等。
6、报警规则(Alert Rules):
报警规则是Prometheus中用于定义报警条件和处理逻辑的规则。
报警规则由一个名称(Name)、表达式(Expression)和动作(Action)组成。
表达式用于描述报警条件,动作用于定义报警触发后的处理方式,如发送邮件、调用API等。