自定义监控及扩缩容指标
所有文档
menu

百舸异构计算平台 AIHC

自定义监控及扩缩容指标

如果您需要根据业务逻辑来设置一些自定义的监控指标,只需在代码中配置定期上报自定义指标的逻辑,通过百度云监控服务配置采集任务收集监控数据,配置监控大盘后即可在平台查看自定义的监控指标。

准备工作

准备Cprom监控实例

百舸平台> 自运维资源池或全托管资源池 > 资源池详情中,为在线服务所属资源池关联接入Cprom监控实例。若资源池已关联监控实例,可跳过此步骤。

配置监控端口

部署自定义服务时,您需要在高级配置中开启自定义监控指标,填写监控端口。

配置采集任务

采集任务(Job)是一组 Target 的配置集合。定义了抓取间隔、访问限制等作用于一组 Target 的抓取行为。Prometheus 监控服务默认预置常用基础监控的采集任务,也支持自定义采集任务。

通过资源池查看关联的Prometheus 监控实例详情,在“采集配置”中 创建采集任务,可参考https://cloud.baidu.com/doc/CProm/s/Ml0qn8ej1

image.png

采集任务配置包括:采集时间间隔、采集超时时间、采集协议、采集指标的端口号等。一个任务支持多组 Job 配置。相应配置项说明如下:

scrape_configs:
    job_name: kube-state-metrics # 必选,Job 的名称
    scrape_interval: 30s # 可选,该 Job 的采集时间间隔,优先级高于全局配置
    scrape_timeout: 30s # 可选,该 Job 的采集超时时间,优先级高于全局配置
    metrics_path: /metrics # 必选,采集指标的 URI 路径,默认为 /metrics
    honor_labels: true # 可选,标签冲突处理策略,配置为 true 表示保留标签;配置为 false 表示重命名标签
    honor_timestamps: true # 可选,是否使用指标中的时间戳
    scheme: http # 必选,采集协议,支持 http 和 https ,默认为 http
    params: # 可选,http 协议参数,仅 scheme 为 http 时有效
      p1: ["v1", "v2"]
    tls_config: # 可选,https 协议时的 TLS 配置,仅 scheme 为 https 时有效
      ca: MIICXwIBAA*** # 配置 CA 证书 
      cert: MIICjzCCAfg*** # 配置 TLS 证书
      key: MIICXQIBAA*** # 配置 TLS 密钥
      server_name: tls-server-demo # 配置 TLS 服务器名称
      insecure_skip_verify: true # 是否禁用 https 服务器证书验证
      min_version: TLS12 # TLS 最小支持的版本号,取值:TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3)
    headers: # 可选,http 请求中的自定义 header
      - a
      - b
    kubernetes_sd_configs:
      - role: pod # K8s 服务发现配置
    relabel_configs: # 可选,配置指标的 relabel,可配置多个relabel,按顺序执行多个 relabel 规则。如没有需求,可省略
      - action: replace # 标签匹配后的操作,包括:replace(替换)、keep(保留)和 drop(丢弃)
        source_labels: [ xxxxxx ] # 从原始 labels 中取哪些 label 的值进行 relabel
        separator: ; # 定义 regex 中的分隔符,默认为 ;
        target_label: xxxxxx # 当 action 为 replace 时,需要添加或重置的标签名称
        regex: (.*) # 对 source_labels 对应的值进行正则匹配
        modulus: 123 # 源标签 Hash 值的模数
        replacement: $1 
    metric_relabel_configs: # 可选,配置指标抓取之后的 relabel。如没有需求,可省略
      - action: replace # 标签匹配后的操作,包括:replace(替换)、keep(保留)和 drop(丢弃)
        source_labels: [ xxxxxx ] # 从原始 labels 中取哪些 label 的值进行 relabel
        separator: ; # 定义 regex 中的分隔符,默认为 ;
        target_label: xxxxxx # 当 action 为 replace 时,需要添加或重置的标签名称
        regex: (.*) # 对 source_labels 对应的值进行正则匹配
        modulus: 123 # 源标签 Hash 值的模数
        replacement: $1
    sample_limit: 1024 # 可选,采集器每次采集的样本数量,取值为 0 表示无限制

以下为采集任务示例,除metrics_path外,其他字段不要修改

job_name: aihc-pom-job
honor_timestamps: true
metrics_path: /metrics #必填,采集指标的 URI 路径,默认为 /metrics
scheme: http
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
  separator: ;
  regex: (https?)
  target_label: __scheme__
  replacement: $1
  action: replace
- source_labels: [__meta_kubernetes_pod_label_component]
  separator: ;
  regex: aihcpom
  replacement: $1
  action: keep
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
  separator: ;
  regex: "true"
  replacement: $1
  action: keep
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
  separator: ;
  regex: (.+)
  target_label: __metrics_path__
  replacement: $1
  action: replace
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
  separator: ;
  regex: ([^:]+)(?::\d+)?;(\d+)
  target_label: __address__
  replacement: $1:$2
  action: replace
- source_labels: [__meta_kubernetes_namespace]
  separator: ;
  action: replace
  target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
  separator: ;
  action: replace
  target_label: kubernetes_pod_name
- separator: ;
  regex: __meta_kubernetes_pod_label_(.+)
  replacement: $1
  action: labelmap
- separator: ;
  regex: (.+)_revision_hash|(.+)_template_generation
  replacement: $1
  action: labeldrop
kubernetes_sd_configs:
- role: pod

配置监控大盘

  1. 绑定Grafana服务

进入需要配置监控大盘的Cprom监控实例详情,在实例信息中为监控实例绑定Grafana服务。

image.png

  1. 登录Grafana

点击Grafana公网域名 (可添加到浏览器收藏夹中方便快速访问),跳转到Grafana监控大盘,输入账号、密码登录。如果没有配置账号信息,需要您先设置账号密码。

image.png

  1. 配置Dashborard

通过左侧导航中进入Folder,填入文件夹名创建Dashboard,点击 Add an empty panel , Panel 编辑页面,依次选择监控实例和数据,配置好信息后保存。

image.png

image.png

image.png

  1. 查看监控

image.png

自定义扩缩容指标

  1. 生成Token

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

image.png

  1. 编写查询语句并调试

可参考官方文档,编写PromQL 查询语句。在Grafana中单击 Explore 进行调试,确保能够正常获取数据且结果正确,查询必须返回一个向量/标量的单元素响应,且结果应为整个服务的数值求和。

image.png

查询示例:

sum(rate(vllm:prompt_tokens_total{kubernetes_namespace="aihc-pom",pom_aihc_baidubce_com_app_name="lfyu-eee"}))

默认采集规则会对您的采集指标添加一些label,以下标签可以用于实现更高级的弹性扩缩容,如服务B基于服务A的指标进行扩缩容。

label 含义
app 服务的唯一ID,如ap-9e25fe4e,在实例列表中可以看到该前缀
clusterID 集群ID
component 默认为aihcpom
instance 实例的IP:PORT
kubernetes_namespace k8s命名空间,自定义部署的服务均在aihc-pom命名空间下
kubernetes_pod_name 实例的名称
pom_aihc_baidubce_com_app_name 配置的服务名称
  1. 添加扩缩容策略

调试没有问题后,在弹性扩缩容功能中添加自定义指标。

image.png

上一篇
自定义部署服务
下一篇
自定义服务自动扩缩容