通过配置聚合任务(Recording Rules)优化监控性能,降低PromQL复杂度,提升大规模集群查询效率。
聚合任务只支持Prometheus V2版本的实例。
背景信息
聚合任务可以对落地的指标数据做二次开发。某些查询可能需要在查询端进行大量的计算,导致查询端压力过大。您可以配置预聚合规则将计算过程提前到写入端,减少查询端资源占用,尤其在大规模集群和复杂业务场景下可以有效的降低PromQL的复杂度,从而提高查询性能,解决用户配置以及查询慢的问题。
聚合任务的配置与开源Prometheus类似。开源RecordingRule以规则组(Rule Group)的形式存在,每个规则组可以有多条规则(Rules)。可观测监控 Prometheus 版的每个聚合任务只能包含一个规则组,聚合规则的名称必须符合Prometheus指标名称规范。相同组中的规则以一定的间隔顺序执行,预聚合后的指标按照新的规则名字存入指定的 Prometheus 实例。
前提条件
聚合任务调度时需要AliyunLogETLRole查询数据,请确保您拥有对应的角色,如果没有的话,请单击此处创建:AliyunLogETLRole 创建。
控制台创建聚合任务时,需要校验AliyunLogETLRole是否存在,因此您创建子账号时,需要增加下面的权限,使控制台可以校验角色。
{
"Statement": [
{
"Action": [
"ram:GetRole"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
],
"Version": "1"
}
配置聚合任务
登录云监控控制台,在左侧导航栏选择 ,进入实例列表页面。
在页面上方选择目标地域,然后单击需要配置聚合任务的 Prometheus 实例名称。
在左侧导航栏中单击聚合任务,单击新建聚合任务。
在弹出的界面中填写聚合任务的配置,配置完成后单击确定。
配置项
说明
任务名称
聚合任务的显示名称。
RecordingRule.yaml
YAML 格式的 RecordingRule 配置文件,一个聚合任务的 RecordingRule.yaml 配置文件中要求只包含一个规则组(Group)。
写入目标
生成指标的写入的 Prometheus 实例,支持写入到当前实例或同 Region 下的其他 Prometheus V2 版本的实例。
执行延时
聚合任务规则执行时的延迟时间,默认30秒。例如设置30秒时,10:20:00 应当执行的规则实际调度时间会是 10:20:30,等待30秒确保规则调度时数据均已到齐。
标签
资源组标签。
描述
聚合任务的描述。
RecordingRule.yaml 的参数说明。
配置项
说明
groups
规则组。一份 RecordingRule.yaml 只能配置一组规则组。
name
规则组名称。
interval
(可选)规则组的执行周期。默认60秒。
rules
规则。一个规则组可以包含多条规则。
record
规则的名称。聚合规则的名称必须符合 Prometheus指标名称规范。
预聚合规则命名的推荐格式:
level:metric:operations
level
:表示聚合级别以及规则的输出标签。metric
:表示指标的名称。operations
:应用于指标的操作列表,最新的操作在前面。
expr
计算表达式。可观测监控 Prometheus 版将通过该表达式计算得出预聚合指标。计算表达式必须符合PromQL。
labels
(可选)指标的标签。
查看聚合任务的执行状态监控指标
单击监控图标即可跳转至云监控对应界面查看当前聚合任务下全部指标的运行监控指标。
单击下拉列表可以查看聚合任务计算的不同指标的运行情况。