文档首页/ 云应用引擎 CAE/ 最佳实践/ 通过配置PromQL实现自定义弹性伸缩
更新时间:2024-05-24 GMT+08:00

通过配置PromQL实现自定义弹性伸缩

假设有一个名为my_component的组件,组件所处环境为my_environment,所处应用为my_application。

假设该组件提供自定义指标 http_requests_total,表示http请求总量,本文以该指标为例,介绍如何使用PromQL。

查询指标

使用以下PromQL语句,查询最新一条指标数据:

http_requests_total{environment_name="my_environment",application_name="my_application",component_name="my_component"}

若查询最近5分钟的所有指标数据:

http_requests_total{environment_name="my_environment",application_name="my_application",component_name="my_component"}[5m]

处理查询到的指标

查询指标中查询的指标数据通常有多条,例如组件有多个实例,则指标数据也有多条,或查询了一段时间的指标数据,该段时间内采集多条数据。

伸缩策略中的PromQL必须返回单个值,因此需要处理查询得到的指标数据,以得到单个值,示例如下:

查询最新一条指标,并求平均值,得到所有实例的http请求总数的平均值:

avg(http_requests_total{environment_name="my_environment",application_name="my_application",component_name="my_component"})

查询最近5分钟的所有指标数据,获取变化值(即增长值),并求平均,得到5分钟内平均每个实例的http请求增长数:

avg(delta(http_requests_total{environment_name="my_environment",application_name="my_application",component_name="my_component"}[5m]))

更多请参考PromQL官方文档PromQL官方示例