跳转至

自定义标签


为何引入自定义标签

在智能告警平台平台,我们对已接入的数十种集成做了标准化数据处理,使得用户能够简单直接的看到对应字段的内容,但随着接入的集成数量不断增加,我们逐渐发现我们现有的标准化格式对于当下的场景并不能完全满足。

于是我们推出了自定义标签功能,对接入的所有集成都做了适配,您所配置的自定义标签会被应用在智能告警平台的多个功能模块:分派策略、压缩策略、屏蔽规则、匹配规则、通知模版等等功能板块。


如何配置自定义标签

  1. 首先进入 CA,点击配置 - 自定义标签
  2. 单击新建按钮,打开新建数据标签页面

  3. 选择标签级别,支持 全局分类级应用级 三种级别选择,此时可在右侧看到所选标签级别下对应告警的原始数据格式

    • 全局:所有接入的数据都加上此类标签;

    • 分类级:指定类型的接入都加上此标签,例如标签类别是 zabbix,那么 zabbix 的接入都加上此标签;

    • 应用级:指定应用加上此标签,例如 zabbix 接入配置了 zabbix1 和 zabbix2,数据标签指定为 zabbix1 的标签,那么只针对 zabbix1 的接入加上此标签即可。

  4. 单击右侧告警原始数据中的**key值**来快速生成json表达式,也可以在左侧手动填入json表达式

  5. 输入标签value值,该value值为对应json表达式解析不到对应值时使用的默认值,选填

  6. 输入标签说明:标签说明即为对应 key 的中文释义,可自定义填写,必填
  7. 点击加号可批量添加多个自定义标签
  8. 单击保存 经过优化后,定义自定义标签增加了自解析功能,可以针对同一个数据标签做多种取值方式

定义标签表达式

  • 所有值:取key值所对应的value

  • 取标志之间:取取key值所对应的value中标志位之间的值

  • 取标志之前:取取key值所对应的value中标志位之前的值

  • 取标志之后:取取key值所对应的value中标志位之后的值

  • 正则表达式:取取key值所对应的value,按照正则表达式规则取值

  • 默认值:用户手动输入的值

  • 所有值/默认值:兼容历史数据的形式

自定义标签取值表达式

  • 键定位: 使用键名来指定JSON对象中的字段或属性。例如{ "name": "John", "age": 30, "address": { "city": "New York", "zip": "10001" } }要定位到name字段,JSON路径表达式是.name。要定位到city字段,JSON路径表达式是.address.city。

  • 通配符(*): 使用通配符*来匹配所有键。例如,$.address.*将匹配city和zip字段。

  • 数组索引: 如果JSON中包含数组,可以使用数组索引来访问特定元素。索引从0开始。例如,对于以下JSON数据:{ "users": [ {"name": "Alice", "age": 25}, {"name": "Bob", "age": 30} ] }要访问第一个用户的姓名,JSON路径表达式是$.users[0].name。

  • 递归下降(..): 使用..来表示递归下降,即在JSON数据的任何深度中搜索。例如,$..name将返回所有具有name键的值,无论其在JSON结构的哪个层级。

  • 条件筛选: 使用方括号[]进行条件筛选。例如,要选择年龄大于25的用户,JSON路径表达式是$.users[?(@.age > 25)]

  • 多个条件: 可以通过逻辑运算符&&、||和!来组合多个条件。例如,$.users[?(@.age > 25 && @.age < 40)]选择年龄在25到40之间的用户

  • 带有正则表达式的筛选: 可以使用正则表达式来进行匹配筛选。例如,$.users[?(@.name =~ /Joh?n/i)]将匹配名字是"John"或"Jon"的用户

  • 切片: 使用切片来选择数组中的一部分元素。切片由冒号:分隔的开始索引、结束索引和步长组成。例如,$.users[0:2]选择数组中的前两个元素。


如何手动填写json表达式

  1. 示例数据如图所示
  2. 如该标签想要取到content下全部内容,则json表达式:$.content
  3. 如该标签想要取到text下全部内容,则json表达式:$.content.text
  4. 如该标签想要取到annotations下全部内容,由于alerts下是一个数组,则json表达式:$.content.text.alerts[0].annotations

为什么有些标签不可删除

  • 在列表中展示的无法操作的自定义标签为系统内置标签

  • 新建自定义标签所使用的"key"不能和系统内置标签的"key"相同

数据标签 value 在什么情况下会取默认值

  • 当对应的告警信息没有携带所指定key标签的数据时,value取所设置的默认值

  • 只要告警信息携带这个标签,即使标签内value为 空字符串/null,value也会取 空字符串/null。

如何查看自定义标签内容

在告警列表页以及告警信息详情页可进行查看

如何使用自定义标签

首先在自定义标签处配置好相关应用的自定义标签

自定义压缩

  1. 先设置降噪名称,优先级,选择生效应用
  2. 在设置压缩条件时,就可以勾选刚刚配置好的自定义标签,来进行更灵活的规则配置

有关自定义压缩的更多内容,请查看我们有关自定义压缩 的文章

分派策略

  1. 先设置分派名称,选择生效应用
  2. 在设置分派条件时,就可以勾选刚刚配置好的自定义标签,来进行更灵活的规则配置

有关分派策略的更多内容,请查看我们有关分派策略 的文章

屏蔽规则配置

  1. 先设置屏蔽规则名称,选择生效应用
  2. 在设置屏蔽条件时,就可以勾选刚刚配置好的自定义标签,来进行更灵活的规则配置

有关屏蔽规则的更多内容,请查看我们有关集成维护 的文章

JIRA 配置

  1. 先设置工单规则名称,优先级,选择生效应用
  2. 在设置触发工单规则条件时,就可以勾选刚刚配置好的自定义标签,来进行更灵活的规则配置

有关 JIRA 工单规则的更多内容,请查看我们有关JIRA 配置 的文章

自定义通知模版

在自定义通知模版界面可以调用自定义标签中配置好的标签

暂时只能够调用全局级的自定义标签,优化后可调用分类级和应用级的标签,自定义通知模版2.0预计十月份上线,


自定义标签功能,还在持续优化中,如果您有疑问或者建议,欢迎联系我们