Skip to content

关于本页

本页介绍更夫所基于的开源内核 Keep 的通用能力。更夫在其上提供国内化增强:钉钉/企业微信/飞书通知、国产大模型接入、LDAP 认证与值班管理。部署与上手请看快速上手。

本示例演示了基于指标的简单 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

基于 MIT 协议开源的 Keep · 由更夫社区维护