Create¶
POST /api/v1/checker/add
Overview¶
Create a monitor
Body Request Parameters¶
| Parameter Name | Type | Required | Description |
|---|---|---|---|
| type | string | Monitor type, default is trigger. trigger: regular monitor, smartMonitor is intelligent monitor Allow empty: False Example: smartMonitor |
|
| status | integer | Monitor status field, 0 for enabled, 2 for disabled, default is enabled (added in 2025-02-19 iteration) Allow empty: False Allowed values: [0, 2] |
|
| extend | json | Additional information (Incident related fields and some fields for frontend display) Allow empty: True |
|
| alertPolicyUUIDs | array | Alert strategy UUIDs Allow empty: False |
|
| dashboardUUID | string | Associated dashboard id Allow empty: False |
|
| tags | array | Tag names used for filtering Allow empty: False Example: ['xx', 'yy'] |
|
| secret | string | The unique secret identifier in the middle segment of the Webhook URL (usually a random uuid, ensuring uniqueness within the workspace) Allow empty: False Example: secret_xxxxx |
|
| jsonScript | json | Rule configuration Allow empty: False |
|
| jsonScript.targetWorkspaceUUID | string | Target workspace, for cross-workspace queries, only supports threshold detection type (added in 2025-08-13 iteration) Allow empty: False Allow empty string: False |
|
| jsonScript.type | string | Y | Check method type Example: simpleCheck Allow empty: False |
| jsonScript.windowDql | string | window dql Allow empty: False |
|
| jsonScript.title | string | Y | Title for generated event Example: Monitor: {{monitor_name}} Checker:{{monitor_checker_name}} Triggered value:{{M1}} Allow empty: False Allow empty string: True Max length: 256 |
| jsonScript.message | string | Event content Example: status: {{status}}, title: {{title}} Allow empty: False Allow empty string: True |
|
| jsonScript.recoverTitle | string | Output recovery event title template Example: Monitor: {{monitor_name}} Checker:{{monitor_checker_name}} Triggered value:{{M1}} Allow empty: False Allow empty string: True |
|
| jsonScript.recoverMessage | string | Output recovery event message template Example: status: {{status}}, title: {{title}} Allow empty: False Allow empty string: True |
|
| jsonScript.noDataTitle | string | Output no-data event title template Example: Monitor: {{monitor_name}} Checker:{{monitor_checker_name}} Triggered value:{{M1}} Allow empty: False Allow empty string: True |
|
| jsonScript.noDataMessage | string | Output no-data event message template Example: status: {{status}}, title: {{title}} Allow empty: False Allow empty string: True |
|
| jsonScript.openNotificationMessage | boolean | Whether to enable event notification content, default is disabled (using event content as notification content) Example: False Allow empty: False |
|
| jsonScript.notificationMessage | string | Event notification content Example: Monitor: {{monitor_name}} Checker:{{monitor_checker_name}} Triggered value:{{M1}} Allow empty: False Allow empty string: True |
|
| jsonScript.openNoDataNotificationMessage | boolean | Whether to enable no-data event notification content, default is disabled (using no-data event content as notification content) Example: False Allow empty: False |
|
| jsonScript.noDataNotificationMessage | string | No-data event notification content Example: status: {{status}}, title: {{title}} Allow empty: False Allow empty string: True |
|
| jsonScript.noDataRecoverTitle | string | Output no-data recovery upload event title template Example: Monitor: {{monitor_name}} Checker:{{monitor_checker_name}} Triggered value:{{M1}} Allow empty: False Allow empty string: True |
|
| jsonScript.noDataRecoverMessage | string | Output no-data recovery upload event message template Example: status: {{status}}, title: {{title}} Allow empty: False Allow empty string: True |
|
| jsonScript.every | string | Check frequency Example: 1m Allow empty: False |
|
| jsonScript.customCrontab | string | Custom detection frequency Example: 0 */12 * * * Allow empty: False |
|
| jsonScript.interval | integer | Query interval, i.e., the time range difference for one query Example: 60 Allow empty: False |
|
| jsonScript.range | integer | For advanced detection, mutation detection's range parameter, unit s Example: 3600 Allow empty: False |
|
| jsonScript.range_2 | integer | For advanced detection, mutation detection's range_2 parameter, unit s, special note (-1 represents period-over-period, 0 represents using the periodBefore field) Example: 600 Allow empty: False |
|
| jsonScript.periodBefore | integer | For advanced detection, mutation detection's (yesterday/one hour ago) parameter, unit s Example: 600 Allow empty: False |
|
| jsonScript.recoverNeedPeriodCount | integer | Specifies after how many check periods an anomaly generates a recovery event. If detection frequency is customCrontab, this field represents time length, unit s; otherwise, it represents number of detection frequencies. Example: 60 Allow empty: False |
|
| jsonScript.noDataInterval | integer | How long without data to generate a no-data event Example: 60 Allow empty: False |
|
| jsonScript.noDataAction | string | No-data processing action Allow empty: False Allowed values: ['none', 'checkAs0', 'noDataEvent', 'fatalEvent', 'criticalEvent', 'errorEvent', 'warningEvent', 'okEvent', 'noData', 'recover'] |
|
| jsonScript.checkFuncs | array | Check function information list Example: [{'funcId': 'xxx', 'kwargs': {}}] Allow empty: False |
|
| jsonScript.groupBy | array | Trigger dimensions Example: ['Gender'] Allow empty: False |
|
| jsonScript.targets | array | Check targets Example: [{'dql': 'M:: Soldier Info:(AVG(Potential Value)) [::auto] by Gender', 'alias': 'M1'}] Allow empty: False |
|
| jsonScript.checkerOpt | json | Check condition settings Allow empty: False |
|
| jsonScript.checkerOpt.disableLargeScaleEventProtect | boolean | Whether to disable large-scale event protection, default false Example: True |
|
| jsonScript.checkerOpt.script | string | Programmable monitor script content Allow empty: False Allow empty string: True |
|
| jsonScript.checkerOpt.rules | array | Trigger condition list Example: [{'status': 'warning', 'conditions': [{'operands': [60], 'operator': '>', 'alias': 'M1'}], 'conditionLogic': 'and', 'matchTimes': 10}] Allow empty: False |
|
| jsonScript.checkerOpt.openOkConditions | boolean | Enable graded recovery, default is disabled false Example: True |
|
| jsonScript.checkerOpt.openMatchTimes | boolean | Enable consecutive trigger judgment, default is disabled false Example: True |
|
| jsonScript.checkerOpt.infoEvent | boolean | Whether to generate info event during sustained normal state, default false Example: True |
|
| jsonScript.checkerOpt.diffMode | string | In advanced detection mutation detection, difference mode, enum values: value, percent Example: value Allowed values: ['value', 'percent'] |
|
| jsonScript.checkerOpt.direction | string | In advanced detection mutation detection, interval detection trigger condition direction Example: up Allowed values: ['up', 'down', 'both'] |
|
| jsonScript.checkerOpt.eps | float | Distance parameter, value range: 0 ~ 3.0 Example: 0.5 |
|
| jsonScript.checkerOpt.threshold | json | Mutation detection trigger prerequisite settings Allow empty: False |
|
| jsonScript.checkerOpt.threshold.status | boolean | Y | Mutation detection, whether trigger prerequisite condition is enabled, Example: True |
| jsonScript.checkerOpt.threshold.operator | string | Y | Mutation detection, trigger prerequisite condition operator Example: |
| jsonScript.checkerOpt.threshold.value | float | Y | Mutation detection, trigger prerequisite condition detection value Example: 90 Allow empty: True |
| jsonScript.checkerOpt.combineExpr | string | Combined monitoring, combination method Example: A && B Allow empty string: False |
|
| jsonScript.checkerOpt.ignoreNodata | boolean | Combined monitoring, whether to ignore no-data results (true means ignore), Example: True |
|
| jsonScript.checkerOpt.confidenceInterval | integer | Interval detection V2 added parameter, confidence interval range value 1-100, Example: 10 |
|
| jsonScript.channels | array | Channel UUID list Example: ['Name1', 'Name2'] Allow empty: False |
|
| jsonScript.atAccounts | array | Normal detection @ account UUID list Example: ['xx1', 'xx2'] Allow empty: False |
|
| jsonScript.atNoDataAccounts | array | No-data situation @ account UUID list Example: ['xx1', 'xx2'] Allow empty: False |
|
| jsonScript.subUri | string | Represents the URL suffix of the Webhook address (optional setting based on user business side requirements, no special restrictions) Example: datakit/push Allow empty: False |
|
| jsonScript.disableCheckEndTime | boolean | Whether to disable end time restriction Example: True Allow empty: False |
|
| jsonScript.eventChartEnable | boolean | Whether to enable event charts, default is disabled (note: only effective when the main storage engine logging is doris) Example: False Allow empty: False |
|
| jsonScript.eventCharts | array | Event chart list Example: True Allow empty: False |
|
| jsonScript.eventCharts[*] | None | ||
| jsonScript.eventCharts[*].dql | string | Event chart query statement Example: M:: cpu:(avg(load5s)) BY host Allow empty: False |
|
| openPermissionSet | boolean | Enable custom permission configuration, (default false: not enabled). When enabled, the operation permissions for this rule follow permissionSet Allow empty: False |
|
| permissionSet | array | Operation permission configuration, configurable (role (except owner), member uuid, team uuid) Example: ['wsAdmin', 'acnt_xxxx', 'group_yyyy'] Allow empty: False |
Parameter Supplementary Description¶
Data Description.
jsonScript Parameter Description
1. Check Type jsonScript.type Description
| key | Description |
|---|---|
| simpleCheck | Threshold Detection |
| seniorMutationsCheck | Mutation Detection |
| seniorRangeCheck | Interval Detection |
| seniorRangeV2Check | Interval Detection V2 |
| outlierCheck | Outlier Detection |
| loggingCheck | Log Detection |
| processCheck | Process Anomaly Detection |
| objectSurvivalCheck | Infrastructure Survival Detection |
| objectSurvivalV2Check | Infrastructure Survival Detection V2, only supports doris workspace |
| objectChangeCheck | Infrastructure Change Detection |
| apmCheck | APM Metrics Detection |
| rumCheck | RUM Metrics Detection |
| securityCheck | Security Check Anomaly Detection |
| cloudDialCheck | Synthetic Testing Anomaly Detection |
| networkCheck | Network Data Detection |
| OuterEventChecker | External Event Detection |
| smartHostCheck | Intelligent Inspection, Host Intelligent Detection |
| smartLogCheck | Intelligent Inspection, Log Intelligent Detection |
| smartApmCheck | Intelligent Inspection, Application Intelligent Detection |
| smartRumCheck | Intelligent Inspection, RUM Intelligent Detection |
| smartKubeCheck | Intelligent Inspection, Kubernetes Intelligent Detection |
| smartCloudBillingCheck | Intelligent Inspection, Cloud Billing Intelligent Detection |
| combinedCheck | Combined Monitoring |
| programmableCheck | Programmable Monitor |
2. Deprecated Check Types jsonScript.type Description
| key | Description |
|---|---|
| seniorCheck | Advanced Check, deprecated |
| mutationsCheck | Mutation Check, deprecated, updated to seniorMutationsCheck |
| waterLevelCheck | Water Level Check, deprecated |
| rangeCheck | Interval Check, deprecated, updated to seniorRangeCheck |
*3. *Trigger Condition Comparison Operator Description (Parameter description in checkerOpt.rules)
| Parameter Name | type | Required | Description |
|---|---|---|---|
| conditions | Array[Dict] | Required | Conditions |
| conditions[#].alias | String | Required | Detection object alias, i.e., the above targets[#].alias |
| conditions[#].operator | String | Required | Operator. = , > , < , etc. |
| conditions[#].operands | Array[Any] | Required | Operand array. (Operators like between, in require multiple operands) |
| conditionLogic | string | Required | Condition intermediate logic. and , or |
| status | string | Required | When conditions are met, output event's status. Values are the same as event's status |
| direction | string | 【Interval/Water Level/Mutation parameter】 Detection direction, values: "up", "down", "both" | |
| periodNum | integer | 【Interval/Water Level/Mutation parameter】 Only detect the number of recent data points | |
| checkPercent | integer | 【Interval parameter】 Anomaly percentage threshold, value: 1 ~ 100 | |
| checkCount | integer | 【Water Level/Mutation parameter】 Consecutive anomaly point count | |
| strength | integer | 【Water Level/Mutation parameter】 Detection strength, values: 1=weak, 2=medium, 3=strong | |
| matchTimes | integer | When consecutive trigger configuration is enabled (checkerOpt.openMatchTimes) consecutive trigger configuration count [1,10] | |
| okConditions | Array[Dict] | Recovery conditions | |
| okConditions[#].alias | String | Detection object alias, i.e., the above targets[#].alias | |
| okConditions[#].operator | String | Operator. = , > , < , etc. | |
| okConditions[#].operands | Array[Any] | Operand array. (Operators like between, in require multiple operands) |
4. Simple/Log/Water Level/Mutation/Interval Check jsonScript.type in (simpleCheck, loggingCheck, waterLevelCheck, mutationsCheck, rangeCheck, securityCheck) Parameter Information
| Parameter Name | type | Required | Description |
|---|---|---|---|
| title | string | Y | Output fault event title template |
| message | string | N | Output fault event message template |
| recoverTitle | string | N | Output recovery event title template |
| recoverMessage | string | N | Output recovery event message template |
| noDataTitle | string | N | Output no-data event title template |
| noDataMessage | string | N | Output no-data event message template |
| noDataRecoverTitle | string | N | Output no-data recovery upload event title template |
| noDataRecoverMessage | string | N | Output no-data recovery upload event message template |
| openNotificationMessage | boolean | N | Whether to enable event notification content |
| notificationMessage | string | N | Event notification content |
| openNoDataNotificationMessage | string | N | Whether to enable no-data event notification content |
| noDataNotificationMessage | string | N | No-data event notification content |
| name | string | Y | Rule name |
| type | string | Y | Rule type |
| every | string | Y | Check frequency, unit is (1m/1h/1d) |
| customCrontab | string | N | Custom check frequency crontab |
| interval | integer | Y | Data time range difference, i.e., time_range difference, unit: seconds |
| recoverNeedPeriodCount | integer | Y | Generate recovery event after exceeding specified check period count. If detection frequency is customCrontab, this field represents time length, unit s; otherwise, it represents number of detection frequencies |
| noDataInterval | integer | N | How long without data to generate a no-data event |
| noDataAction | string | N | No-data processing action |
| targets | array | Y | Simple check target list |
| targets[*].dql | string | Y | DQL query statement |
| targets[*].alias | string | Y | Alias |
| targets[*].monitorCheckerId | string | Y | Combined monitoring, monitor ID (rul_xxxxx) |
| checkerOpt | json | N | Check configuration, optional |
| checkerOpt.rules | array | Y | Check rule list |
| checkerOpt.openMatchTimes | boolean | N | Whether to enable consecutive trigger judgment, default is disabled false |
| checkerOpt.openOkConditions | boolean | N | Enable recovery condition configuration, default is disabled false |
| checkerOpt.disableLargeScaleEventProtect | boolean | N | Whether to disable large-scale event protection, default false |
5. jsonScript.noDataAction Parameter Information
| Parameter Name | Description |
|---|---|
| none | No action (same as [turning off no-data related processing]) |
| checkAs0 | Query result is treated as 0 |
| noDataEvent | Trigger recovery event(noData) |
| fatalEvent | Trigger fatal event(fatal) |
| criticalEvent | Trigger critical event(crtical) |
| errorEvent | Trigger error event(error) |
| warningEvent | Trigger warning event(warning) |
| okEvent | Trigger recovery event(ok) |
| noData | Generate no-data event, this parameter was deprecated on 2024-04-10, its functional logic is equivalent to noDataEvent, can be directly replaced with noDataEvent |
| recover | Trigger recovery event, this parameter was deprecated on 2024-04-10, its functional logic is equivalent to okEvent, can be directly replaced with okEvent |
6. Advanced Check jsonScript.type in (seniorCheck) Parameter Information
| Parameter Name | type | Required | Description |
|---|---|---|---|
| title | string | Y | Output fault event title template |
| message | string | N | Output fault event message template |
| recoverTitle | string | N | Output recovery event title template |
| recoverMessage | string | N | Output recovery event message template |
| noDataTitle | string | N | Output no-data event title template |
| noDataMessage | string | N | Output no-data event message template |
| noDataRecoverTitle | string | N | Output no-data recovery upload event title template |
| noDataRecoverMessage | string | N | Output no-data recovery upload event message template |
| type | string | Y | Rule type |
| every | string | Y | Check frequency, unit is (1m/1h/1d) |
| customCrontab | string | N | Custom check frequency crontab |
| checkFuncs | array | Y | Advanced check function list, note it has exactly one element |
| checkFuncs[#].funcId | string | Y | Function ID, can be obtained via the 【External Functions】List interface, get custom check function list with funcTags=monitorType|custom |
| checkFuncs[#].kwargs | json | N | Parameter data required by this advanced function |
7. Mutation Check seniorMutationsCheck Parameter Description
| Parameter Name | type | Required | Description |
|---|---|---|---|
| jsonScript.range | integer | N | Detection metric Result time period 1 |
| jsonScript.range_2 | integer | N | Detection metric Result time period 2, special note: (-1 represents period-over-period, 0 represents using the periodBefore field) |
| jsonScript.periodBefore | integer | N | When jsonScript.range_2 is 0, this field represents (yesterday/one hour ago) |
| jsonScript.checkerOpt.diffMode | string | N | Mutation detection difference mode (difference: value, difference percentage: percent |
| jsonScript.checkerOpt.threshold.status | boolean | N | Mutation detection trigger prerequisite settings, enable/disable |
| jsonScript.checkerOpt.threshold.operator | string | N | Mutation detection trigger prerequisite settings, operator |
| jsonScript.checkerOpt.threshold.value | float | N | Mutation detection trigger prerequisite settings, detection value |
8. Combined Monitoring Related Field Parameter Description
| Parameter Name | type | Required | Description |
|---|---|---|---|
| jsonScript.checkerOpt.combineExpr | string | Y | Combination method, e.g.: A && B |
| jsonScript.checkerOpt.ignoreNodata | boolean | N | Whether to ignore no-data results (true means ignore) |
9. External Event Detection jsonScript.type in (OuterEventChecker) Related Field Parameter Description
| Parameter Name | type | Required | Description |
|---|---|---|---|
| secret | string | Y | A random string of any length, unique within the workspace, used to identify the event's monitor. |
| jsonScript.subUri | string | Represents the URL suffix of the Webhook address (optional setting based on user business side requirements, no special restrictions) |
10. Field disableCheckEndTime Description
The processing logic for reported data TrueWatch includes two modes: append write and update overwrite. Based on the characteristics of these two data types, monitoring needs to handle detection differently. This distinction applies to all modules including monitors, intelligent monitoring, and intelligent inspection. When configuring monitor detection for all data types with update overwrite mechanism, to avoid data escaping within a fixed time range due to monitor execution delay of 1 minute, the detection interval for such monitor types does not specify an end time. Monitor types involved: Threshold Detection, Mutation Detection, Interval Detection, Outlier Detection, Process Anomaly Detection, Infrastructure Survival Detection, RUM Metrics Detection (specific metrics, see table below)
| Data Type | Namespace | Write Mode |
|---|---|---|
| Metrics | M | Append |
| Events | E | Append |
| Unrecovered Events | UE | Overwrite |
| Infrastructure-Objects | O | Overwrite |
| Infrastructure-Custom Objects | CO | Overwrite |
| Infrastructure-Object History | OH | Append |
| Infrastructure-Custom Object History | COH | Append |
| Logs / Synthetic Tests / CI Visualization | L | Append |
| APM-Traces | T | Append |
| APM-Profile | P | Append |
| RUM-Session | R::session | Overwrite |
| RUM-View | R::view | Overwrite |
| RUM-Resource | R::resource | Append |
| RUM-Long Task | R::long_task | Append |
| RUM-Action | R::action | Append |
| RUM-Error | R::error | Append |
| Security Check | S |
All write modes that are Overwrite need to set disableCheckEndTime to true
11. Interval Detection V2 Version Related Parameter Field Description
| Parameter Name | type | Required | Description |
|---|---|---|---|
| jsonScript.checkerOpt.confidenceInterval | integer | Y | Confidence interval range, value is 1-100% |
12. Monitor Operation Permission Configuration Parameter Description
| Parameter Name | type | Description |
|---|---|---|
| openPermissionSet | boolean | Whether to enable custom permission configuration, default false |
| permissionSet | array | Operation permission configuration |
**permissionSet, openPermissionSet field description (added in 2024-06-26 iteration): ** After configuring openPermissionSet to enable, only workspace owners and roles, teams, members configured in permissionSet can edit/enable/disable/delete. After configuring openPermissionSet to disable (default), then delete/enable/disable/edit permissions follow the original interface edit/enable/disable/delete permissions.
permissionSet field can be configured with role UUIDs (wsAdmin,general, readOnly, role_xxxxx ), team UUIDs (group_yyyy), member UUIDs (acnt_xxx) permissionSet field example:
13. Associate Incident Configuration Description
| Parameter Name | type | Description |
|---|---|---|
| extend.isNeedCreateIssue | boolean | Whether to associate with Incident, default is not associated |
| extend.issueDfStatus | array | Optional 5 types (fatal, critical, error, warning, nodata). When issueDfStatus exists: only events with df_status in issueDfStatus will create Issue. When issueDfStatus does not exist, all create Issue. |
| extend.issueLevelUUID | string | Issue level UUID |
| extend.manager | array | Responsible person information (email/workspace member/team) when creating Issue, example: ["[email protected]","acnt_yyyy", "group_"] |
| extend.needRecoverIssue | boolean | Whether event recovery needs to synchronously close issue, default false |
| jsonScript.channels | string | When isNeedCreateIssue is true, this field is required. Issue channel information, example: ["chan_xxx", "chan_yyy"] |
Request Example¶
curl 'https://openapi.truewatch.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":">Level:{{status}} \n>Host:{{host}} \n>Content:Host SSH Status {{ Result | to_fixed(2) }}% \n>Suggestion:Check Host SSH Service Status","noDataMessage":"","noDataTitle":"","recoverNeedPeriodCount":2,"targets":[{"alias":"Result","dql":"M::`ssh`:(count(`ssh_check`)) BY `host`","qtype":"dql"}],"title":"Host {{ host }} SSH Service Exception-Add Alert Policy","type":"simpleCheck"},"alertPolicyUUIDs":["altpl_xxxx32","altpl_xxxx32"]}' \
--compressed
Response¶
{
"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": ">Level:{{status}} \n>Host:{{host}} \n>Content:Host SSH Status {{ Result | to_fixed(2) }}% \n>Suggestion:Check Host SSH Service Status",
"name": "Host {{ host }} SSH Service Exception-Add Alert Policy",
"noDataMessage": "",
"noDataTitle": "",
"recoverNeedPeriodCount": 2,
"targets": [
{
"alias": "Result",
"dql": "M::`ssh`:(count(`ssh_check`)) BY `host`",
"qtype": "dql"
}
],
"title": "Host {{ host }} SSH Service Exception-Add Alert Policy",
"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"
}