本文介绍PromQL资源组在生产环境中的运维与精细化使用,包括按负载规划资源、理解多租户数据组织、使用VM UI与VM集群监控排查问题、修改参数与扩缩容,以及常见错误的处理方法。
资源规划
PromQL资源组由四类节点组成,每类节点的规格和数量需要在创建时一并规划。ACU是AnalyticDB for MySQL的计算计量单位,1 ACU等于1 vCPU + 4 GB内存。
不同负载下的推荐配置示例如下,您可以参考所选场景的配置作为起点,再按下方表格的规则进行调整:
功能验证 / PoC:四类节点均采用最小规格(存储 / 写入 / 查询节点各4 ACU、认证节点1 ACU),节点数量采用系统默认值(存储3 / 写入2 / 查询2 / 认证2),存储磁盘500 GB。总ACU为30,可承载约80万 samples/s 的写入吞吐。
中等生产负载(活跃series ≤ 100万、写入速率 ≤ 5000样本/秒):存储节点8 ACU × 3、写入节点8 ACU × 2、查询节点8 ACU × 2 并分配1 TB缓存盘、认证节点1 ACU × 2。
大规模负载:根据峰值写入QPS和活跃series数线性扩展存储节点与写入节点;查询节点根据并发数和缓存命中率调整规格与缓存盘容量。
各类节点的可选规格与扩容时机如下:
节点 | 可选规格 | 规划建议 |
存储节点 | 4 / 8 / 16 / 32 / 64 / 128 ACU | 当数据量或活跃series增长、磁盘水位接近上限时,建议扩容存储节点的规格、数量或磁盘空间。 存储节点的数据磁盘使用ESSD云盘,按GB为单位分配。单节点磁盘容量可按以下公式估算: 单节点磁盘空间 ≈ 保留期(天) × 每秒样本数 × 1.3 字节 ÷ 存储节点数。 |
写入节点 | 4 / 8 / 16 / 32 / 64 / 128 ACU | 当写入QPS或样本量增长、写入出现抖动时,建议扩容规格或增加节点数量。 |
查询节点 | 4 / 8 / 16 / 32 / 64 / 128 ACU | 当查询并发或大范围扫描增多时,建议扩容规格或增加节点数量;如需进一步加速重复查询,可为查询节点分配缓存盘。 |
认证节点(Auth) | 1 ACU(固定) | 当客户端并发量增加导致认证压力上升时,建议增加节点数量。 |
数据组织与多租户
PromQL资源组对外提供一套统一的指标库。您只需关注指标名称(metric)与标签(labels),无需关注底层的租户切分。但VictoriaMetrics协议要求在URL中指定租户ID,理解其行为可避免数据写入成功但查询不到的问题。
默认租户
PromQL资源组的控制台、VM UI与默认查询入口均绑定到租户ID0。所有写入与查询URL都应使用/insert/0/...和/select/0/...,否则数据虽然落盘,但在控制台和VM UI中不可见。
常见误用:写入非0租户后查询为空
VictoriaMetrics引擎对任意accountID(例如/insert/1/...)都会按需自动创建租户并接收写入,HTTP返回204,不会报错。但是:
从默认查询入口
/select/0/...查询时,无法看到这些数据。VM UI与控制台的VM集群监控中,这些数据也不会被统计。
数据虽然真实存在于vmstorage中,但从用户视角看起来如同丢失。
客户端写入路径中的租户ID段必须固定为0。如果使用vmagent等中间件转发,请确认其remoteWrite.url中包含/insert/0/。
多业务隔离方案
针对多业务、多环境、多团队场景,PromQL资源组推荐以下隔离方案:
隔离强度 | 方案 | 适用场景 |
逻辑隔离(推荐) | 同一资源组内,使用metric名称与labels区分业务、环境与集群。 label设计建议:使用 避免将业务标签塞进metric名称(例如 | 多业务共用一套监控底座,跨业务统一看板,运维成本最低。 |
物理隔离 | 在同一AnalyticDB for MySQL实例下创建多个PromQL资源组。 | 需要计费独立、SLA独立、容量配额独立。 |
环境隔离 | 不同环境(生产 / 测试)使用不同资源组。 | 避免测试流量影响生产查询性能。 |
使用VM UI
VM UI是VictoriaMetrics内置的可视化查询界面,无需自建Grafana即可执行PromQL查询与问题排查。访问入口与登录方式参见快速使用PromQL资源组。VM UI主要功能页如下:
页面 | 用途 |
Query | 输入PromQL执行即时查询,结果支持表格、图表、JSON三种视图。 |
Explore > Metrics | 浏览所有已写入的指标名称。 |
Cardinality Explorer | 按label维度分析数据基数,定位高基数标签。 |
Top Queries | 查看最耗时或最频繁的查询,用于性能优化。 |
查看VM集群监控
控制台为每个PromQL资源组提供开箱即用的运维监控仪表盘。在资源组管理列表中,单击目标PromQL资源组操作列的VM集群监控,即可在抽屉中查看以下内容:
实时统计:Total datapoints、Ingestion rate、Read requests、Active series、Disk space usage、Available CPU / Memory、Bytes per point等关键指标。
集群组件状态:按pod_type(storage / select / insert)分组展示每类节点的运行情况与版本号。
趋势图:Uptime、Datapoints ingestion rate、Requests rate等折线图,支持调整时间范围。
VM Auth子页:单独查看认证节点的请求量与错误率。
所有vm_*自监控指标对外暴露,您可以将PromQL资源组接入自有的Grafana或告警系统,实现自身监控闭环。
修改参数
在资源组详情面板的参数配置区块,单击右上角的修改配置,可调整以下参数:
参数 | 默认值 | 说明 |
| 32 | 写入节点的最大并发写入数。 |
|
| 查询节点的缓存数据路径,位于缓存盘上。 |
| 2 | 数据副本数,保障存储节点故障时不丢数据。 |
| 15s | 去重的最小抓取间隔,相同时间戳的样本仅保留最新值。 |
| 15d | 数据保留周期。支持单位 |
修改参数将触发对应节点的滚动重启,期间写入与查询可能出现短暂抖动,建议在业务低峰期操作。如需导出当前完整参数文件,可单击下载配置。
节点扩缩容
在详情面板的节点配置表中,单击对应节点行的修改,可调整以下项:
节点规格:在 4 / 8 / 16 / 32 / 64 / 128 ACU 之间切换(认证节点固定为1 ACU)。
节点数量。
单节点磁盘空间:仅存储节点支持调整。
扩缩容期间集群整体保持可用,单个节点重启时其请求将自动路由到其他健康节点,但可能出现短暂的性能波动,建议在业务低峰期操作。
常见问题
写入或查询返回HTTP 400 unsupported path requested
URL路径中缺少/prometheus/段。集群版协议要求写入路径为/insert/0/prometheus/api/v1/...,查询路径为/select/0/prometheus/api/v1/...。
返回HTTP 401 Unauthorized
账号或密码错误,请到资源组详情面板重新复制管理员凭证;或客户端使用了https://前缀,端口8427仅支持HTTP,请改为http://。
写入返回204但查询无数据
索引延迟:写入后1~2秒索引才可见,稍候重试即可。
租户ID错误:本产品的默认租户ID固定为
0,请检查URL中/insert/<租户ID>/段是否为0。详情参见常见误用:写入非0租户后查询为空。
连接超时
客户端来源IP是否已加入实例白名单。
所用地址与客户端网络位置是否匹配:使用VPC地址要求客户端与实例位于同一VPC内,跨VPC使用VPC地址也会连接超时;客户端在阿里云外或不同VPC时,必须开通并使用公网地址。
访问URL是否使用了
http://前缀和端口8427。
如何延长数据保留期
在参数配置中将common.retentionPeriod调整为目标值,例如180d表示保留180天。修改后会触发节点滚动重启。延长保留期会增加历史数据占用的磁盘空间,请同时评估是否需要扩容存储节点的磁盘容量。
如何释放资源组以停止计费
在资源组列表中,单击目标PromQL资源组操作列的更多菜单,选择释放。释放后资源组与其中的所有指标数据都会被删除,且无法恢复。释放操作提交后立即停止计费,按已用时长(不满1小时按1小时)结算。