创建一个监控器¶
POST /api/v1/checker/add
概述¶
创建一个监控器
Body 请求参数¶
参数名 | 类型 | 必选 | 说明 |
---|---|---|---|
type | string | 监控器类型, 默认trigger, trigger:普通监控器, smartMonitor 为智能监控 允许为空: False 例子: smartMonitor |
|
extend | json | 额外信息 允许为空: True |
|
monitorUUID | string | 分组id 允许为空: True 允许为空字符串: True |
|
alertPolicyUUIDs | array | 告警策略UUID 允许为空: False |
|
dashboardUUID | string | 关联仪表板id 允许为空: False |
|
tags | array | 用于筛选的标签名称 允许为空: False 例子: ['xx', 'yy'] |
|
secret | string | Webhook地址的中段唯一标识secret(一般取随机uuid, 确保工作空间内唯一) 允许为空: False 例子: secret_xxxxx |
|
jsonScript | json | 规则配置 允许为空: False |
|
jsonScript.type | string | Y | 检查方法类型 例子: simpleCheck 允许为空: False |
jsonScript.windowDql | string | window dql 允许为空: False |
|
jsonScript.title | string | Y | 生成event的标题 例子: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 允许为空: False 允许为空字符串: True 最大长度: 256 |
jsonScript.message | string | event内容 例子: status: {{status}}, title: {{title}} 允许为空: False 允许为空字符串: True |
|
jsonScript.recoverTitle | string | 输出恢复事件标题模板 例子: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 允许为空: False 允许为空字符串: True |
|
jsonScript.recoverMessage | string | 输出恢复事件信息模板 例子: status: {{status}}, title: {{title}} 允许为空: False 允许为空字符串: True |
|
jsonScript.noDataTitle | string | 输出无数据事件标题模板 例子: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 允许为空: False 允许为空字符串: True |
|
jsonScript.noDataMessage | string | 输出无数据事件信息模板 例子: status: {{status}}, title: {{title}} 允许为空: False 允许为空字符串: True |
|
jsonScript.openNotificationMessage | boolean | 是否开启, 事件 通知内容, 默认 不开启(使用事件内容作为通知内容) 例子: False 允许为空: False |
|
jsonScript.notificationMessage | string | 事件 通知内容 例子: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 允许为空: False 允许为空字符串: True |
|
jsonScript.openNoDataNotificationMessage | boolean | 是否开启, 数据断档事件 通知内容, 默认 不开启(使用数据断档事件内容作为通知内容) 例子: False 允许为空: False |
|
jsonScript.noDataNotificationMessage | string | 数据断档事件 通知内容 例子: status: {{status}}, title: {{title}} 允许为空: False 允许为空字符串: True |
|
jsonScript.noDataRecoverTitle | string | 输出无数据恢复上传事件标题模板 例子: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 允许为空: False 允许为空字符串: True |
|
jsonScript.noDataRecoverMessage | string | 输出无数据恢复上传事件信息模板 例子: status: {{status}}, title: {{title}} 允许为空: False 允许为空字符串: True |
|
jsonScript.every | string | 检查频率 例子: 1m 允许为空: False |
|
jsonScript.customCrontab | string | 自定义检测频率 例子: 0 */12 * * * 允许为空: False |
|
jsonScript.interval | integer | 查询区间,即一次查询的时间范围时差 例子: 60 允许为空: False |
|
jsonScript.range | integer | 针对高级检测,突变检测的range参数,单位s 例子: 3600 允许为空: False |
|
jsonScript.range_2 | integer | 针对高级检测,突变检测的range_2参数,单位s,特殊说明 (-1代表环比, 0代表使用 periodBefore字段) 例子: 600 允许为空: False |
|
jsonScript.periodBefore | integer | 针对高级检测,突变检测的(昨日/一小时前)参数,单位s 例子: 600 允许为空: False |
|
jsonScript.recoverNeedPeriodCount | integer | 指定异常在几个检查周期之后生成恢复事件,如果 检测频率为 自定义customCrontab, 该字段表示为时间长度, 单位s, 否则,表示几个检测频率 例子: 60 允许为空: False |
|
jsonScript.noDataInterval | integer | 多长时间内无数据则产生无数据事件 例子: 60 允许为空: False |
|
jsonScript.noDataAction | string | 无数据处理操作 允许为空: False 可选值: ['none', 'checkAs0', 'noDataEvent', 'criticalEvent', 'errorEvent', 'warningEvent', 'okEvent', 'noData', 'recover'] |
|
jsonScript.checkFuncs | array | 检查函数信息列表 例子: [{'funcId': 'xxx', 'kwargs': {}}] 允许为空: False |
|
jsonScript.groupBy | array | 触发维度 例子: ['性别'] 允许为空: False |
|
jsonScript.targets | array | 检查目标 例子: [{'dql': 'M:: 士兵信息 :(AVG(潜力值 )) [::auto] by 性别 ', 'alias': 'M1'}] 允许为空: False |
|
jsonScript.checkerOpt | json | 检查条件设置 允许为空: False |
|
jsonScript.checkerOpt.rules | array | 触发条件列表 例子: [{'status': 'warning', 'conditions': [{'operands': [60], 'operator': '>', 'alias': 'M1'}], 'conditionLogic': 'and', 'matchTimes': 10}] 允许为空: False |
|
jsonScript.checkerOpt.openMatchTimes | boolean | 开启连续触发判断, 默认 关闭false 例子: True |
|
jsonScript.checkerOpt.infoEvent | boolean | 是否在持续正常时产生info事,默认false 例子: True |
|
jsonScript.checkerOpt.diffMode | string | 高级检测中突变检测的,差值模式,枚举值, value, percent 例子: value 可选值: ['value', 'percent'] |
|
jsonScript.checkerOpt.direction | string | 高级检测中突变检测,区间检测的触发条件方向 例子: up 可选值: ['up', 'down', 'both'] |
|
jsonScript.checkerOpt.eps | float | 距离参数,取值范围:0 ~ 3.0 例子: 0.5 |
|
jsonScript.checkerOpt.threshold | json | 突变检测的触发前提条件设置 允许为空: False |
|
jsonScript.checkerOpt.threshold.status | boolean | Y | 突变检测, 触发前提条件是否开启, 例子: True |
jsonScript.checkerOpt.threshold.operator | string | Y | 突变检测, 触发前提条件操作符 例子: |
jsonScript.checkerOpt.threshold.value | float | Y | 突变检测, 触发前提条件检测值 例子: 90 允许为空: True |
jsonScript.checkerOpt.combineExpr | string | 组合监控, 组合方式 例子: A && B 允许为空字符串: False |
|
jsonScript.checkerOpt.ignoreNodata | boolean | 组合监控, 是否忽略无数据结果(true 表示需要忽略), 例子: True |
|
jsonScript.checkerOpt.confidenceInterval | integer | 区间检测V2新增参数, 置信区间范围取值1-100, 例子: 10 |
|
jsonScript.channels | array | 频道UUID列表 例子: ['名称1', '名称2'] 允许为空: False |
|
jsonScript.atAccounts | array | 正常检测下被@的账号UUID列表 例子: ['xx1', 'xx2'] 允许为空: False |
|
jsonScript.atNoDataAccounts | array | 无数据情况下被@的账号UUID列表 例子: ['xx1', 'xx2'] 允许为空: False |
|
jsonScript.subUri | string | 表示Webhook地址的地址后缀(根据用户业务侧需求可选设置,无特殊限制) 例子: datakit/push 允许为空: False |
|
jsonScript.disableCheckEndTime | boolean | 是否禁用结束时间限制 例子: True 允许为空: False |
|
openPermissionSet | boolean | 开启 自定义权限配置, (默认 false:不开启), 开启后 该规则的操作权限根据 permissionSet 允许为空: False |
|
permissionSet | array | 操作权限配置, 可配置(角色(除拥有者), 成员uuid, 团队uuid) 例子: ['wsAdmin', 'acnt_xxxx', 'group_yyyy'] 允许为空: False |
参数补充说明¶
数据说明.
jsonScript 参数说明
1. 检查类型jsonScript.type
说明
key | 说明 |
---|---|
simpleCheck | 阈值检测 |
seniorMutationsCheck | 突变检测 |
seniorRangeCheck | 区间检测 |
seniorRangeV2Check | 区间检测V2 |
outlierCheck | 离群检测 |
loggingCheck | 日志检测 |
processCheck | 进程异常检测 |
objectSurvivalCheck | 基础设施存活检测 |
objectSurvivalV2Check | 基础设施存活检测V2, 只支持doris空间 |
apmCheck | 应用性能指标检测 |
rumCheck | 用户访问指标检测 |
securityCheck | 安全巡检异常检测 |
cloudDialCheck | 可用性数据检测 |
networkCheck | 网络数据检测 |
OuterEventChecker | 外部事件检测 |
smartHostCheck | 智能监控, 主机智能检测 |
smartLogCheck | 智能监控, 日志智能检测 |
smartApmCheck | 智能监控, 应用智能检测 |
smartRumCheck | 智能监控, 用户访问智能检测 |
smartKubeCheck | 智能监控, Kubernetes 智能检测 |
smartCloudBillingCheck | 智能监控, 云账单智能检测 |
combinedCheck | 组合监控 |
2. 已下线的检查类型jsonScript.type
说明
key | 说明 |
---|---|
seniorCheck | 高级检查,已下线 |
mutationsCheck | 突变检查,已下线, 更新为 seniorMutationsCheck |
waterLevelCheck | 水位检查,已下线 |
rangeCheck | 区间检查,已下线, 更新为 seniorRangeCheck |
3. **触发条件比较操作符说明(checkerOpt
.rules
中的参数说明)
参数名 | type | 必选 | 说明 |
---|---|---|---|
conditions | Array[Dict] | 必须 | 条件 |
conditions[#].alias | String | 必须 | 检测对象别名,即上述 targets[#].alias |
conditions[#].operator | String | 必须 | 操作符。 = , > , < 等 |
conditions[#].operands | Array[Any] | 必须 | 操作数数组。( between , in 等操作符需要多个操作数) |
conditionLogic | string | 必须 | 条件中间逻辑。 and , or |
status | string | 必须 | 满⾜条件时,输出 event 的 status 。取值与 event 的 status 相同 |
direction | string | 【区间/水位/突变参数】检测方向,取值:"up", "down", "both" | |
periodNum | integer | 【区间/水位/突变参数】只检测最近的数据点数量 | |
checkPercent | integer | 【区间参数】 异常百分比阈值,取值:1 ~ 100 | |
checkCount | integer | 【水位/突变参数】连续异常点数量 | |
strength | integer | 【水位/突变参数】检测强度,取值:1=弱,2=中,3=强 | |
matchTimes | integer | 开启连续触发配置的(checkerOpt.openMatchTimes) 连续触发配置的次数 [1,10] |
4.简单/日志/水位/突变/区间检查 jsonScript.type
in (simpleCheck
, loggingCheck
, waterLevelCheck
, mutationsCheck
, rangeCheck
, securityCheck
)参数信息
参数名 | type | 必选 | 说明 |
---|---|---|---|
title | string | Y | 输出故障事件标题模板 |
message | string | N | 输出故障事件信息模板 |
recoverTitle | string | N | 输出恢复事件标题模板 |
recoverMessage | string | N | 输出恢复事件信息模板 |
noDataTitle | string | N | 输出无数据事件标题模板 |
noDataMessage | string | N | 输出无数据事件信息模板 |
noDataRecoverTitle | string | N | 输出无数据恢复上传事件标题模板 |
noDataRecoverMessage | string | N | 输出无数据恢复上传事件信息模板 |
openNotificationMessage | boolean | N | 是否开启, 事件 通知内容 |
notificationMessage | string | N | 事件 通知内容 |
openNoDataNotificationMessage | string | N | 是否开启, 数据断档事件 通知内容 |
noDataNotificationMessage | string | N | 数据断档事件 通知内容 |
name | string | Y | 规则名 |
type | string | Y | 规则类型 |
every | string | Y | 检查频率, 单位是 (1m/1h/1d) |
customCrontab | string | N | 自定义检查频率的crontab |
interval | integer | Y | 数据时间范围的时差,即time_range的时差, 单位:秒 |
recoverNeedPeriodCount | integer | Y | 超过指定检查周期次数之后生成恢复事件,如果 检测频率为 自定义customCrontab, 该字段表示为时间长度, 单位s, 否则,表示几个检测频率 |
noDataInterval | integer | N | 多长时间内无数据则产生无数据事件 |
noDataAction | string | N | 无数据处理操作 |
targets | array | Y | 简单检查中的检查目标列表 |
targets[*].dql | string | Y | DQL查询语句 |
targets[*].alias | string | Y | 别名 |
targets[*].monitorCheckerId | string | Y | 组合监控, 监控器 ID(rul_xxxxx) |
checkerOpt | json | N | 检查配置,可选 |
checkerOpt.rules | array | Y | 检查规则列表 |
checkerOpt.openMatchTimes | boolean | N | 是否开启连续触发判断, 默认 关闭false |
**5.jsonScript.noDataAction
参数信息 **
参数名 | 说明 |
---|---|
none | 无动作(即与[关闭无数据相关处理]相同) |
checkAs0 | 查询结果视为0 |
noDataEvent | 触发恢复事件(noData) |
criticalEvent | 触发紧急事件(crtical) |
errorEvent | 触发重要事件(error) |
warningEvent | 触发警告事件(warning) |
okEvent | 触发恢复事件(ok) |
noData | 产生无数据事件, 该参数于 2024-04-10 日下架, 其功能逻辑等同于noDataEvent ,可直接替换为noDataEvent |
recover | 触发恢复事件, 该参数于 2024-04-10 日下架, 其功能逻辑等同于okEvent ,可直接替换为okEvent |
6. 高级检查 jsonScript.type
in (seniorCheck
)参数信息
参数名 | type | 必选 | 说明 |
---|---|---|---|
title | string | Y | 输出故障事件标题模板 |
message | string | N | 输出故障事件信息模板 |
recoverTitle | string | N | 输出恢复事件标题模板 |
recoverMessage | string | N | 输出恢复事件信息模板 |
noDataTitle | string | N | 输出无数据事件标题模板 |
noDataMessage | string | N | 输出无数据事件信息模板 |
noDataRecoverTitle | string | N | 输出无数据恢复上传事件标题模板 |
noDataRecoverMessage | string | N | 输出无数据恢复上传事件信息模板 |
type | string | Y | 规则类型 |
every | string | Y | 检查频率, 单位是 (1m/1h/1d) |
customCrontab | string | N | 自定义检查频率的crontab |
checkFuncs | array | Y | 高级检查函数列表, 注意它有且仅有一个元素 |
checkFuncs[#].funcId | string | Y | 函数ID, 可通过【外部函数】列出 接口获取 funcTags=monitorType|custom 的自定义检查函数列表 |
checkFuncs[#].kwargs | json | N | 该高级函数所需的参数数据 |
7. 突变检查 seniorMutationsCheck 参数说明
参数名 | type | 必选 | 说明 |
---|---|---|---|
jsonScript.range | integer | N | 检测指标的 Result 时间段1 |
jsonScript.range_2 | integer | N | 检测指标的 Result 时间段2, 特殊说明: (-1代表环比, 0代表使用 periodBefore字段) |
jsonScript.periodBefore | integer | N | jsonScript.range_2 为 0 时, 该字段表示(昨日/一小时前) |
jsonScript.checkerOpt.diffMode | string | N | 突变检测的,差值模式( 差值: value, 差值百分比: percent |
jsonScript.checkerOpt.threshold.status | boolean | N | 突变检测的触发前提条件设置, 开启/关闭 |
jsonScript.checkerOpt.threshold.operator | string | N | 突变检测的触发前提条件设置, 操作符 |
jsonScript.checkerOpt.threshold.value | float | N | 突变检测的触发前提条件设置, 检测值 |
8. 组合监控 相关字段 参数说明
参数名 | type | 必选 | 说明 |
---|---|---|---|
jsonScript.checkerOpt.combineExpr | string | Y | 组合方式,如:A && B |
jsonScript.checkerOpt.ignoreNodata | boolean | N | 是否忽略无数据结果(true 表示需要忽略) |
9. 外部事件检测jsonScript.type
in (OuterEventChecker
) 相关字段 参数说明
参数名 | type | 必选 | 说明 |
---|---|---|---|
secret | string | Y | 一个任意长度的随机字符串,工作空间内唯一, 用于识别事件所属监控器。 |
jsonScript.subUri | string | 表示Webhook地址的地址后缀(根据用户业务侧需求可选设置,无特殊限制) |
10. 字段 disableCheckEndTime 说明
上报数据观测云对其处理逻辑包含 追加写入、更新覆盖 两种模式,根据这两种数据的特性,监控需要做检测的区别对待。此区别对应范围包含监控器、智能监控、智能巡检所有模块。 所有覆盖更新机制的数据类型配置监控器检测时,为了避免因为监控器执行 delay 1 分钟导致更新模式的数据在固定的时间范围内有逃逸现象,此类监控器类型的检测区间不指定结束时间。 涉及监控器类型:阈值检测、突变检测、区间检测、离群检测、进程异常检测、基础设施存活检测、用户访问指标检测(个别指标,详见下面表格)
数据类型 | Namespace | 写入模式 |
---|---|---|
指标 | M | 追加 |
事件 | E | 追加 |
未恢复事件 | UE | 覆盖 |
基础设施-对象 | O | 覆盖 |
基础设施-自定义对象 | CO | 覆盖 |
基础设施-对象历史 | OH | 追加 |
基础设施-自定义对象历史 | COH | 追加 |
日志 / 可用性监测 / CI 可视化 | L | 追加 |
应用性能监测-链路 | T | 追加 |
应用性能监测-Profile | P | 追加 |
用户访问监测-Session | R::session | 覆盖 |
用户访问监测-View | R::view | 覆盖 |
用户访问监测-Resource | R::resource | 追加 |
用户访问监测-Long Task | R::long_task | 追加 |
用户访问监测-Action | R::action | 追加 |
用户访问监测-Error | R::error | 追加 |
安全巡检 | S |
所有 写入模式为 覆盖 的 需要指定 disableCheckEndTime 为 true
11. 区间检测V2版本 相关参数字段说明
参数名 | type | 必选 | 说明 |
---|---|---|---|
jsonScript.checkerOpt.confidenceInterval | integer | Y | 置信区间范围,取值为1-100% |
12. 监控器操作权限配置参数说明
参数名 | type | 说明 |
---|---|---|
openPermissionSet | boolean | 是否开启自定义权限配置, 默认 false |
permissionSet | array | 操作权限配置 |
**permissionSet, openPermissionSet 字段说明(2024-06-26迭代新增字段): ** 配置 openPermissionSet 开启后, 只有空间拥有者 和 属于 permissionSet 配置中的 角色, 团队, 成员才能进行编辑/启用/禁用/删除 配置 openPermissionSet 关闭后(默认), 则删除/启用/禁用/编辑权限 遵循 原有接口编辑/启用/禁用/删除权限
permissionSet 字段可配置, 角色 UUID(wsAdmin,general, readOnly, role_xxxxx ), 团队 UUID(group_yyyy), 成员 UUID(acnt_xxx) permissionSet 字段示例:
13. 关联异常追踪 配置说明 | 参数名 | type | 说明 | |---------------|----------|------------------------| | extend.isNeedCreateIssue | boolean | 是否关联异常追踪, 默认不关联 | | extend.issueDfStatus | array | 可选4中类型(critical, error, warning, nodata), issueDfStatus 存在时: 监控器产生的事件 df_status 在 issueDfStatus 中 才会创建 Issue ,issueDfStatus不存在, 都会创建Issue | | extend.issueLevelUUID | string | issue 等级UUID | | extend.manager | array | 创建Issue 时的负责人信息(邮箱/空间成员/团队) , 示列: ["xx@qq.com","acnt_yyyy", "group_"] | | extend.needRecoverIssue | boolean | 事件恢复是否需要 同步关闭 issue, 默认 false | | jsonScript.channels | string | isNeedCreateIssue 为true 时,该字段必传. issue 频道信息, 示列: ["chan_xxx", "chan_yyy"] |
请求例子¶
curl 'https://openapi.guance.com/api/v1/checker/add' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"extend":{"funcName":"","isNeedCreateIssue":false,"issueLevelUUID":"","needRecoverIssue":false,"querylist":[{"datasource":"dataflux","qtype":"dql","query":{"alias":"","code":"Result","dataSource":"ssh","field":"ssh_check","fieldFunc":"count","fieldType":"float","funcList":[],"groupBy":["host"],"groupByTime":"","namespace":"metric","q":"M::`ssh`:(count(`ssh_check`)) BY `host`","type":"simple"},"uuid":"aada629a-672e-46f9-9503-8fd61065c382"}],"rules":[{"conditionLogic":"and","conditions":[{"alias":"Result","operands":["90"],"operator":">="}],"status":"critical"},{"conditionLogic":"and","conditions":[{"alias":"Result","operands":["0"],"operator":">="}],"status":"error"}]},"jsonScript":{"atAccounts":[],"atNoDataAccounts":[],"channels":[],"checkerOpt":{"infoEvent":false,"rules":[{"conditionLogic":"and","conditions":[{"alias":"Result","operands":["90"],"operator":">="}],"status":"critical"},{"conditionLogic":"and","conditions":[{"alias":"Result","operands":["0"],"operator":">="}],"status":"error"}]},"disableCheckEndTime":false,"every":"1m","groupBy":["host"],"interval":300,"message":">等级:{{status}} \n>主机:{{host}} \n>内容:主机 SSH 状态 {{ Result | to_fixed(2) }}% \n>建议:检查主机 SSH 服务状态","noDataMessage":"","noDataTitle":"","recoverNeedPeriodCount":2,"targets":[{"alias":"Result","dql":"M::`ssh`:(count(`ssh_check`)) BY `host`","qtype":"dql"}],"title":"主机 {{ host }} SSH 服务异常-添加告警策略","type":"simpleCheck"},"alertPolicyUUIDs":["altpl_xxxx32","altpl_xxxx32"]}' \
--compressed
响应¶
{
"code": 200,
"content": {
"alertPolicyUUIDs": [
"altpl_xxxx32",
"altpl_xxxx32"
],
"createAt": 1710831393,
"createdWay": "manual",
"creator": "wsak_xxxx",
"crontabInfo": {
"crontab": "*/1 * * * *",
"id": "cron-2n8ZyrMWKXB8"
},
"declaration": {
"b": [
"asfawfgajfasfafgafwba",
"asfgahjfaf"
],
"business": "aaa",
"organization": "64fe7b4062f74d0007b46676"
},
"deleteAt": -1,
"extend": {
"funcName": "",
"isNeedCreateIssue": false,
"issueLevelUUID": "",
"needRecoverIssue": false,
"querylist": [
{
"datasource": "dataflux",
"qtype": "dql",
"query": {
"alias": "",
"code": "Result",
"dataSource": "ssh",
"field": "ssh_check",
"fieldFunc": "count",
"fieldType": "float",
"funcList": [],
"groupBy": [
"host"
],
"groupByTime": "",
"namespace": "metric",
"q": "M::`ssh`:(count(`ssh_check`)) BY `host`",
"type": "simple"
},
"uuid": "aada629a-672e-46f9-9503-8fd61065c382"
}
],
"rules": [
{
"conditionLogic": "and",
"conditions": [
{
"alias": "Result",
"operands": [
"90"
],
"operator": ">="
}
],
"status": "critical"
},
{
"conditionLogic": "and",
"conditions": [
{
"alias": "Result",
"operands": [
"0"
],
"operator": ">="
}
],
"status": "error"
}
]
},
"id": null,
"isLocked": false,
"jsonScript": {
"atAccounts": [],
"atNoDataAccounts": [],
"channels": [],
"checkerOpt": {
"infoEvent": false,
"rules": [
{
"conditionLogic": "and",
"conditions": [
{
"alias": "Result",
"operands": [
"90"
],
"operator": ">="
}
],
"status": "critical"
},
{
"conditionLogic": "and",
"conditions": [
{
"alias": "Result",
"operands": [
"0"
],
"operator": ">="
}
],
"status": "error"
}
]
},
"disableCheckEndTime": false,
"every": "1m",
"groupBy": [
"host"
],
"interval": 300,
"message": ">等级:{{status}} \n>主机:{{host}} \n>内容:主机 SSH 状态 {{ Result | to_fixed(2) }}% \n>建议:检查主机 SSH 服务状态",
"name": "主机 {{ host }} SSH 服务异常-添加告警策略",
"noDataMessage": "",
"noDataTitle": "",
"recoverNeedPeriodCount": 2,
"targets": [
{
"alias": "Result",
"dql": "M::`ssh`:(count(`ssh_check`)) BY `host`",
"qtype": "dql"
}
],
"title": "主机 {{ host }} SSH 服务异常-添加告警策略",
"type": "simpleCheck"
},
"monitorName": "default",
"monitorUUID": "monitor_xxxx32",
"refKey": "",
"secret": "",
"status": 0,
"tagInfo": [],
"type": "trigger",
"updateAt": null,
"updator": null,
"uuid": "rul_xxxx32",
"workspaceUUID": "wksp_xxxx32"
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-014A6CF1-E9D8-4EA7-9527-D3C39CC3A94A"
}