本文旨在帮助用户自助分析阿里云可观测监控 Prometheus 版的指标写入量,定位高额费用的来源(实例、Job、指标),并提供相应的优化治理方案,从而有效控制成本。
阿里云 Prometheus 计费主要分为指标传入费用和指标存储费用,具体参考计费概述。要优化用量,首先需要分析指标写入量较大的实例、Job 和指标。阿里云 Prometheus 提供了用量分析、指标统计和指标治理等功能来支持这一需求。
用量分析
1. 实例维度用量分析
首先从全局视角查看用量较高的Prometheus 实例。
登录云监控控制台。
在左侧导航栏单击。
在实例用量总览区域,您可以查看实例的上报量、写入量、归档存储量等计费相关统计。
操作建议:按自定义指标上报量(百万)或 自定义指标写入量(GB)倒排,快速识别指标传入 TopN 的实例。

上报量和写入量是 Prometheus 实例数据传入不同的计费方式,用户可以二选一,一般情况下上报量比较高写入量也会比较高,具体参考计费概述。
2. Job 维度用量分析
分析完实例维度后,可以针对用量较大的实例,进一步下钻分析产生大量数据的具体Job。
在用量分析的大盘中,筛选期望下钻分析的实例。
查看Job排行:
在中查看上报量Top 10 的自定义Job。
在中查看写入量 Top 10 的Job。

3. 指标维度用量分析
若需要定位导致高用量的具体指标,可以进入具体的 Prometheus 实例进行分析。
在左侧导航栏选择实例列表,单击目标实例名称,访问具体的 Prometheus 实例。
在左侧导航栏选择指标管理,在指标统计页签下:
Top 10 指标数据条数:查看上报量比较高的指标。
Top 10 指标名数据量:查看写入量比较高的指标。
您也可以在大盘上筛选查看上一步中分析出的写入量比较高的Job。

指标统计中的数据条数和数据量为实时统计,实际出账的上报量或写入量可能存在一定误差,请以实际账单为准。
4. 高基数指标分析
在 Prometheus 中,高基数(High Cardinality) 是指时间序列(time series)的数量异常庞大,通常是由于指标(metric)的 标签(labels)组合过多导致的,一般情况下是指标中存储在发散的 label。
在中,提供了时间线统计和label 统计能力:
指标快速分析:查看当前实例中时间线TopN的指标。
Label 快速分析:查看 Label数的TopN分析,也可以筛选具体的指标进行查看。

成本优化策略
基于上述用量分析的洞察,您可以针对性地采取以下措施进行成本优化。
策略1:选择合适的实例计费方式
Prometheus 在实例维度提供了写入量和上报量 2 种计费方式,您可以基于用量统计页面计算哪种方式更划算。
操作:在 Prometheus 实例的设置中,切换不同的计费方式。
限制:单实例只允许切换一次。

策略2:提高采集频率
在接入管理页面,单击期望设置的环境名称,进入接入环境配置界面。
在组件管理中找到期望设置的组件,单击目标组件操作列的设置。
在配置界面中,设置采集间隔(秒)。

策略3:废弃无用指标
在左侧导航栏选择,单击目标环境名称操作列的指标采集。
在指标采集页面,单击指标废弃,输入期望废弃的指标即可。
如果指标是通过开源 Prometheus 采集后 Remote Write 写到阿里云 Prometheus,可在抓取配置中通过
metric_relabel_configs删除不需要的指标。具体操作参考常见metric_relabel_configs使用场景示例。也可以在 Remote Write 阶段通过
write_relabel_configs进行指标丢弃配置。
策略4:优化高基数指标
禁止发散标签:在指标源头,禁止将高基数的指标作为label ,例如用户 ID、订单 ID、Trace ID 作为标签。
标签归一化:如果指标中存储了路径等 label ,建议进行归一化处理(
比如:/api/user/123/profile→/api/user/:id/profile)。
总结
各优化措施的对比汇总如下表所示:
优化措施 | 作用范围 | 使用限制 | 实施难度 |
选择合适的实例计费方式 | 实例维度 | 单实例只允许切换一次。 | 低 |
提高采集频率 | Job维度 | 云服务指标不支持(云服务指标本身基本都是1分钟粒度) | 中 |
废弃无用指标 | 指标粒度 | 云服务高级指标不支持废弃 | 中 |
优化高基数指标 | 指标粒度 | 需要调整采集逻辑 | 高 |