报警管理接口
更新时间:2021-09-03
创建报警策略
接口描述
创建报警策略
请求结构
- method:POST
- URL:/csm/api/v1/services/alarm/config/create
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
alarmConfig | AlarmConfig | 报警配置 | 是 | RequestBody参数 |
请求示例
POST /csm/api/v1/services/alarm/config/create
body
{
"alarmActions": [
"0262f103-5dc2-4daa-8df8-078d0f2d80c5"
],
"alarmName": "",
"aliasName": "test_all_instance",
"level": "MAJOR",
"monitorObject": {
"names": [],
"type": "APP"
},
"okActions": [],
"region": "global",
"rules": [
[
{
"comparisonOperator": ">",
"evaluationPeriodCount": 10,
"index": 1,
"metric": "OutBytes",
"metricDimensions": [],
"periodInSecond": 900,
"statistics": "average",
"threshold": "1111"
}
]
],
"scope": "BCE_CDN",
"srcType": "ALL_INSTANCE",
"type": "NORMAL",
"userId": "453bf9588c9e488f9ba2c984129090dc"
}
删除报警策略
接口描述
删除报警策略
请求结构
- 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参数 |
parameters | Map<String, String> | 包含三个值,userId、scope、alarmName。若不为空,parameters不为空的值替换Query参数 | 否 | RequestBody参数 |
请求示例
POST /csm/api/v1/services/alarm/config/delete?
userId=453bf9588c9e488f9ba2c984129090dc
&scope=BCE_CDN
&alarmName=b9444b7eaaf1416193c76b83d4f04dac
®ion=bj
更新报警策略
接口描述
编辑报警策略
请求结构
- method:POST
- URL:/csm/api/v1/services/alarm/config/update
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
alarmConfig | AlarmConfig | 报警配置 | 是 | RequestBody参数 |
请求示例
POST /csm/api/v1/services/alarm/config/update
body
{
"alarmActions": [
"21a28137-bcd5-4641-838c-5f6ae826b897"
],
"alarmName": "ba3431060ae04446a990ed8af8ef7dc1",
"aliasName": "fgh678",
"level": "MAJOR",
"monitorObject": {
"names": [],
"type": "APP"
},
"okActions": [],
"region": "global",
"rules": [
[
{
"comparisonOperator": ">=",
"evaluationPeriodCount": 1,
"index": 1,
"metric": "OutBytes",
"metricDimensions": [],
"periodInSecond": 60,
"statistics": "average",
"threshold": "11"
}
]
],
"scope": "BCE_CDN",
"srcType": "ALL_INSTANCE",
"type": "NORMAL",
"userId": "453bf9588c9e488f9ba2c984129090dc"
}
屏蔽报警策略
接口描述
屏蔽报警策略
请求结构
- 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参数 |
parameters | Map<String, String> | 包含三个值,userId、scope、alarmName。若不为空,parameters不为空的值替换Query参数 | 否 | RequestBody参数 |
请求示例
POST /csm/api/v1/services/alarm/config/block?
userId=453bf9588c9e488f9ba2c984129090dc
&scope=BCE_CDN
&alarmName=ba3431060ae04446a990ed8af8ef7dc1
®ion=bj
开启报警配置
接口描述
开启报警通知
请求结构
- 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参数 |
parameters | Map<String, String> | 包含三个值,userId、scope、alarmName。若不为空,parameters不为空的值替换Query参数 | 否 | RequestBody参数 |
请求示例
POST /csm/api/v1/services/alarm/config/unblock?
userId=453bf9588c9e488f9ba2c984129090dc
&scope=BCE_CDN
&alarmName=ba3431060ae04446a990ed8af8ef7dc1
®ion=bj
查看报警策略
接口描述
查看报警策略详情
请求结构
- 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=453bf9588c9e488f9ba2c984129090dc
&locale=zh-cn
®ion=
&_=1628499810710
响应示例
成功响应示例
{
"alarmDescription": "",
"alarmName": "AllDomain-102",
"aliasName": "AllDomain-102",
"userId": "453bf9588c9e488f9ba2c984129090dc",
"scope": "BCE_CDN",
"region": "bj",
"monitorObject": {
"type": "INSTANCE",
"names": [
"DomainId:www.test.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-8e0b-4c74-bb34-181ef0953523"
],
"okActions": [],
"insufficientActions": [],
"insufficientCycle": 60,
"srcName": "",
"srcType": "",
"repeatAlarmCycle": 300,
"maxRepeatCount": 2,
"callbackUrl": "",
"callbackToken": "",
"tag": ""
}
失败响应示例
情况一:参数不正确。下列为缺少scope的值
{
"requestId": "dddfaff153534161975169c7f17dcd1b",
"code": "ServletRequestBinding",
"message": "Servlet Request Binding Exception: Required String parameter 'scope' is not present"
}
情况二:参数格式不正确。下列为scope错误为例
{
"requestId": "2da5e90f74e848cebd9e24b5e6caaf4d",
"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 | Integer | 每页数量 | 是 | Query参数 |
pageNo | Integer | 第几页 | 是 | Query参数 |
actionEnabled | Boolean | 是否已启用 | 否 | Query参数 |
alarmNamePrefix | String | 报警名称前缀 | 否 | Query参数 |
参数解释
- 名字空间scope、指标metric、统计方法Statistic、维度Dimension等的概念请参考核心概念。
返回字段说明
类型 | 描述 |
---|---|
PageResultResponse<AlarmConfig> | 报警策略列表 |
请求示例
为了展示的更清晰,对请求示例做了换行处理,在实际构造请求时URL路径及Query参数都在一行里。
GET /csm/api/v1/services/alarm/config/list?
userId=453bf9588c9e488f9ba2c984129090dc
&pageSize=10
&pageNo=1
&scope=BCE_CDN
&order=desc
&dimensions=DomainId%3Abcm5-qasandbox.sys-qa.com
&actionEnabled=
&alarmNamePrefix=
&instanceType=INSTANCE
®ion=bj
&listViewName=cdn-list-view
&alias=%E5%86%85%E5%AE%B9%E5%88%86%E5%8F%91%E7%BD%91%E7%BB%9CCDN
&id=bcm5-qasandbox.sys-qa.com
&tabValue=rule
&serviceName=BCE_CDN
&viewName=cdn-detail-view
&domain=bcm5-qasandbox.sys-qa.com
&instanceName=bcm5-qasandbox.sys-qa.com
响应示例
成功响应示例
{
"orderBy": "",
"order": "",
"pageNo": 1,
"pageSize": 10,
"totalCount": 599,
"result": [
{
"alarmDescription": "",
"alarmName": "025bc14c275647beac0a77c9745093c0",
"aliasName": "test_cdn_ymd_0831_01",
"userId": "453bf9588c9e488f9ba2c984129090dc",
"scope": "BCE_CDN",
"region": "bj",
"monitorObject": {
"type": "INSTANCE",
"names": [
"DomainId:bcm5-qasandbox.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": "",
"tag": ""
},
...
{
"alarmDescription": "",
"alarmName": "ba39ee93fcd34ad88c51299505ad28aa",
"aliasName": "TestCDNRepeat0824_3",
"userId": "453bf9588c9e488f9ba2c984129090dc",
"scope": "BCE_CDN",
"region": "bj",
"monitorObject": {
"type": "INSTANCE",
"names": [
"DomainId:bcm5-qasandbox.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": "",
"tag": ""
}
]
}
失败响应示例
情况一:参数不正确。pageSize为空
{
"requestId": "4a76439bc12342cd90c98e2e147ae904",
"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=453bf9588c9e488f9ba2c984129090dc
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, CRITICAL, MAJOR, CUSTOM |
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 |
tag | String | 标识报警策略版本,数据迁移用 |
typeName | String | 子产品类型标志 |
MonitorObject
名称 | 类型 | 描述 |
---|---|---|
type | MonitorObjectType(enum) | 监控对象云服务类型,一共有七种类型APP, SERVICE, SITE, CUSTOM, INSTANCE, DOMAIN, TAG, ALL |
names | List(String) | 监控对象名字 |
typeName | String | 监控对象的类型名,INSTANCE、APP、SITE、HOST、DOMAIN |
AlarmRule
名称 | 类型 | 描述 |
---|---|---|
id | long | 报警规则的id |
index | long | 报警规则的索引,当多个规则共同组成同一报警规则,它们的索引相同 |
metric | String | 指标 |
periodInSecond | Long | 多长时间计算一次是否满足各个报警规则,即单个评估周期时长,单位s |
statistics | String | 统计方式,取值为最大值(maximum)、最小值(minimum)、和值(sum)和平均值(average) |
threshold | String | 报警规则的阈值 |
comparisonOperator | String | 和阈值比较的算符,取值为>=,>,=,<,<= |
evaluationPeriodCount | Integer | 触发报警所需连续发生次数 |
metricDimensions | List(Dimension) | 指标的维度 |
Dimension
名称 | 类型 | 描述 |
---|---|---|
name | String | 指标名 |
value | String | 指标维度 |
AlarmMetric
名称 | 类型 | 描述 |
---|---|---|
alias | String | 指标前端显示命名 |
name | String | 指标名 |
unitCategory | String | 单位类别 |
unitName | String | 单位名 |
cycle | Integer | 多长时间计算一次是否满足各个报警规则,即单个评估周期时长,单位s |
metricDimensions | Set(MetricDimensions) | 指标的维度 |
scope | String | 云产品名字空间,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" |
typeName | String | 警报指标类型名,Instance、Cluster、Service、Component、Topic |
pageInfo
名称 | 类型 | 描述 |
---|---|---|
perPage | int | 每页数量 |
totalCount | int | 总页数 |
currentPage | int | 当前页码 |
PageResultResponse
名称 | 类型 | 描述 |
---|---|---|
orderBy | String | 排序规则 |
order | String | 排序项 |
pageNo | int | 当前页 |
pageSize | int | 每页数量 |
totalCount | int | 总页数 |
result | List |
结果集 |