本示例演示了基于指标的简单 CPU 使用率多告警:
yaml
workflow:
# 此工作流的唯一标识符
id: query-victoriametrics-multi
# UI 中显示的名称
name: victoriametrics-multi-alert-example
# 此工作流功能的简要描述
description: victoriametrics
triggers:
# 此工作流可从 UI 手动触发
- type: manual
steps:
# 查询 VictoriaMetrics 的 CPU 指标
- name: victoriametrics-step
provider:
# 使用 VictoriaMetrics 提供者配置
config: "{{ providers.vm }}"
type: victoriametrics
with:
# 返回每个 job 的 CPU 使用率总和的查询
# 示例响应:
# [
# {'metric': {'job': 'victoriametrics'}, 'value': [1737808021, '0.022633333333333307']},
# {'metric': {'job': 'vmagent'}, 'value': [1737808021, '0.009299999999999998']}
# ]
query: sum(rate(process_cpu_seconds_total)) by (job)
queryType: query
actions:
# 基于查询结果在 Keep 中创建告警
- name: create-alert
provider:
type: keep
with:
# 仅在 CPU 使用率超过阈值时创建告警
if: "{{ value.1 }} > 0.01 "
# 告警必须持续 1 分钟
for: 1m
# 使用 job 标签为每个告警创建唯一指纹
fingerprint_fields:
- labels.job
alert:
# 告警名称包含特定 job
name: "High CPU Usage on {{ metric.job }}"
description: "CPU usage is high on the VM (created from VM metric)"
# 根据 CPU 使用率阈值设置严重程度:
# > 0.9 = critical
# > 0.7 = warning
# else = info
severity: '{{ value.1 }} > 0.9 ? "critical" : {{ value.1 }} > 0.7 ? "warning" : "info"'
labels:
# job 标签是告警指纹所必需的
job: "{{ metric.job }}"
# 附加上下文标签
environment: production
app: myapp
service: api
team: devops
owner: alice