报警管理接口
更新时间:2023-12-20
创建报警策略
接口描述
创建报警策略
请求结构
- method:POST
- URL:/csm/api/v1/services/alarm/config/create
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
alarmConfig | AlarmConfig | 报警配置 | 是 | RequestBody参数 |
请求示例
POST /csm/api/v1/services/alarm/config/create
body
{
"alarmActions": [
"0262f103-****-****-****-078d0f2d80c5"
],
"aliasName": "test_all_instance",
"level": "MAJOR",
"monitorObject": {
"names": [],
"type": "APP"
},
"okActions": [],
"region": "bj",
"rules": [
[
{
"comparisonOperator": ">",
"evaluationPeriodCount": 10,
"index": 1,
"metric": "OutBytes",
"metricDimensions": [],
"periodInSecond": 900,
"statistics": "average",
"threshold": "1111"
}
]
],
"scope": "BCE_CDN",
"srcType": "ALL_INSTANCE",
"type": "NORMAL",
"userId": "453bf9********************9090dc"
}
删除报警策略
接口描述
删除报警策略
请求结构
- method:POST
- URL:/csm/api/v1/services/alarm/config/delete?{Query参数}
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
userId | String | 用户id | 否 | Query参数 |
scope | String | 云产品名字空间,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" | 否 | Query参数 |
alarmName | String | 报警名 | 否 | Query参数 |
请求示例
为了展示的更清晰,对请求示例做了换行处理,在实际构造请求时URL路径及Query参数都在一行里。
POST /csm/api/v1/services/alarm/config/delete?
userId=453bf9********************9090dc
&scope=BCE_CDN
&alarmName=b9444b********************f04dac
更新报警策略
接口描述
编辑报警策略
请求结构
- method:POST
- URL:/csm/api/v1/services/alarm/config/update
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
alarmConfig | AlarmConfig | 报警配置 | 是 | RequestBody参数 |
请求示例
POST /csm/api/v1/services/alarm/config/update
body
{
"alarmActions": [
"0262f103-****-****-****-078d0f2d80c5"
],
"alarmName": "b9444b********************f04dac",
"aliasName": "fgh678",
"level": "MAJOR",
"monitorObject": {
"names": [],
"type": "APP"
},
"okActions": [],
"region": "bj",
"rules": [
[
{
"comparisonOperator": ">=",
"evaluationPeriodCount": 1,
"index": 1,
"metric": "OutBytes",
"metricDimensions": [],
"periodInSecond": 60,
"statistics": "average",
"threshold": "11"
}
]
],
"scope": "BCE_CDN",
"srcType": "ALL_INSTANCE",
"type": "NORMAL",
"userId": "453bf9********************9090dc"
}
屏蔽报警策略
接口描述
屏蔽报警策略
请求结构
- method:POST
- URL:/csm/api/v1/services/alarm/config/block?{Query参数}
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
userId | String | 用户id | 否 | Query参数 |
scope | String | 云产品名字空间,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" | 否 | Query参数 |
alarmName | String | 报警名 | 否 | Query参数 |
请求示例
为了展示的更清晰,对请求示例做了换行处理,在实际构造请求时URL路径及Query参数都在一行里。
POST /csm/api/v1/services/alarm/config/block?
userId=453bf9********************9090dc
&scope=BCE_CDN
&alarmName=b9444b********************f04dac
开启报警配置
接口描述
开启报警通知
请求结构
- method:POST
- URL:/csm/api/v1/services/alarm/config/unblock?{Query参数}
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
userId | String | 用户id | 否 | Query参数 |
scope | String | 云产品名字空间,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" | 否 | Query参数 |
alarmName | String | 报警名 | 否 | Query参数 |
请求示例
为了展示的更清晰,对请求示例做了换行处理,在实际构造请求时URL路径及Query参数都在一行里。
POST /csm/api/v1/services/alarm/config/unblock?
userId=453bf9********************9090dc
&scope=BCE_CDN
&alarmName=b9444b********************f04dac
查看报警策略
接口描述
查看报警策略详情
请求结构
- Method:GET
- URL:/csm/api/v1/services/alarm/config?{Query参数}
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
userId | String | 用户id | 是 | Query参数 |
scope | String | 云产品名字空间,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" | 是 | Query参数 |
alarmName | String | 报警名 | 是 | Query参数 |
返回字段说明
类型 | 描述 |
---|---|
AlarmConfig | 报警配置 |
请求示例
为了展示的更清晰,对请求示例做了换行处理,在实际构造请求时URL路径及Query参数都在一行里。
GET /csm/api/v1/services/alarm/config?
alarmName=AllDomain-102
&scope=BCE_CDN
&userId=453bf9********************9090dc
响应示例
成功响应示例
{
"alarmDescription": "",
"alarmName": "AllDomain-102",
"aliasName": "AllDomain-102",
"userId": "453bf9********************9090dc",
"scope": "BCE_CDN",
"region": "bj",
"monitorObject": {
"type": "INSTANCE",
"names": [
"DomainId:www.****.com"
],
"typeName": "Instance"
},
"type": "NORMAL",
"level": "MAJOR",
"actionEnabled": true,
"rules": [
[
{
"id": null,
"index": 0,
"metric": "HttpRetCodeCount4xx",
"periodInSecond": 60,
"statistics": "maximum",
"threshold": "1 ",
"comparisonOperator": ">=",
"evaluationPeriodCount": 1,
"metricDimensions": []
},
{
"id": null,
"index": 0,
"metric": "HttpRetCodeCount4xx",
"periodInSecond": 60,
"statistics": "maximum",
"threshold": "3",
"comparisonOperator": ">=",
"evaluationPeriodCount": 1,
"metricDimensions": []
}
]
],
"alarmActions": [
"edd825df-****-****-****-181ef0953523"
],
"okActions": [],
"insufficientActions": [],
"insufficientCycle": 60,
"srcName": "",
"srcType": "",
"repeatAlarmCycle": 300,
"maxRepeatCount": 2,
"callbackUrl": "",
"callbackToken": ""
}
失败响应示例
情况一:参数不正确。下列为缺少scope的值
{
"requestId": "4d619a********************9ff6db",
"code": "ServletRequestBinding",
"message": "Servlet Request Binding Exception: Required String parameter 'scope' is not present"
}
情况二:参数格式不正确。下列为scope错误为例
{
"requestId": "4d619a********************9ff6db",
"code": "ResourceNotExistException",
"message": "The resource does not exist."
}
查看单一实例报列表接口
接口描述
查看单一实例报警策略列表
请求结构
- Method:GET
- URL: /csm/api/v1/services/alarm/config/list?{Query参数}
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
userId | String | 用户id | 是 | Query参数 |
scope | String | 云产品名字空间,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" | 是 | Query参数 |
region | String | 地域,默认为bj | 否 | Query参数 |
dimensions | String | 维度,由dimensionName:dimensionValue组成。当监控项具备多个维度时使用分号连接,例如dimensionName:dimensionValue;dimensionName:dimensionValue,相同维度只能指定一个维度值 | 否 | Query参数 |
order | String | 排序方式 | 是 | Query参数 |
pageSize | int | 每页数量 | 是 | Query参数 |
pageNo | int | 第几页 | 是 | Query参数 |
actionEnabled | boolean | 是否已启用 | 否 | Query参数 |
alarmNamePrefix | String | 报警名称前缀 | 否 | Query参数 |
参数解释
- 名字空间scope、指标metric、统计方法Statistic、维度Dimension等的概念请参考核心概念。
返回字段说明
类型 | 描述 |
---|---|
PageResultResponse<AlarmConfig> | 报警策略列表 |
请求示例
为了展示的更清晰,对请求示例做了换行处理,在实际构造请求时URL路径及Query参数都在一行里。
GET /csm/api/v1/services/alarm/config/list?
userId=453bf9********************9090dc
&pageSize=10
&pageNo=1
&scope=BCE_CDN
&order=desc
&dimensions=DomainId%3Abcm5-********.sys-qa.com
&actionEnabled=
&alarmNamePrefix=
®ion=bj
响应示例
成功响应示例
{
"orderBy": "",
"order": "",
"pageNo": 1,
"pageSize": 10,
"totalCount": 599,
"result": [
{
"alarmDescription": "",
"alarmName": "025bc1********************5093c0",
"aliasName": "test_cdn_ymd_0831_01",
"userId": "453bf9********************9090dc",
"scope": "BCE_CDN",
"region": "bj",
"monitorObject": {
"type": "INSTANCE",
"names": [
"DomainId:bcm5-********.sys-qa.com"
],
"typeName": "Instance"
},
"type": "NORMAL",
"level": "MAJOR",
"actionEnabled": true,
"rules": [
[
{
"id": null,
"index": 0,
"metric": "ProvIspReqCount",
"periodInSecond": 60,
"statistics": "average",
"threshold": "10",
"comparisonOperator": ">",
"evaluationPeriodCount": 1,
"metricDimensions": [
{
"name": "Isp",
"value": "pbs"
},
{
"name": "Prov",
"value": "hubei"
}
]
},
{
"id": null,
"index": 0,
"metric": "ProvIspReqCount",
"periodInSecond": 60,
"statistics": "average",
"threshold": "5",
"comparisonOperator": ">",
"evaluationPeriodCount": 1,
"metricDimensions": [
{
"name": "Isp",
"value": "pbs"
},
{
"name": "Prov",
"value": "beijing"
}
]
}
]
],
"alarmActions": [
"yangmoda_test"
],
"okActions": [],
"insufficientActions": [],
"insufficientCycle": 0,
"srcName": "",
"srcType": "INSTANCE",
"repeatAlarmCycle": 0,
"maxRepeatCount": 0,
"callbackUrl": "",
"callbackToken": ""
},
...
{
"alarmDescription": "",
"alarmName": "ba39ee********************ad28aa",
"aliasName": "TestCDNRepeat0824_3",
"userId": "453bf9********************9090dc",
"scope": "BCE_CDN",
"region": "bj",
"monitorObject": {
"type": "INSTANCE",
"names": [
"DomainId:bcm5-********.sys-qa.com"
],
"typeName": "Instance"
},
"type": "NORMAL",
"level": "MAJOR",
"actionEnabled": true,
"rules": [
[
{
"id": null,
"index": 0,
"metric": "OutBytes",
"periodInSecond": 60,
"statistics": "average",
"threshold": "3",
"comparisonOperator": ">",
"evaluationPeriodCount": 1,
"metricDimensions": []
}
]
],
"alarmActions": [
"test_wenqing"
],
"okActions": [],
"insufficientActions": [],
"insufficientCycle": 0,
"srcName": "",
"srcType": "INSTANCE",
"repeatAlarmCycle": 300,
"maxRepeatCount": 5,
"callbackUrl": "",
"callbackToken": ""
}
]
}
失败响应示例
情况一:参数不正确。pageSize为空
{
"requestId": "4a7643********************7ae904",
"code": "ServletRequestBinding",
"message": "Servlet Request Binding Exception: Required Integer parameter 'pageSize' is not present"
}
获取指标列表
接口描述
获取指标项列表
请求结构
- method:GET
- URL:/csm/api/v1/services/alarm/config/metrics?{Query参数}
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
userId | String | 用户id | 是 | Query参数 |
scope | String | 云产品名字空间,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" | 是 | Query参数 |
region | String | 地域 | 是 | Query参数 |
dimensions | String | 维度,由dimensionName:dimensionValue组成。当监控项具备多个维度时使用分号连接,例如dimensionName:dimensionValue;dimensionName:dimensionValue,相同维度只能指定一个维度值 | 否 | Query参数 |
type | String | 获取指标列表的类型,默认为INSTANCE | 否 | Query参数 |
locale | String | 国家地区,默认为zh-cn | 否 | Query参数 |
返回字段说明
类型 | 描述 |
---|---|
List<AlarmMetric> | 报警指标列表 |
请求示例
GET /csm/api/v1/services/alarm/config/metrics?
userId=453bf9********************9090dc
scope=BCE_CDN
region=bj
响应示例
[
{
"alias": "流量",
"name": "OutBytes",
"unitCategory": "Percent",
"unitName": "Bytes",
"cycle": 60,
"metricDimensions": [
[]
],
"scope": "BCE_CDN",
"typeName": "Instance"
},
...
{
"alias": "分省份运营商有效请求数",
"name": "ProvIspReqCount",
"unitCategory": "Percent",
"unitName": "次",
"cycle": 60,
"metricDimensions": [
[
"Prov",
"Isp"
]
],
"scope": "BCE_CDN",
"typeName": "Instance"
}
]
附录
AlarmConfig
名称 | 类型 | 描述 |
---|---|---|
alarmDescription | String | 自动生成,报警规则说明 |
alarmName | String | userId下唯一报警名 |
aliasName | String | 前端展示使用,允许重复 |
userId | String | 用户id |
scope | String | 所属云产品名字空间 |
region | String | 地域 |
monitorObject | MonitorObject | 监控对象 |
type | AlarmType(enum) | 报警类型,可选值为: NORMAL(指标报警) EVENT(事件报警) |
eventTypeList | List< String > | 事件类型列表 |
level | AlarmLevel(enum) | 报警等级,可选值为: NOTICE(通知) WARNING(警告) MAJOR(重要) CRITICAL(严重) |
actionEnabled | Boolean | 报警的通知状态 |
rules | List< List<AlarmRule> > | 报警规则列表 |
alarmActions | Set< String > | 报警状态下所要采取的动作 |
okActions | Set< String > | 正常状态下所要采取的动作 |
insufficientActions | Set< String > | 采集数据不足状态下的动作 |
insufficientCycle | int | 无数据报警判断周期 |
srcName | String | 实例组id |
srcType | String | 实例组类型 |
repeatAlarmCycle | int | 重复报警周期 |
maxRepeatCount | int | 最大的报警重复次数 |
callbackUrl | String | 报警回调地址 |
callbackToken | String | 报警回调token |
MonitorObject
名称 | 类型 | 描述 |
---|---|---|
type | MonitorObjectType(enum) | 监控对象云服务类型,可选值为: APP(应用监控类型) SERVICE(实例组类型) CUSTOM(自定义监控类型) INSTANCE(实例类型) DOMAIN(站点监控类型) |
names | List< String > | 监控对象名称列表 |
resources | List<PolicyResource> | 监控对象资源列表 |
typeName | String | 监控对象的类型名 |
AlarmRule
名称 | 类型 | 描述 |
---|---|---|
id | long | 报警规则的id |
index | long | 报警规则的索引,当多个规则共同组成同一报警规则,它们的索引相同 |
metric | String | 监控指标名称 |
periodInSecond | long | 多长时间计算一次是否满足各个报警规则,即单个评估周期时长,单位s |
statistics | String | 统计方式,可选值为:maximum(最大值)、minimum(最小值)、sum(和值)、average(平均值) |
threshold | String | 报警规则的阈值 |
comparisonOperator | String | 和阈值比较的算符,取值为>=、>、=、<、<= |
evaluationPeriodCount | int | 触发报警所需连续发生次数 |
metricDimensions | List<Dimension> | 指标的维度 |
PolicyResource
名称 | 类型 | 描述 |
---|---|---|
identifiers | List<Dimension> | 实例维度列表 |
metricDimensions | List<Dimension> | 指标维度列表 |
Dimension
名称 | 类型 | 描述 |
---|---|---|
name | String | 指标名 |
value | String | 指标维度 |
AlarmMetric
名称 | 类型 | 描述 |
---|---|---|
alias | String | 指标前端显示命名 |
name | String | 监控指标名 |
unitCategory | String | 单位类别 |
unitName | String | 单位名 |
cycle | int | 多长时间计算一次是否满足各个报警规则,即单个评估周期时长,单位s |
metricDimensions | Set< MetricDimensions > | 指标的维度 |
scope | String | 云产品名字空间,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" |
typeName | String | 警报指标类型名 |
pageInfo
名称 | 类型 | 描述 |
---|---|---|
perPage | int | 每页数量 |
totalCount | int | 总页数 |
currentPage | int | 当前页码 |
PageResultResponse
名称 | 类型 | 描述 |
---|---|---|
orderBy | String | 排序规则 |
order | String | 排序项 |
pageNo | int | 当前页 |
pageSize | int | 每页数量 |
totalCount | int | 总页数 |
result | List< T > | 结果集 |