tencent cloud

腾讯云可观测平台

动态与公告
产品动态
产品简介
产品概述
产品优势
基本功能
基本概念
应用场景
使用限制
购买指南
云产品监控
应用性能监控
终端性能监控
前端性能监控
云拨测
Prometheus 监控服务
Grafana 服务
事件总线
云压测
快速入门
监控概览
实例分组
云产品监控
应用性能监控
云拨测
云压测
Prometheus 监控服务
Grafana 服务
创建 Dashboard
事件总线
告警服务
云产品监控
云产品监控指标
控制台操作指南
云服务器监控组件
云产品监控对接 Grafana
故障处理
实践教程
应用性能监控
应用性能监控简介
接入指南
控制台操作指南
实践教程
参考信息
常见问题
终端性能监控
终端性能监控概述
控制台操作指南
接入指南
实践教程
前端性能监控
前端性能监控简介
控制台操作指南
接入指南
常见问题
云拨测
产品简介
控制台操作指南
常见问题
云压测
云压测概述
控制台操作指南
实践教程
JavaScript API 列表
常见问题
Prometheus 监控
Prometheus 监控简介
接入指南
控制台操作指南
实践教程
Terraform
常见问题
Grafana 服务
产品简介
控制台操作指南
Grafana 平台常用功能指引
常见问题
Dashboard
什么是 Dashboard
控制台操作指南
告警管理
控制台操作指南
故障处理
常见问题
事件总线
事件总线简介
控制台操作指南
实践教程
常见问题
报表管理
常见问题
腾讯云可观测平台常见问题
告警服务相关
一般性问题
监控图表相关
云服务器监控组件相关
动态阈值告警相关
云监控对接 Grafana 相关
文档阅读指南
相关协议
应用性能监控服务等级协议
APM 隐私协议
APM 数据处理和安全协议
前端性能监控服务等级协议
终端性能监控服务等级协议
云拨测服务等级协议
Prometheus 监控服务服务等级协议
Grafana 服务服务等级协议
云压测服务等级协议
云压测使用限制
Cloud Monitor Service Level Agreement
词汇表

抓取配置说明

PDF
聚焦模式
字号
最后更新时间: 2026-03-27 18:12:09

概述

Prometheus 主要通过 Pull 的方式来抓取目标服务暴露出来的监控接口,因此需要配置对应的抓取任务来请求监控数据并写入到 Prometheus 提供的存储中,目前 Prometheus 服务提供了如下几个任务的配置:
原生 Job 配置:提供 Prometheus 原生抓取 Job 的配置。
云服务器服务发现配置:提供腾讯云服务器实例的服务发现配置。
Pod Monitor:在 K8S 生态下,基于 Prometheus Operator 来抓取 Pod 上对应的监控数据。
Service Monitor:在 K8S 生态下,基于 Prometheus Operator 来抓取 Service 对应 Endpoints 上的监控数据。
Probe:在 K8S 生态下,基于 Prometheus Operator 对目标进行健康检查或可用性探测并将探测结果转换为 Prometheus 指标。
PrometheusRule:在 K8S 生态下,基于 Prometheus Operator 来定义告警规则(Alerting Rules)和预聚合规则(Recording Rules),实现告警配置的声明式管理。
注意:
以上基于 Prometheus Operator 的 CRD 资源遵循以下生效规则:
PodMonitor/ServiceMonitor/Probe
位于 kube-system namespace 下的 CRD 资源全部自动生效,无需额外标签。
位于其他任意 namespace 下的 CRD 资源,必须在 metadata.labels 中包含 prom_id: <实例 ID> 标签才能生效。该标签用于将 CRD 资源关联到指定的 Prometheus 实例。
PrometheusRule
PrometheusRule 必须放在对应 Prometheus <实例 ID> 这个 namespace 下。
通过 CRD 创建的告警/预聚合规则无法在控制台修改。
以下配置中的[]配置项为可选。

原生 Job 配置

相应配置项说明如下:

# 抓取任务名称,同时会在对应抓取的指标中加了一个 label(job=job_name)
job_name: <job_name>

# 抓取任务时间间隔
[ scrape_interval: <duration> | default = <global_config.scrape_interval> ]

# 抓取请求超时时间
[ scrape_timeout: <duration> | default = <global_config.scrape_timeout> ]

# 抓取任务请求 URI 路径
[ metrics_path: <path> | default = /metrics ]

# 解决当抓取的 label 与后端 Prometheus 添加 label 冲突时的处理。
# true: 保留抓取到的 label,忽略与后端 Prometheus 冲突的 label;
# false: 对冲突的 label,把抓取的 label 前加上 exported_<original-label>,添加后端 Prometheus 增加的 label;
[ honor_labels: <boolean> | default = false ]

# 是否使用抓取到 target 上产生的时间。
# true: 如果 target 中有时间,使用 target 上的时间;
# false: 直接忽略 target 上的时间;
[ honor_timestamps: <boolean> | default = true ]

# 抓取协议: http 或者 https
[ scheme: <scheme> | default = http ]

# 抓取请求对应 URL 参数
params:
[ <string>: [<string>, ...] ]

# 通过 basic auth 设置抓取请求头中 `Authorization` 的值,password/password_file 互斥,优先取 password_file 里面的值。
basic_auth:
[ username: <string> ]
[ password: <secret> ]
[ password_file: <string> ]

# 通过 bearer token 设置抓取请求头中 `Authorization` bearer_token/bearer_token_file 互斥,优先取 bearer_token 里面的值。
[ bearer_token: <secret> ]

# 通过 bearer token 设置抓取请求头中 `Authorization` bearer_token/bearer_token_file 互斥,优先取 bearer_token 里面的值。
[ bearer_token_file: <filename> ]

# 抓取连接是否通过 TLS 安全通道,配置对应的 TLS 参数
tls_config:
[ <tls_config> ]

# 通过代理服务来抓取 target 上的指标,填写对应的代理服务地址。
[ proxy_url: <string> ]

# 通过静态配置来指定 target,详见下面的说明。
static_configs:
[ - <static_config> ... ]

# HTTP 服务发现配置。原生服务发现配置可参考 Prometheus 官方文档
http_sd_configs:
[ - <http_sd_config> ... ]

# 在抓取数据之后,把 target 上对应的 label 通过 relabel 的机制进行改写,按顺序执行多个 relabel 规则。
# relabel_config 详见下面说明。
relabel_configs:
[ - <relabel_config> ... ]

# 数据抓取之后,通过 relabel 机制进行改写 label 对应的值,按顺序执行多个 relabel 规则。
# relabel_config 详见下面说明。
metric_relabel_configs:
[ - <relabel_config> ... ]

# 一次抓取数据点限制,0:不作限制,默认为 0
[ sample_limit: <int> | default = 0 ]

# 一次抓取 Target 限制,0:不作限制,默认为 0
[ target_limit: <int> | default = 0 ]


static_config 配置

相应配置项说明如下:
# 指定对应 target host 的值,如ip:port。
targets:
[ - '<host>' ]

# 在所有 target 上加上对应的 label,类似全局 label 的概念。
labels:
[ <labelname>: <labelvalue> ... ]
示例:
job_name: prometheus
scrape_interval: 30s
static_configs:
- targets:
- 127.0.0.1:9090

云服务器服务发现配置

注意:
云服务器服务发现配置 cvm_sd_configs 不是 Prometheus 原生配置,不支持在集成中心或集成容器服务的抓取任务中使用。目前支持在集成中心的 CVM 云服务器集成中配置使用。以下简称 CVM 服务发现。
CVM 服务发现利用腾讯云 API 自动获取 CVM 实例列表,默认使用 CVM 的私网 IP。服务发现产生以下元标签,这些标签可以在 relabel 配置中使用。
标签
说明
__meta_cvm_instance_id
实例 ID
__meta_cvm_instance_name
实例名
__meta_cvm_instance_state
实例状态
__meta_cvm_instance_type
实例机型
__meta_cvm_OS
实例操作系统
__meta_cvm_private_ip
私网 IP
__meta_cvm_public_ip
公网 IP
__meta_cvm_vpc_id
网络 ID
__meta_cvm_subnet_id
子网 ID
__meta_cvm_tag_<tagkey>
实例标签值
__meta_cvm_region
实例所在区域
__meta_cvm_zone
实例的可用区
cvm_sd_configs 配置说明
# 腾讯云的地域,地域列表见文档 https://cloud.tencent.com/document/api/213/15692#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8。
region: <string>

# 自定义 endpoint。
[ endpoint: <string> ]

# 访问腾讯云 API 的凭证信息。如果不设置,取环境变量 TENCENT_CLOUD_SECRET_ID 和 TENCENT_CLOUD_SECRET_KEY 的值。
# 如使用集成中心的 CVM 抓取任务进行配置,则无需填写。
[ secret_id: <string> ]
[ secret_key: <secret> ]

# CVM 列表的刷新周期。
[ refresh_interval: <duration> | default = 60s ]

# 抓取 metrics 的端口。
ports:
- [ <int> | default = 80 ]

# CVM 列表的过滤规则。支持的过滤条件见文档 https://cloud.tencent.com/document/api/213/15728#2.-.E8.BE.93.E5.85.A5.E5.8F.82.E6.95.B0。
filters:
[ - name: <string>
values: <string>, [...] ]

说明
使用集成中心的 CVM 云服务器配置 cvm_sd_configs 时,该集成自动使用服务预设角色授权确保安全性,无需您手动填写如下参数:secret_id、secret_key、endpoint。
CVM 云服务器集成配置示例
job_name: demo-monitor
cvm_sd_configs:
- region: ap-guangzhou
ports:
- 8080
filters:
- name: tag:service
values:
- demo
relabel_configs:
- source_labels: [__meta_cvm_instance_state]
regex: RUNNING
action: keep
- regex: __meta_cvm_tag_(.*)
replacement: $1
action: labelmap
- source_labels: [__meta_cvm_region]
target_label: region
action: replace


Pod Monitor

相应配置项说明如下:
# Prometheus Operator CRD 版本
apiVersion: monitoring.coreos.com/v1
# 对应 K8S 的资源类型,这里面 Pod Monitor
kind: PodMonitor
# 对应 K8S 的 Metadata,这里只用关心 name,如果没有指定 jobLabel,对应抓取指标 label 中 job 的值为 <namespace>/<name>
metadata:
name: redis-exporter # 填写一个唯一名称
namespace: cm-prometheus # namespace不固定,除kube-system下的任意namespace都可以
labels:
prom_id: prom-xxx
# 描述抓取目标 Pod 的选取及抓取任务的配置
spec:
# 填写对应 Pod 的 label,pod monitor 会取对应的值作为 job label 的值。
# 如果查看的是 Pod Yaml,取 pod.metadata.labels 中的值。
# 如果查看的是 Deployment/Daemonset/Statefulset,取 spec.template.metadata.labels。
[ jobLabel: string ]
# 把对应 Pod 上的 Label 添加到 Target 的 Label 中
[ podTargetLabels: []string ]
# 一次抓取数据点限制,0:不作限制,默认为 0
[ sampleLimit: uint64 ]
# 一次抓取 Target 限制,0:不作限制,默认为 0
[ targetLimit: uint64 ]
# 配置需要抓取暴露的 Prometheus HTTP 接口,可以配置多个 Endpoint
podMetricsEndpoints:
[ - <endpoint_config> ... ] # 详见下面 endpoint 说明
# 选择要监控 Pod 所在的 namespace,不填为选取所有 namespace
[ namespaceSelector: ]
# 是否选取所有 namespace
[ any: bool ]
# 需要选取 namespace 列表
[ matchNames: []string ]
# 填写要监控 Pod 的 Label 值,以定位目标 Pod [K8S metav1.LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta)
selector:
[ matchExpressions: array ]
[ example: - {key: tier, operator: In, values: [cache]} ]
[ matchLabels: object ]
[ example: k8s-app: redis-exporter ]

示例:
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: redis-exporter # 填写一个唯一名称
namespace: cm-prometheus # namespace不固定,除kube-system下的任意namespace都可以
labels:
prom_id: prom-xxx # 配置您的实例 ID
spec:
podMetricsEndpoints:
- interval: 30s
port: metric-port # 填写pod yaml中Prometheus Exporter对应的Port的Name
path: /metrics # 填写Prometheus Exporter对应的Path的值,不填默认/metrics
relabelings:
- action: replace
sourceLabels:
- instance
regex: (.*)
targetLabel: instance
replacement: 'crs-xxxxxx' # 调整成对应的 Redis 实例 ID
- action: replace
sourceLabels:
- instance
regex: (.*)
targetLabel: ip
replacement: '1.x.x.x' # 调整成对应的 Redis 实例 IP
namespaceSelector: # 选择要监控pod所在的namespace
matchNames:
- redis-test
selector: # 填写要监控pod的Label值,以定位目标pod
matchLabels:
k8s-app: redis-exporter


Service Monitor

相应配置项说明如下:

# Prometheus Operator CRD 版本
apiVersion: monitoring.coreos.com/v1
# 对应 K8S 的资源类型,这里面 Service Monitor
kind: ServiceMonitor
# 对应 K8S 的 Metadata,这里只用关心 name,如果没有指定 jobLabel,对应抓取指标 label 中 job 的值为 Service 的名称。
metadata:
name: redis-exporter # 填写一个唯一名称
namespace: cm-prometheus # namespace不固定,除kube-system下的任意namespace
labels:
prom_id: prom-xxx # 配置您的实例 ID
# 描述抓取目标 Pod 的选取及抓取任务的配置
spec:
# 填写对应 Pod 的 label(metadata/labels),service monitor 会取对应的值作为 job label 的值
[ jobLabel: string ]
# 把对应 service 上的 Label 添加到 Target 的 Label 中
[ targetLabels: []string ]
# 把对应 Pod 上的 Label 添加到 Target 的 Label 中
[ podTargetLabels: []string ]
# 一次抓取数据点限制,0:不作限制,默认为 0
[ sampleLimit: uint64 ]
# 一次抓取 Target 限制,0:不作限制,默认为 0
[ targetLimit: uint64 ]
# 配置需要抓取暴露的 Prometheus HTTP 接口,可以配置多个 Endpoint
endpoints:
[ - <endpoint_config> ... ] # 详见下面 endpoint 说明
# 选择要监控 Pod 所在的 namespace,不填为选取所有 namespace
[ namespaceSelector: ]
# 是否选取所有 namespace
[ any: bool ]
# 需要选取 namespace 列表
[ matchNames: []string ]
# 填写要监控 Pod 的 Label 值,以定位目标 Pod [K8S metav1.LabelSelector](https://v1-17.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/#labelselector-v1-meta)
selector:
[ matchExpressions: array ]
[ example: - {key: tier, operator: In, values: [cache]} ]
[ matchLabels: object ]
[ example: k8s-app: redis-exporter ]

示例:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: go-demo # 填写一个唯一名称
namespace: cm-prometheus # namespace不固定,除 kube-system 下的任意namespace
labels:
prom_id: prom-xxx # 配置您的实例 ID
spec:
endpoints:
- interval: 30s
# 填写service yaml中Prometheus Exporter对应的Port的Name
port: 8080-8080-tcp
# 填写Prometheus Exporter对应的Path的值,不填默认/metrics
path: /metrics
relabelings:
# ** 必须要有一个 label 为 application,这里假设 k8s 有一个 label 为 app,
# 我们通过 relabel 的 replace 动作把它替换成了 application
- action: replace
sourceLabels: [__meta_kubernetes_pod_label_app]
targetLabel: application
# 选择要监控service所在的namespace
namespaceSelector:
matchNames:
- golang-demo
# 填写要监控service的Label值,以定位目标service
selector:
matchLabels:
app: golang-app-demo


endpoint_config 配置

相应配置项说明如下:
# 对应 port 的名称,这里需要注意不是对应的端口,默认:80,对应的取值如下:
# ServiceMonitor: 对应 Service>spec/ports/name;
# PodMonitor: 说明如下:
# 如果查看的是 Pod Yaml,取 pod.spec.containers.ports.name 中的值。
# 如果查看的是 Deployment/Daemonset/Statefulset,取 spec.template.spec.containers.ports.name。
[ port: string | default = 80]
# 抓取任务请求 URI 路径
[ path: string | default = /metrics ]
# 抓取协议: http 或者 https
[ scheme: string | default = http]
# 抓取请求对应 URL 参数
[ params: map[string][]string]
# 抓取任务间隔的时间
[ interval: string | default = 30s ]
# 抓取任务超时
[ scrapeTimeout: string | default = 30s]
# 抓取连接是否通过 TLS 安全通道,配置对应的 TLS 参数
[ tlsConfig: TLSConfig ]
# 通过对应的文件读取 bearer token 对应的值,放到抓取任务的 header 中
[ bearerTokenFile: string ]
# 通过对应的 K8S secret key 读取对应的 bearer token,注意 secret namespace 需要和 PodMonitor/ServiceMonitor 相同
[ bearerTokenSecret: string ]
# 解决当抓取的 label 与后端 Prometheus 添加 label 冲突时的处理。
# true: 保留抓取到的 label,忽略与后端 Prometheus 冲突的 label;
# false: 对冲突的 label,把抓取的 label 前加上 exported_<original-label>,添加后端 Prometheus 增加的 label;
[ honorLabels: bool | default = false ]
# 是否使用抓取到 target 上产生的时间。
# true: 如果 target 中有时间,使用 target 上的时间;
# false: 直接忽略 target 上的时间;
[ honorTimestamps: bool | default = true ]
# basic auth 的认证信息,username/password 填写对应 K8S secret key 的值,注意 secret namespace 需要和 PodMonitor/ServiceMonitor 相同。
[ basicAuth: BasicAuth ]
# 通过代理服务来抓取 target 上的指标,填写对应的代理服务地址。
[ proxyUrl: string ]
# 在抓取数据之前,把 target 上对应的 label 通过 relabel 的机制进行改写,按顺序执行多个 relabel 规则。
# relabel_config 详见下面说明。
relabelings:
# 数据抓取完成之后写入之前,通过 relabel 机制进行改写 label 对应的值,按顺序执行多个 relabel 规则。
# relabel_config 详见下面说明。
metricRelabelings:


relabel_config/relabelings 配置

相应配置项说明如下:

# 从原始 labels 中取哪些 label 的值进行 relabel,取出来的值通过 separator 中的定义进行字符拼接。
# 如果是 PodMonitor/ServiceMonitor/Probe 对应的配置项为 sourceLabels 。
[ source_labels: '[' <labelname> [, ...] ']' ]
# 定义需要 relabel 的 label 值拼接的字符,默认为 ';'。
[ separator: <string> | default = ; ]

# action 为 replace/hashmod 时,通过 target_label 来指定对应 label name。
# 如果是 PodMonitor/ServiceMonitor/Probe 对应的配置项为 targetLabel 。
[ target_label: <labelname> ]

# 需要对 source labels 对应值进行正则匹配的表达式。
[ regex: <regex> | default = (.*) ]

# action 为 hashmod 时用到,根据 source label 对应值 md5 取模值。
[ modulus: <int> ]

# action 为 replace 的时候,通过 replacement 来定义当 regex 匹配之后需要替换的表达式,可以结合 regex 正规则表达式替换。
[ replacement: <string> | default = $1 ]

# 基于 regex 匹配到的值进行相关的操作,对应的 action 如下,默认为 replace:
# replace: 如果 regex 匹配到,通过 replacement 中定义的值替换相应的值,并通过 target_label 设置并添加相应的 label
# keep: 如果 regex 没有匹配到,丢弃
# drop: 如果 regex 匹配到,丢弃
# hashmod: 通过 modulus 指定的值把 source label 对应的 md5 值取模,添加一个新的 label,label name 通过 target_label 指定
# labelmap: 如果 regex 匹配到,使用 replacement 替换对应的 label name
# labeldrop: 如果 regex 匹配到,删除对应的 label
# labelkeep: 如果 regex 没有匹配到,删除对应的 label
[ action: <relabel_action> | default = replace ]


Probe

相应配置项说明如下:
# Prometheus Operator CRD 版本
apiVersion: monitoring.coreos.com/v1
# 对应 K8S 的资源类型,本类型为 Probe
kind: Probe
# 对应 K8S 的 Metadata
metadata:
name: test-blackbox-exporter # 填写一个唯一名称
namespace: cm-prometheus # namespace不固定,除kube-system下的任意namespace
labels:
prom_id: prom-xxx # 配置您的实例 ID
# 描述探测目标的选取及探测请求配置
spec:
# Probe 会取对应的值作为 job label 的值,如果没有指定 jobName,对应抓取指标 label 中 job 的值为 probe/<namespace>/<name>
[ jobName: string ]
# 抓取任务时间间隔
[ interval: uint64 ]
# 抓取任务超时时间
[ scrapeTimeout: uint64 ]
# 一次抓取数据点限制,0:不作限制,默认为 0
[ sampleLimit: uint64 ]
# 一次抓取 Target 限制,0:不作限制,默认为 0
[ targetLimit: uint64 ]
# 探测目标的方式
[ module: string ]
# 要探测的静态目标或者动态发现目标
targets:
# 探测目标的静态目标集合
[ staticConfig: ]
# 探测目标的静态地址集合
[ static: []string ]
# 在所有 target 上加上对应的 label,类似全局 label 的概念
[ labels: map[string][]string ]
# 在抓取数据之前,把 target 上对应的 label 通过 relabel 的机制进行改写,按顺序执行多个 relabel 规则
[ relabelingConfigs: ]
# relabel_config 详见上面说明
[ - <static_config> ... ]
# 探测目标的 Ingress 对象集合,如果同时配置了 staticConfig 则 staticConfig 优先
[ ingress: ]
# 填写探测目标的 Label 值,以定位目标 Pod [K8S metav1.LabelSelector](https://v1-17.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/#labelselector-v1-meta)
[ selector: ]
[ matchExpressions: array ]
[ example: - {key: tier, operator: In, values: [cache]} ]
[ matchLabels: object ]
[ example: k8s-app: redis-exporter ]
# 选择探测目标所在的 namespace,不填为选取所有 namespace
[ namespaceSelector: ]
# 是否选取所有 namespace
[ any: bool ]
# 需要选取 namespace 列表
[ matchNames: []string ]
# 在抓取数据之前,把 target 上对应的 label 通过 relabel 的机制进行改写,按顺序执行多个 relabel 规则
[ relabelingConfigs: ]
# relabel_config 详见上面说明
[ - <relabel_config> ... ]
# 探针的探测请求规则
prober:
# 探针服务地址
url: string
# 探针服务指标路径,默认为 /probe
[ path: string ]
# 探针服务请求协议,默认为 http
[ scheme: string ]
# 代理地址
[ proxyUrl: string ]
# 数据抓取之后,通过 relabel 机制进行改写 label 对应的值,按顺序执行多个 relabel 规则
[ metricRelabelings: ]
# relabel_config 详见上面说明
[ - <relabel_config> ... ]
示例:
apiVersion: monitoring.coreos.com/v1
kind: Probe
metadata:
name: test
namespace: test
spec:
# 监控配置对应的job名称
jobName: probe-job
interval: 15s
scrapeTimeout: 10s
# 在指标样本被采集到监控系统之前,对指标样本进行预处理
metricRelabelings:
- sourceLabels:
- pod_name
separator: ;
regex: (.+)
targetLabel: pod
replacement: $1
action: replace
# 要探测的目标
targets:
# 探测目标静态地址
staticConfig:
static:
- 192.168.1.100:9100
# 探针的探测请求规则
prober:
# 探针服务的地址(blackbox-exporter服务地址)
url: test-blackbox-exporter.default.svc.cluster.local:8180
# 探针服务指标路径
path: /metrics
# 探针服务请求协议
scheme: http


PrometheusRule

PrometheusRule 是 Prometheus Operator 提供的 CRD 资源,用于以声明式方式管理告警规则(Alerting Rules)和预聚合规则(Recording Rules)。通过 PrometheusRule,用户可以将告警规则作为 Kubernetes 资源进行版本管理、自动加载和动态更新,无需手动修改 Prometheus 配置文件。
注意:
必须放在<实例 ID>这个 namespace 下。
通过 CRD 创建的告警/预聚合规则无法在控制台修改。
相应配置项说明如下:
# Prometheus Operator CRD 版本
apiVersion: monitoring.coreos.com/v1
# 对应 K8S 的资源类型,本类型为 PrometheusRule
kind: PrometheusRule
# 对应 K8S 的 Metadata
metadata:
annotations:
prometheus.tke.tencent.cloud.com/notice-id: <notice-id>
prometheus.tke.tencent.cloud.com/notice-repeat-interval: <convergence-interval>
name: example-alert-rules # 填写一个唯一名称
namespace: prom-xxxxx # 必须放在<实例 ID>这个 namespace 下,告警/预聚合规则才能生效
# 告警规则与记录规则的定义
spec:
# 规则组列表,每个组包含一组相关的规则
groups:
- # 规则组名称,同一 PrometheusRule 中不可重复
name: <string>
# 规则组的评估间隔,即每隔多长时间评估一次组内的所有规则
[ interval: <duration> | default = 全局评估间隔 ]
# 规则列表,包含告警规则和/或记录规则
rules:
# ---- 告警规则 ----
- # 告警名称,同一组内不可重复
alert: <string>
# PromQL 表达式,当查询结果非空时触发告警
expr: <string>
# 持续时间,表达式持续满足该时间后才真正触发告警,用于避免瞬时抖动产生误告警
[ for: <duration> | default = 0s ]
# 告警附加标签,会合并到告警实例的 labels 中,常用于标记 severity 等级
# 说明:labels._interval_ 对应页面上的收敛时间
[ labels: ]
[ <labelname>: <labelvalue> ... ]
# 告警注解信息,用于描述告警详情,支持模板变量 {{ $labels.<labelname> }} 和 {{ $value }}
# 说明:annotations.description 对应页面展示的告警内容(Description);annotations.summary 对应告警对象(Summary)
[ annotations: ]
[ <labelname>: <labelvalue> ... ]
# ---- 记录规则 ----
- # 新指标名称,将 expr 的计算结果保存为该指标
record: <string>
# PromQL 表达式
expr: <string>
# 记录规则附加标签
[ labels: ]
[ <labelname>: <labelvalue> ... ]
示例:
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
annotations:
prometheus.tke.tencent.cloud.com/notice-id: notice-abcd
prometheus.tke.tencent.cloud.com/notice-repeat-interval: 30m
name: node-load-alert
namespace: prom-8xpa3dzm
spec:
groups:
- name: node-load
rules:
- alert: NodeLoadLow
annotations:
description: node_load1 is {{ $value }} (below 10) for more than 5 minutes.
summary: Low load on {{ $labels.instance }}
expr: node_load1 < 10
for: 5m
labels:
severity: warning

PrometheusRule 中特殊 Annotations 说明

prometheus.tke.tencent.cloud.com/notice-id:告警规则绑定的通知 id,多个通知 id 用,隔开,最多只能配置3个。可以在 腾讯云控制台 查看通知 id。
prometheus.tke.tencent.cloud.com/notice-repeat-interval:告警通知收敛间隔,可用值只有5m, 10m, 15m, 30m, 60m,1h, 2h, 3h, 6h, 12h, 24h。如果不配置默认值是1h。

告警规则常用字段说明

annotations.summary:对应页面展示中的告警对象(Summary)。
annotations.description:对应页面展示的告警内容(Description),支持使用模板变量 {{ $labels.instance }}、{{ $value }} 等动态填充具体信息。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈