自定义监控及扩缩容指标
更新时间:2026-10-26
概述
本文档介绍如何根据业务逻辑设置自定义监控指标。您需要在代码中配置定期上报自定义指标的逻辑,通过百度云监控服务配置采集任务收集监控数据,并配置监控大盘,以便在平台查看自定义监控指标。
前提条件
- 已在 百舸平台->自运维资源池或全托管资源池->资源池详情 中,为在线服务所属资源池关联接入 CProm 监控实例。若资源池已关联监控实例,可跳过此步骤。
- 部署自定义服务时,已在高级配置中开启自定义监控指标,并填写监控端口。
- 已准备 Grafana 账号和密码。若未配置或需要修改密码,可在 Grafana 服务详情页设置。
配置采集任务
采集任务(Job)是一组 Target 的配置集合,用于定义抓取间隔、访问限制等作用于一组 Target 的抓取行为。Prometheus 监控服务默认预置常用基础监控的采集任务,也支持自定义采集任务。
操作步骤
- 在百舸控制台进入 百舸控制台->平台管理->报表&监控,在资源池下拉框中选择已关联 CProm 监控实例的资源池。资源池选定后,通过资源池关联的 Prometheus 监控实例进入实例详情页。
- 在 Prometheus 监控实例详情页打开 【采集配置】,点击 【创建采集任务】。采集任务配置可参考 https://cloud.baidu.com/doc/CProm/s/Ml0qn8ej1。创建任务时,按业务实际暴露的指标路径填写
metrics_path。

采集任务配置说明
采集任务配置包括采集时间间隔、采集超时时间、采集协议、采集指标的端口号等。一个任务支持多组 Job 配置。
YAML
1scrape_configs:
2 job_name: kube-state-metrics # 必选,Job 的名称
3 scrape_interval: 30s # 可选,该 Job 的采集时间间隔,优先级高于全局配置
4 scrape_timeout: 30s # 可选,该 Job 的采集超时时间,优先级高于全局配置
5 metrics_path: /metrics # 必选,采集指标的 URI 路径,默认为 /metrics
6 honor_labels: true # 可选,标签冲突处理策略,配置为 true 表示保留标签;配置为 false 表示重命名标签
7 honor_timestamps: true # 可选,是否使用指标中的时间戳
8 scheme: http # 必选,采集协议,支持 http 和 https ,默认为 http
9 params: # 可选,http 协议参数,仅 scheme 为 http 时有效
10 p1: ["v1", "v2"]
11 tls_config: # 可选,https 协议时的 TLS 配置,仅 scheme 为 https 时有效
12 ca: MIICXwIBAA*** # 配置 CA 证书
13 cert: MIICjzCCAfg*** # 配置 TLS 证书
14 key: MIICXQIBAA*** # 配置 TLS 密钥
15 server_name: tls-server-demo # 配置 TLS 服务器名称
16 insecure_skip_verify: true # 是否禁用 https 服务器证书验证
17 min_version: TLS12 # TLS 最小支持的版本号,取值:TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3)
18 headers: # 可选,http 请求中的自定义 header
19 - a
20 - b
21 kubernetes_sd_configs:
22 - role: pod # K8s 服务发现配置
23 relabel_configs: # 可选,配置指标的 relabel,可配置多个relabel,按顺序执行多个 relabel 规则。如没有需求,可省略
24 - action: replace # 标签匹配后的操作,包括:replace(替换)、keep(保留)和 drop(丢弃)
25 source_labels: [ xxxxxx ] # 从原始 labels 中取哪些 label 的值进行 relabel
26 separator: ; # 定义 regex 中的分隔符,默认为 ;
27 target_label: xxxxxx # 当 action 为 replace 时,需要添加或重置的标签名称
28 regex: (.*) # 对 source_labels 对应的值进行正则匹配
29 modulus: 123 # 源标签 Hash 值的模数
30 replacement: $1
31 metric_relabel_configs: # 可选,配置指标抓取之后的 relabel。如没有需求,可省略
32 - action: replace # 标签匹配后的操作,包括:replace(替换)、keep(保留)和 drop(丢弃)
33 source_labels: [ xxxxxx ] # 从原始 labels 中取哪些 label 的值进行 relabel
34 separator: ; # 定义 regex 中的分隔符,默认为 ;
35 target_label: xxxxxx # 当 action 为 replace 时,需要添加或重置的标签名称
36 regex: (.*) # 对 source_labels 对应的值进行正则匹配
37 modulus: 123 # 源标签 Hash 值的模数
38 replacement: $1
39 sample_limit: 1024 # 可选,采集器每次采集的样本数量,取值为 0 表示无限制
采集任务 YAML 内容如下,除 metrics_path 外,其他字段不要修改:
YAML
1job_name: aihc-pom-job
2honor_timestamps: true
3metrics_path: /metrics
4scheme: http
5relabel_configs:
6 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
7 separator: ;
8 regex: (https?)
9 target_label: __scheme__
10 replacement: $1
11 action: replace
12 - source_labels: [__meta_kubernetes_pod_label_component]
13 separator: ;
14 regex: aihcpom
15 replacement: $1
16 action: keep
17 - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
18 separator: ;
19 regex: "true"
20 replacement: $1
21 action: keep
22 - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
23 separator: ;
24 regex: (.+)
25 target_label: __metrics_path__
26 replacement: $1
27 action: replace
28 - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
29 separator: ;
30 regex: ([^:]+)(?::\d+)?;(\d+)
31 target_label: __address__
32 replacement: $1:$2
33 action: replace
34 - source_labels: [__meta_kubernetes_namespace]
35 separator: ;
36 action: replace
37 target_label: kubernetes_namespace
38 - source_labels: [__meta_kubernetes_pod_name]
39 separator: ;
40 action: replace
41 target_label: kubernetes_pod_name
42 - separator: ;
43 regex: __meta_kubernetes_pod_label_(.+)
44 replacement: $1
45 action: labelmap
46 - separator: ;
47 regex: (.+)_revision_hash|(.+)_template_generation
48 replacement: $1
49 action: labeldrop
50kubernetes_sd_configs:
51 - role: pod
配置监控大盘
操作步骤
- 进入 Prometheus 监控->Grafana 服务,确认 Grafana 服务状态为“运行中”,并查看 Grafana 公网域名。为 CProm 监控实例绑定 Grafana 时,进入监控实例创建或编辑页面,打开 Grafana 服务 开关,选择已有 Grafana 实例后提交。绑定完成后,可在 Grafana 详情页的 已关联实例 区域查看关联的监控实例。

- 在 Grafana 详情页点击 Grafana 公网域名,进入 Grafana 登录页。使用页面显示的 Grafana 账号和已配置的密码登录。若未配置或需要修改密码,点击 Grafana 密码 后的编辑图标,填写新密码并确认;系统会要求完成短信验证码安全验证,验证通过后新密码生效。

- 登录 Grafana 后,进入 Grafana->Dashboards/Manage 或 Grafana->Create Dashboard,创建 Folder 或新建 Dashboard,点击 【Add an empty panel】。在 Panel 编辑页面选择对应数据源、监控实例和指标查询条件,确认图表有数据后保存 Panel 和 Dashboard。
- 查看监控

自定义扩缩容指标
- 生成Token
进入资源池关联的Cprom监控实例详情,查看实例信息生成Token。基于GPU利用率及自定义业务指标进行弹性扩缩容,平台需要获取您的Grafana访问地址和Token。

- 编写查询语句并调试
使用 Grafana 公网域名打开 Grafana,输入 Grafana 账号和密码登录。登录后进入 Grafana->Explore,选择 Prometheus 数据源,编写并执行 PromQL 查询语句。查询结果必须返回向量或标量的单元素响应,且结果应为整个服务的数值求和。
查询语句模板:
Promql
1sum(rate(vllm:prompt_tokens_total{kubernetes_namespace="<服务所在命名空间>",pom_aihc_baidubce_com_app_name="<服务名称>"}))
默认采集规则会对采集指标添加以下 Label,可用于实现更高级的弹性扩缩容,例如服务 B 基于服务 A 的指标进行扩缩容。
| 参数 | 说明 |
|---|---|
app |
服务的唯一 ID,可在实例列表中查看。 |
clusterID |
集群 ID。 |
component |
组件名称,默认为 aihcpom。 |
instance |
实例的 IP 和端口。 |
kubernetes_namespace |
K8s 命名空间,自定义部署服务的默认命名空间为 aihc-pom。 |
kubernetes_pod_name |
实例名称。 |
pom_aihc_baidubce_com_app_name |
配置的服务名称。 |
- 添加扩缩容策略
服务需设置一个Metrics用途的端口,在弹性扩缩容功能中添加自定义指标。

评价此篇文章
