ChatOps

规则管理

介绍如何创建和管理 Oncall 内容识别规则

通过规则管理界面,您可以创建、编辑和管理用于群聊内容识别的规则。每个规则定义了特定的识别条件和告警策略,帮助团队及时发现重要信息。

访问规则管理

导航至:ChatOps内容识别规则

或直接访问:/oncall/config?botId=<your_bot_id>

创建新规则

步骤 1:选择规则类型

点击右上角的**"新增规则"**按钮,打开创建表单。

行为类别 (Action Category)

  • 检测(Detect):满足条件时产生告警
    • 用于主动发现问题和异常情况
    • 示例:服务故障、客情风险、异常行为
  • 过滤(Filter):满足条件时抑制告警
    • 用于减少误报和告警疲劳
    • 示例:测试环境问题、已知维护窗口

检测类别 (Inspect Category)

  • 语义分析(Semantic)
    • 基于 LLM 的智能语义理解
    • 适合复杂场景和多样化表达
    • 需要提供正面示例或反面示例
  • 正则表达式(RE)
    • 精确匹配特定模式
    • 适合结构化内容和关键词识别
    • 需要提供正则表达式
重要:创建后类别不可修改,请谨慎选择!

步骤 2:填写基本信息

字段必填说明示例
规则名称规则的唯一标识(同一机器人下不重复)"生产环境服务故障"
描述详细说明识别目标和使用场景"识别生产环境的严重服务故障,包括服务不可用、大量错误、性能严重下降"

步骤 3:配置告警策略

字段必填说明格式示例
告警等级告警优先级P0 / P1 / P2P0(最高优先级)
告警抑制间隔同一群聊内的告警间隔6h, 30m, 1d, 1w6h(推荐)
检测窗口需要分析的历史消息数量0-N(0表示所有)1(仅最新消息)
是否启用-规则启用状态启用/停用启用
告警抑制间隔格式
  • 6h - 6小时
  • 30m - 30分钟
  • 1d - 1天
  • 1w - 1周
  • 1d12h - 1天12小时

步骤 4:配置识别条件

语义分析模式

需要提供 Few-shot Learning 示例,帮助模型理解识别标准:

正面示例(应该被检测到的消息):

  • 至少提供 3-5 个示例
  • 覆盖不同的表达方式
  • 每行一个示例

反面示例(不应该被检测到的消息):

  • 提供 3-5 个反面示例
  • 明确区分边界情况
  • 减少误报和漏报

正则表达式模式

提供正则表达式进行精确匹配:

常用模式

  • ^svip.* - 匹配以 svip 开头的内容
  • (SVIP|VIP) - 匹配 SVIP 或 VIP
  • (\[ALERT\]|\[CRITICAL\]) - 匹配告警关键词
建议使用在线工具(如 regex101.com)测试正则表达式

步骤 5:提交创建

点击**"立即创建"**按钮提交规则。创建成功后:

  • 规则立即生效(如果启用)
  • 表格自动刷新显示新规则
  • 可以继续创建更多规则

编辑规则

打开编辑表单

在规则列表中,点击规则行的**"编辑"**按钮。

可编辑字段

编辑模式下可以修改以下字段:

  • ✅ 规则名称
  • ✅ 描述
  • ✅ 告警等级
  • ✅ 告警抑制间隔
  • ✅ 检测窗口
  • ✅ 是否启用
  • ✅ 识别条件(正面/反面示例或正则表达式)

只读字段

以下字段创建后不可修改:

  • ❌ 行为类别(Detect/Filter)
  • ❌ 检测类别(Semantic/RE)

保存修改

点击**"保存修改"**按钮提交更改。保存成功后表格自动刷新。

管理规则

查看规则详情

点击规则行的**"查看详情"**按钮,可以查看规则的完整配置信息。

启用/停用规则

使用规则列表中的开关按钮快速切换规则状态:

  • 启用:规则生效,开始检测群聊消息
  • 停用:规则暂停,不进行检测
停用的规则仍然保留在列表中,可以随时重新启用

规则列表筛选

使用页面顶部的筛选器快速定位规则:

  • 选择机器人:切换不同机器人的规则
  • 默认显示第一个机器人的规则

场景示例

示例 1:服务故障检测

规则类型

  • 行为类别:检测(Detect)
  • 检测类别:语义分析(Semantic)

基本信息

  • 规则名称:生产环境服务故障
  • 描述:识别生产环境的严重服务故障,包括服务不可用、大量错误、性能严重下降

告警配置

  • 告警等级:P0
  • 告警抑制间隔:6h
  • 检测窗口:1

识别条件(正面示例)

  • "生产API服务挂了,大量502错误"
  • "数据库响应时间从100ms激增到10秒"
  • "订单服务完全不可用,错误率100%"

识别条件(反面示例)

  • "开发环境测试出现了一些错误"
  • "昨天修复的小bug"
  • "性能还有优化空间"

示例 2:VIP 客户识别

规则类型

  • 行为类别:检测(Detect)
  • 检测类别:正则表达式(RE)

基本信息

  • 规则名称:VIP客户请求识别
  • 描述:识别VIP或SVIP客户的请求

告警配置

  • 告警等级:P1
  • 告警抑制间隔:2h
  • 检测窗口:5

识别条件(正则表达式)

^svip.*|(SVIP|VIP)客户

示例 3:测试环境过滤

规则类型

  • 行为类别:过滤(Filter)
  • 检测类别:语义分析(Semantic)

基本信息

  • 规则名称:测试环境问题过滤
  • 描述:过滤测试环境的问题,避免干扰生产告警

告警配置

  • 告警等级:P2
  • 告警抑制间隔:1d
  • 检测窗口:3

识别条件(正面示例)

  • "测试环境出现问题"
  • "开发环境报错"
  • "预发布环境异常"

识别条件(反面示例)

  • "生产环境故障"
  • "线上服务不可用"

最佳实践

规则命名建议

  • 使用描述性名称,清晰表达识别目标
  • 例如:"生产环境服务故障"、"VIP客户请求识别"
  • 避免:""规则1"、"test"

示例数量建议

  • 正面示例:建议 3-5 个
  • 反面示例:建议 3-5 个
  • 覆盖不同表达方式,提升识别准确率

检测窗口设置

  • 设置为 1:仅分析最新消息(推荐用于实时告警)
  • 设置为 5-10:分析最近几条消息,理解上下文(推荐用于趋势分析)
  • 设置为 0:分析所有历史消息(慎用,影响性能)

告警抑制间隔

  • 根据业务重要性设置合理间隔
  • P0 级别:建议 2-6 小时
  • P1 级别:建议 6-12 小时
  • P2 级别:建议 12-24 小时

常见问题

Q: 为什么创建后规则类别不能修改?

A: 规则类别决定了规则的基本行为和识别方式,修改会导致规则逻辑完全改变。建议创建新规则而不是修改类别。

Q: 正面示例和反面示例如何选择?

A:

  • 正面示例:提供应该被检测到的真实消息案例
  • 反面示例:提供容易混淆但不应该被检测的消息案例
  • 明确边界可以显著提高识别准确率

Q: 告警抑制间隔如何生效?

A: 在同一个群聊中,如果上次告警距今未超过抑制间隔,则不会重复发送告警。不同群聊的告警独立计算。

Q: 检测窗口设置为 0 会有什么影响?

A: 设置为 0 会分析群聊的所有历史消息,可能影响检测性能。建议根据实际需求设置合理的消息数量(如 1-10)。

相关链接