You need to enable JavaScript to run this app.
导航
ModifyAlarm
最近更新时间:2024.11.21 18:53:07首次发布时间:2022.05.11 11:26:48

调用 ModifyAlarm 接口修改告警策略。

使用说明

此接口的调用频率限制为 20 次/s,超出频率限制会报错 ExceedQPSLimit。

请求说明

  • 请求方式:PUT
  • 请求地址:https://tls-{Region}.ivolces.com/ModifyAlarm

请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数

Body

参数类型是否必选示例值描述
AlarmIdStringal****告警策略 ID。
AlarmNameStringtest-alarm告警策略名称。命名规则请参考资源命名规则
StatusBooleantrue是否开启告警策略。默认值为 true,即开启。
QueryRequestArray of QueryRequest/监控任务执行语句,可配置 1~3 条。
RequestCycleObject of RequestCycle/监控任务的执行周期。

Condition

String

$1.errNum>0

告警触发条件。告警策略支持以 $N.keyname 表达式方式引用检索分析结果。表达式语法说明请参考告警触发条件表达式。例如 $1.count>=100 表示第 1 条执行语句的检索分析结果中的 count>=100 时触发告警。

  • $N 表示当前监控任务中的第 N 个执行语句,详细说明请参考查看执行语句编号
    当各个执行语句的结果中存在重复字段时,日志服务会根据执行语句编号进行判断。
  • keyname 表示检索分析结果中的字段名称。

说明

  • 如果您配置了 TriggerConditions 字段,那么 Condition 字段和 Severity 字段的配置将失效。
  • 如果您不配置 TriggerConditions 字段,那么 Condition 字段和 Severity 字段必填。

Severity

String

notice

告警通知的级别,即告警的严重程度。支持设置为 noticewarningcritical。默认为 notice

说明

  • 如果您配置了 TriggerConditions 字段,那么 Condition 字段和 Severity 字段的配置将失效。
  • 如果您不配置 TriggerConditions 字段,那么 Condition 字段和 Severity 字段必填。
TriggerPeriodInteger2持续周期。持续满足触发条件 TriggerPeriod 个周期后,再进行告警;最小值为 1,最大值为 10,默认为 1。

AlarmPeriod

Integer

60

告警通知的发送周期。当告警持续触发次数达到指定限额 TriggerPeriod 时,日志服务会根据指定的周期发送告警通知。取值范围是 10~1440,单位:分钟。

说明

  • 此参数用于指定所有渠道的告警通知发送周期。
  • AlarmPeriodAlarmPeriodDetail 不可同时为空,同时指定时以 AlarmPeriodDetail 配置为准。

AlarmPeriodDetail

Object of AlarmPeriodSetting

/

告警通知发送的周期。当告警持续触发次数达到指定限额 TriggerPeriod 时,日志服务会根据指定的周期发送告警通知。取值范围是 10~1440,单位:分钟。

说明

  • 此参数用于为各渠道分别设置发送周期。
  • AlarmPeriodAlarmPeriodDetail 不可同时为空,同时指定时以 AlarmPeriodDetail 配置为准。
AlarmNotifyGroupArray of String/告警对应的通知组列表。

UserDefineMsg

String

告警通知

自定义告警通知内容。支持插入内容变量、函数,详细说明请参考内容变量内容函数
如果您要在实际收到的告警通知中展示该内容,则需要在内容模板中通过NotifyMsg变量引用该内容。

JoinConfigurations

Array of JoinConfig

/

告警检索分析结果集合操作的相关配置。日志服务将一个检索分析结果作为一个集合,并基于集合结果判断是否触发告警。
配置多个执行语句(QueryRequest)时,支持多集合关联监控。支持的集合操作包括笛卡尔积、左联和右联,详细说明请参考多集合操作

TriggerConditions

Array of TriggerCondition

/

告警触发条件列表。最多可配置 10 条告警触发条件。

说明

  • 如果您配置了 TriggerConditions 字段,那么 Condition 字段和 Severity 字段的配置将失效。
  • 如果您不配置 TriggerConditions 字段,那么 Condition 字段和 Severity 字段必填。

QueryRequest

参数类型是否必选示例值描述
QueryStringFailed | select count(*) as errNum检索分析语句,支持的最大长度为 1024 字符。
NumberInteger1告警对象序号,从 1 开始递增。
TopicIdString864*********告警策略所要监控的日志主题 ID。
TopicNameStringyrdt告警策略所要监控的日志主题名称。
EndTimeOffsetInteger-15查询的终止时间,相对当前的历史时间,单位为分钟,取值为非正整数,须大于 StartTimeOffset,最大值为 0,最小值为 -1440。
StartTimeOffsetInteger-15查询的起始时间,相对当前的历史时间,单位为分钟,取值为非正整数,最大值为 0,最小值为 -1440。

RequestCycle

参数类型是否必选示例值描述
TimeInteger10调度的周期或者定期执行的时间点(距离 00:00 的分钟数),取值范围为 1~1440,单位为分钟。

Type

String

Period

调度周期类型。可选值:

  • Period:按照周期进行调度,即每隔一段时间调度一次。
  • Fixed:定期调度,即每天固定时间点调度一次。
  • Cron:使用 Cron 表达式。
CronTabString0 18 * * *Cron表达式,日志服务通过 Cron 表达式指定告警任务定时执行。Cron 表达式的最小粒度为分钟,24 小时制。例如 0 18 * * * 表示每天 18 点整执行一次告警任务。

AlarmPeriodSetting

参数类型是否必选示例值描述
SMSInteger10短信告警周期,单位为分钟,取值范围为 10~1440。
EmailInteger10邮件告警周期,单位为分钟,取值范围为 1~1440。
PhoneInteger10电话告警周期,单位为分钟,取值范围为 10~1440。
GeneralWebhookInteger10自定义 Webhook 告警周期,单位为分钟,取值范围为 1~1440。

JoinConfig

参数类型是否必选示例值描述
ConditionString$1.uid==$2.uid使用左联或右联时的表达式。

SetOperationType

String

CrossJoin

集合操作类型。可选值:

  • CrossJoin:笛卡尔积。
  • LeftJoin:左联。
  • RightJoin:右联。
  • InnerJoin:内联。
  • FullJoin:全联。

TriggerCondition

参数类型是否必选示例值描述
SeverityStringnotice告警通知的级别,即告警的严重程度。支持设置为 noticewarningcritical,严重程度递增。默认为 notice
ConditionString$1.cnt == 5告警触发条件表达式。
CountConditionString__count__ == 10有数据、有特定条数据场景下的数值表达式,通过 __count__ 来实现。

返回参数

本接口无特有的返回参数。更多信息请见返回结构

请求示例

PUT https://tls-{Region}.ivolces.com/ModifyAlarm HTTP/1.1
Content-Type: application/json
{
    "AlarmId": "47c5e05a-0c13-49be-b8ad-****",
    "AlarmName": "yyj-test",
    "QueryRequest": [
        {
            "Query": "* | SELECT COUNT(*) AS cnt",
            "Number": 1,
            "EndTimeOffset": 0,
            "StartTimeOffset": -15,
            "TopicId": "c14ef1c0-7843-488f-ac51-****"
        },
        {
            "Query": "* | SELECT *",
            "Number": 2,
            "EndTimeOffset": 0,
            "StartTimeOffset": -15,
            "TopicId": "c14ef1c0-7843-488f-ac51-****"
        }
    ],
    "RequestCycle": {
        "Type": "CronTab",
        "Time": 0,
        "CronTab": "0/1 * * * *"
    },
    "TriggerConditions": [
        {
            "Condition": "",
            "Severity": "notice",
            "CountCondition": "__count__ == 10"
        },
        {
            "Condition": "$1.cnt == 5",
            "Severity": "notice",
            "CountCondition": ""
        },
        {
            "Condition": "",
            "Severity": "notice",
            "CountCondition": "__count__ == 1"
        }
    ],
    "TriggerPeriod": 1,
    "AlarmPeriod": 30,
    "AlarmPeriodDetail": {
        "SMS": 10,
        "Phone": 10,
        "Email": 10,
        "GeneralWebhook": 1
    },
    "AlarmNotifyGroup": [
        "7456eb3e-bf6d-444b-8708-****"
    ],
    "UserDefineMsg": "",
    "JoinConfigurations": [
        {
            "SetOperationType": "LeftJoin",
            "Condition": "$1.cnt == $2.count"
        }
    ]
}

返回示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

错误码

下表为您列举了该接口与业务逻辑相关的错误码。公共错误码请参见公共错误码文档。

HTTP 状态码错误码错误信息说明
400InvalidArgumentInvalid argument key %s, value %s, please check argument.参数不合法。
400AlarmQuotaExceedAlarm Quota Exceed.超过告警策略限额。
404AlarmNotExistAlarm xxx does not exist告警策略不存在。
500InternalServerErrorWe encountered an unexpected server error . Please try again later.服务器内部错误。