应用监控
应用信息管理接口
应用创建接口
请求结构体
Method:POST
Url:/csm/api/v1/userId/{userId}/application
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户ID | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
name | String | 应用名 | 是 |
alias | String | 应用别名 | 否 |
type | String | 类型 | 是 |
description | String | 描述 | 否 |
请求示例
POST /csm/api/v1/userId/user1/application
Host: bcm.bj.baidubce.com:80
1{
2 "type": "BCC",
3 "name": "test12",
4 "alias": "testAlias",
5 "description": "fafda",
6 "userId":"123456"
7}
请求响应
1{
2 "id": 1,
3 "name": "test",
4 "alias": "testAlias",
5 "type": "BCC",
6 "userId": "user1",
7 "description": "test"
8}
应用列表接口
请求结构体
Method:GET
URI: /csm/api/v1/userId/{userId}/application
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户Id | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
searchName | String | 应用名或者别名,用于搜索 | 否 |
pageNo | Int | 页码,默认1 | 是 |
pageSize | Int | 每页大小,默认10 | 是 |
请求示例
GET /csm/api/v1/userId/user1/application?searchName=te&pageNo=0&pageSize=10
Host: bcm.bj.baidubce.com:80
响应示例
1{
2 "content":[
3 {
4 "id":1,
5 "name":"test",
6 "alias":"testAlias",
7 "type":"BCC",
8 "userId":"user1",
9 "description":"test"
10 }
11 ],
12 "totalElements":1,
13 "totalPages":1,
14 "size":10
15}
应用编辑接口
请求结构体
Method:PUT
URI: /csm/api/v1/userId/{userId}/application
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
id | Int | 应用id | 是 |
name | String | 应用名 | 是 |
alias | String | 应用别名 | 否 |
type | String | 应用类型 | 是 |
userId | String | 用户id | 是 |
description | String | 应用说明 | 否 |
接口描述
只允许修改alias和description,其他字段不允许修改
请求示例
1PUT /csm/api/v1/userId/user1/application
2Host: bcm.bj.baidubce.com:80
3{
4 "id": 1,
5 "name": "test",
6 "alias": "testAlias3",
7 "type": "BCC",
8 "userId": "user1",
9 "description": "test"
10}
返回示例
1{
2 "id": 1,
3 "name": "test",
4 "alias": "testAlias3",
5 "type": "BCC",
6 "userId": "user1",
7 "description": "test"
8}
应用删除接口
请求结构体
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
name | String | 应用名 | 是 |
请求示例
1DELETE /csm/api/v1/userId/user1/application
2Host: bcm.bj.baidubce.com:80
3{
4 "name": "test"
5}
返回示例
1HTTP 200
应用实例管理接口
创建实例时实例列表接口
请求结构体
Method:POST
URI: /csm/api/v1/userId/{userId}/application/instance/all
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
region | String | 地域 | 是 |
appName | String | 应用名 | 是 |
searchName | String | 搜索key,目前支持主机名,主机ID,内网IP搜索,取值分别为:"name","instanceId","internalIp" | 是 |
searchValue | String | 搜索内容 | 否 |
pageSize | Int | 每页大小 | 是 |
pageNo | Int | 页码 | 是 |
请求示例
1POST /csm/api/v1/userId/user1/instances/all
2Host: bcm.bj.baidubce.com:80
3{
4 "pageSize": 50,
5 "pageNo": 1,
6 "searchName": "name",
7 "searchValue": "instance-0eseehvy",
8 "region": "bj",
9 "appName": "test"
10}
返回示例
1{
2 "content":[
3 {
4 "id":"387838",
5 "instanceId":"i-DvbyV9Lw",
6 "instanceUuid":"63deee8a-5ddb-4944-80fa-faa144825a65",
7 "name":"instance-0eseehvy",
8 "internalIp":"192.168.16.227",
9 "floatingIp":"100.88.66.222",
10 "publicIp":null,
11 "hasBinded":false
12 },
13 {
14 "id":"1258",
15 "instanceId":"i-aztzAEUk",
16 "instanceUuid":"50fb04a1-7adf-4769-b957-bf40b40d6b02",
17 "name":"instance-3k4ol2fr",
18 "internalIp":"192.168.16.39",
19 "floatingIp":"100.88.66.130",
20 "publicIp":null,
21 "hasBinded":false
22 },
23 {
24 "id":"385510",
25 "instanceId":"i-s6r0Y8xM",
26 "instanceUuid":"125b9e28-ecc4-4ec7-b584-6d65c743c153",
27 "name":"instance-u3ahll4c-1",
28 "internalIp":"192.168.16.225",
29 "floatingIp":"100.88.67.8",
30 "publicIp":null,
31 "hasBinded":false
32 },
33 {
34 "id":"385511",
35 "instanceId":"i-iTPduQhx",
36 "instanceUuid":"e1f0d8bb-845d-44ab-bc7c-08a8efccb8a0",
37 "name":"instance-u3ahll4c-2",
38 "internalIp":"192.168.16.226",
39 "floatingIp":"100.88.67.80",
40 "publicIp":null,
41 "hasBinded":false
42 }
43 ],
44 "query":null,
45 "fields":[
46
47 ],
48 "orderBy":[
49
50 ],
51 "pageNumber":1,
52 "pageSize":50,
53 "pageElements":4,
54 "last":true,
55 "first":true,
56 "totalPages":1,
57 "totalElements":4
58}
创建实例接口
请求结构体
Method:POST
URI: /csm/api/v1/userId/{userId}/application/instance/bind
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
hostList | List |
实例集合,其中InstanceInfo | 是 |
InstanceInfo
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
instanceId | String | 实例长id | 是 |
region | String | 地域 | 是 |
请求示例
1POST /csm/api/v1/userId/123456/application/test14/instance/bind
2Host: bcm.bj.baidubce.com:80
3{
4 "appName": "test",
5 "userId": "453bf9588c9e488f9ba2c9841290****",
6 "hostList": [
7 {
8 "instanceId": "2096290b-5984-4c67-8ccc-864ca5f5****",
9 "region": "bj"
10 },
11 {
12 "instanceId": "7d4e09af-d01b-4492-88e9-c27d9096****",
13 "region": "bj"
14 }
15 ]
16}
请求示例
1true
已创建的实例列表接口
请求结构体
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/instance/list
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
region | String | 按region搜索,过滤出该region的实例 | 否 |
请求示例
1GET /csm/api/v1/userId/user1/application/test/instance/list?region=bj
2Host: bcm.bj.baidubce.com:80
返回示例
1[
2 {
3 "id": 1,
4 "name": "0.test",
5 "offset": 0,
6 "instanceId": "instance1",
7 "region": "bj",
8 "userId": "user1",
9 "appName": "test"
10 },
11 {
12 "id": 2,
13 "name": "1.test",
14 "offset": 1,
15 "instanceId": "instance2",
16 "region": "bj",
17 "userId": "user1",
18 "appName": "test"
19 }
20]
实例删除接口
请求结构体
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application/instance
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
appName | String | 应用名 | 是 |
id | String | 实例在数据库中的id | 是 |
请求示例
1DELETE /csm/api/v1/userId/user1/application/instance
2Host: bcm.bj.baidubce.com:80
3
4
5{
6 "id": 1,
7 "appName": "test"
8}
返回示例
1HTTP 200
监控任务管理接口
创建监控任务接口
请求结构体
Method:POST
URI: /csm/api/v1/userId/{userId}/application/task/create
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
aliasName | String | 任务别名 | 是 |
appName | String | 应用名 | 是 |
type | int | 任务类型: 0,进程;1,端口;2,日志;3,脚本 | 是 |
cycle | int | 采集周期,默认1分钟 | 否 |
target | String | 采集目标,进程路径或端口或日志路径或脚本路径 | 是 |
description | String | 应用说明 | 否 |
对于日志任务,即type=2,RequestBody需追加以下日志相关字段
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
logExample | String | 日志样例 | 是 |
matchRule | String | 日志提取规则 | 是 |
rate | int | 采集速率,单位为分钟 | 是 |
extractResult | List<LogExtractResult>,其中LogExtractResult参数含义见下表格 | 提取结果 | 是 |
metrics | List<Metric>,其中Metric 参数含义见下表格 | 配置指标 | 是 |
LogExtractResult 参数
名称 | 类型 | 说明 |
---|---|---|
extractFieldName | String | 提取的字段名 |
extractFieldValue | String | 提取的字段的值 |
dimensionMapTable | String | 维度映射表名 |
Metric 参数
名称 | 类型 | 说明 |
---|---|---|
metricName | String | 监控项名称 |
metricAlias | String | 监控项别名 |
metricUnit | String | 监控项单位 |
valueFieldType | int | 取值字段类型:取值字段:0,日志行数;1. 单字段;2.多字段 |
valueFieldName | String | 取值字段 |
aggrTags | List<AggrTag>其中AggTag 参数含义见下表格 | 数据维度 |
saveInstanceData | int | 是否存储实例数据:0,否;1,是 |
AggTag 参数
字段名 | 类型 | 含义 |
---|---|---|
range | String | 汇聚实例范围,目前只支持App |
tags | String | 汇聚维度key,多个用逗号隔开 |
请求示例1
1POST /csm/api/v1/userId/123456/application/test14/task/create
2Host: bcm.bj.baidubce.com:80
3
4{
5 "aliasName": "agent_test_task",
6 "type": 0,
7 "cycle":60,
8 "target":"/bcm-agent",
9 "description":"agent task"
10}
请求响应1
1{
2 "id": 1,
3 "name": "0ebea6b1efb74867b7bbaa17caa95e7a", // 监控任务唯一标识
4 "aliasName": "test_task",
5 "appName": "test14",
6 "userId": "123456",
7 "cycle": 60,
8 "target": "/bcm-agent",
9 "type": 0,
10 "description": "test task"
11}
请求示例2
1POST /csm/api/v1/userId/123456/application/test14/task/create
2Host: bcm.bj.baidubce.com:80
3
4{
5 "aliasName": "log_test_task20",
6 "type": 2,
7 "cycle": 60,
8 "target": "/tmp/test.log",
9 "description": "log task",
10 "logExample": "10.157.16.207 - - [09/Apr/2020:20:45:33 +0800] \"POST /v1/dashboard/metric/gaugechart HTTP/1.1\" 200 117 47ms",
11 "matchRule": "800] \"(?P<method>(GET|POST|PUT|DELETE)) .*\/v1\/dashboard\/metric\/(?P<widget>(cycle|trend|report|billboard|gaugechart)) HTTP\/1.1\".*(?P<resTime>[0-9]+)ms",
12 "rate": 5,
13 "extractResult": [
14 {
15 "extractFieldName": "widget",
16 "extractFieldValue": "gaugechart",
17 "dimensionMapTable": "path"
18 }
19 ],
20 "metrics": [
21 {
22 "metricName": "con_tsdb_time",
23 "metricAlias": "响应时间",
24 "valueFieldName": "resTime",
25 "aggrTags": [
26 {
27 "range": "All",
28 "tags": "method,widget"
29 },
30 {
31 "range": "All",
32 "tags": "method"
33 }
34 ]
35 }
36 ]
37}
请求响应2
1{
2 "id": 1,
3 "name": "79c35af26c4346ab844bcbcdde2875c3",
4 "aliasName": "log_test_task20",
5 "type": 2,
6 "cycle": 60,
7 "target": "/tmp/test.log",
8 "description": "log task",
9 "logExample": "10.157.16.207 - - [09/Apr/2020:20:45:33 +0800] \"POST /v1/dashboard/metric/gaugechart HTTP/1.1\" 200 117 47ms",
10 "matchRule": "800] \"(?P<method>(GET|POST|PUT|DELETE)) .*\/v1\/dashboard\/metric\/(?P<widget>(cycle|trend|report|billboard|gaugechart)) HTTP\/1.1\".*(?P<resTime>[0-9]+)ms",
11 "rate": 5,
12 "extractResult": [
13 {
14 "extractFieldName": "widget20",
15 "extractFieldValue": "gaugechart20",
16 "dimensionMapTable": "path"
17 }
18 ],
19 "metrics": [
20 {
21 "metricName": "con_tsdb_time20",
22 "metricAlias": "响应时间",
23 "valueFieldName": "resTime",
24 "aggrTags": [
25 {
26 "range": "All",
27 "tags": "method,widget"
28 },
29 {
30 "range": "All",
31 "tags": "method"
32 }
33 ]
34 }
35 ]
36}
监控任务详情接口
请求结构体
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/task/{taskName}
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
taskName | String | 任务名 | 是 |
请求示例1
1GET /csm/api/v1/userId/123456/application/test14/task/2096eb64edaf484cb84eff5ccb33bfd5
2Host: bcm.bj.baidubce.com:80
请求响应1
1{
2 "id": 2,
3 "name": "2096eb64edaf484cb84eff5ccb33bfd5",
4 "aliasName": "2489qhwif384189",
5 "appName": "test14",
6 "userId": "123456",
7 "cycle": 60,
8 "target": "/python",
9 "type": 0,
10 "description": "python task"
11}
请求示例2
1GET /csm/api/v1/userId/123456/application/test14/task/79c35af26c4346ab844bcbcdde2875c3
2Host: bcm.bj.baidubce.com:80
请求响应2
1{
2 "id": 11,
3 "name": "79c35af26c4346ab844bcbcdde2875c3",
4 "aliasName": "log_test_task2",
5 "appName": "test14",
6 "userId": "123456",
7 "cycle": 60,
8 "target": "/home/work/bcm/csm.log",
9 "type": 2,
10 "description": "log task2",
11 "logExample": "2020-11-12T16:27:08.149+08:00 DEBUG 86884 [csm-saver-1357862653] --- c.b.b.b.s.m.i.TsdbDataPushServiceImpl : [d2b9f42d-4647-4e81-8d7f-e39e3c154552][] dynamic push data result, TsdbRemoteReturnData:",
12 "matchRule": "(time)(ms)",
13 "rate": 5,
14 "extractResult": [
15 {
16 "id": 7,
17 "taskId": 11,
18 "extractFieldName": "time",
19 "extractFieldValue": "50",
20 "dimensionMapTable": null
21 }
22 ],
23 "metrics": [
24 {
25 "id": 2,
26 "taskId": 11,
27 "metricName": "responseTime",
28 "metricAlias": "响应时间",
29 "metricUnit": "ms",
30 "valueFieldType": 1,
31 "valueFieldName": "responseTime",
32 "valueMatchRule": null,
33 "aggrInstanceRange": "ALL",
34 "aggrTags": "",
35 "saveInstanceData": 0
36 }
37 ]
38}
监控任务列表接口
请求结构体
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/task/list
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
type | int | 任务类型:0,进程;1,端口;2,日志;3,脚本 用于过滤; | 否 |
请求示例
1GET /csm/api/v1/userId/123456/application/test14/task/list?type=1
2Host: bcm.bj.baidubce.com:80
请求响应
1[
2 {
3 "id": 4,
4 "name": "171f6e3052fb414098581f7886d66233",
5 "aliasName": "port_test_task",
6 "appName": "test14",
7 "userId": "123456",
8 "cycle": 60,
9 "target": "8855",
10 "type": 1,
11 "description": "port task"
12 }
13]
监控任务编辑接口
请求结构
Method:PUT
URI: /csm/api/v1/userId/{userId}/application/task/update
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
名称 | 类型 | 说明 | 是否必须 |
aliasName | String | 任务别名 | 是 |
type | int | 任务类型: 0,进程;1,端口;2,日志 | 是 |
cycle | int | 采集周期,默认1分钟 | 否 |
target | String | 采集目标,进程路径或端口或日志路径 | 是 |
description | String | 应用说明 | 否 |
如果type=2,body需追加以下字段
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
logExample | String | 日志样例 | 是 |
matchRule | String | 日志提取规则 | 是 |
rate | int | 采集速率,单位为分钟 | 是 |
extractResult | List |
提取结果 | 是 |
metrics | List |
配置指标 | 是 |
LogExtractResult 参数
名称 | 类型 | 说明 |
---|---|---|
extractFieldName | String | 提取的字段名 |
extractFieldValue | String | 提取的字段的值 |
dimensionMapTable | String | 维度映射表名 |
Metric 参数
名称 | 类型 | 说明 |
---|---|---|
metricName | String | 监控项名称 |
metricAlias | String | 监控项别名 |
metricUnit | String | 监控项单位 |
valueFieldType | int | 取值字段类型:取值字段:0,日志行数;1. 单字段;2.多字段 |
valueFieldName | String | 取值字段 |
aggrTags | List |
数据维度 |
saveInstanceData | int | 是否存储实例数据:0,否;1,是 |
请求示例
1PUT /csm/api/v1/userId/123456/application/test14/task/79c35af26c4346ab844bcbcdde2875c3
2Host: bcm.bj.baidubce.com:80
3{
4 "id": 11,
5 "name": "79c35af26c4346ab844bcbcdde2875c3",
6 "aliasName": "log_test_task2",
7 "appName": "test14",
8 "userId": "123456",
9 "cycle": 60,
10 "target": "/home/work/bcm/csm.log",
11 "type": 2,
12 "description": "log task update2",
13 "logExample": "11-12T16:27:08.149+08:00 DEBUG 86884 [csm-saver-1357862653] --- c.b.b.b.s.m.i.TsdbDataPushServiceImpl",
14 "matchRule": "*",
15 "rate": 5,
16 "extractResult": [
17 {
18 "extractFieldName": "responseTime2",
19 "extractFieldValue": "responseTime2",
20 "dimensionMapTable": "123"
21 }
22 ],
23 "metrics": [
24 {
25 "metricName": "responseTime2",
26 "metricAlias": "响应时间-update2",
27 "metricUnit": "ms",
28 "valueFieldType": 1,
29 "valueFieldName": "responseTime2",
30 "valueMatchRule": null,
31 "aggrInstanceRange": "ALL",
32 "aggrTags": "",
33 "saveInstanceData": 0
34 }
35 ]
36}
请求响应
1{
2 "id": 11,
3 "name": "79c35af26c4346ab844bcbcdde2875c3",
4 "aliasName": "log_test_task2",
5 "appName": "test14",
6 "userId": "123456",
7 "cycle": 60,
8 "target": "/home/work/bcm/csm.log",
9 "type": 2,
10 "description": "log task update2",
11 "logExample": "11-12T16:27:08.149+08:00 DEBUG 86884 [csm-saver-1357862653] --- c.b.b.b.s.m.i.TsdbDataPushServiceImpl",
12 "matchRule": "*",
13 "rate": 5,
14 "extractResult": [
15 {
16 "extractFieldName": "responseTime2",
17 "extractFieldValue": "responseTime2",
18 "dimensionMapTable": "123"
19 }
20 ],
21 "metrics": [
22 {
23 "metricName": "responseTime2",
24 "metricAlias": "响应时间-update2",
25 "metricUnit": "ms",
26 "valueFieldType": 1,
27 "valueFieldName": "responseTime2",
28 "valueMatchRule": null,
29 "aggrInstanceRange": "ALL",
30 "aggrTags": "",
31 "saveInstanceData": 0
32 }
33 ]
34}
监控任务删除接口
请求结构
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application/task/delete
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
name | String | 任务名,uuid,不是aliasName | 是 |
appName | String | 应用名 | 是 |
请求示例
1DELETE /csm/api/v1/userId/123456/application/task/delete
2Host: bcm.bj.baidubce.com:80
3
4
5{
6 "name":"79c35af26c4346ab844bcbcdde2875c3",
7 "appName":"test14"
8}
请求响应
1HTTP 200
维度映射表管理接口
维度映射表创建
Method:POST
URI: /csm/api/v1/userId/{userId}/application/dimensionMap/create
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
tableName | String | 维度映射表名 | 是 |
mapContentJson | String | 维度映射内容 | 是 |
请求示例
1POST /csm/api/v1/userId/123456/application/dimensionMap/create
2Host: bcm.bj.baidubce.com:80
3
4
5
6{
7 "userId": "123456",
8 "appName": "test14",
9 "mapContentJson": "chinanet=>cn\nchinacom=>cc",
10 "tableName": "isp"
11}
请求响应
1{
2 "userId": "123456",
3 "appName": "test14",
4 "mapContentJson": "chinanet=>cn\nchinacom=>cc",
5 "tableName": "isp"
6}
维度映射表查询
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/dimensionMap/list
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
searchName | String | 映射表名搜索 | 否 |
请求示例
1GET /csm/api/v1/userId/123456/application/test14/dimensionMap/list?searchName=is
2Host: bcm.bj.baidubce.com:80
请求响应
1[
2 {
3 "userId": "123456",
4 "appName": "test14",
5 "mapContentJson": "chinanet=>cn\nchinacom=>cc",
6 "tableName": "isp"
7 }
8]
维度映射表删除
请求结构
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application/dimensionMap/delete
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
tableName | String | 维度映射表名 | 是 |
请求示例
1DELETE /csm/api/v1/userId/123456/application/test14/dimensionMap/isp
请求响应
1HTTP 200
维度映射表更新
请求结构
Method:PUT
URI: /csm/api/v1/userId/{userId}/application/dimensionMap/update
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
tableName | String | 维度映射表名 | 是 |
mapContentJson | String | 维度映射内容 | 是 |
请求示例
1PUT /csm/api/v1/userId/123456/application/dimensionMap/update
2Host: bcm.bj.baidubce.com:80
3
4
5{
6 "userId": "123456",
7 "appName": "test14",
8 "mapContentJson": "chinanet=>cn\nchinacom=>cc",
9 "tableName": "isp"
10}
请求响应
1HTTP 200
监控数据查询接口
维度值查询接口
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/task/{taskName}/metricMeta
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
taskName | String | 任务名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
instances | String | 多个实例名,逗号隔开 | 否 |
metricName | String | 指标名 | 是 |
dimensionKeys | String | 维度key,可传多个,逗号隔开 | 是 |
请求示例
1GET /csm/api/v1/userId/a0d04d7c202140cb80155ff7b6******/application/test14/task/79c35af26c4346ab844bcbcdde******/metricMeta?instances=0.test14,1.test14&metricName=log.responseTime&dimensionKeys=method
2Host: bcm.bj.baidubce.com:80
请求响应
1{
2 "method":[
3 "GET",
4 "POST",
5 "PUT"
6 ]
7}
多监控对象-单指标查询接口
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/task/{taskName}/metricData
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
taskName | String | 任务名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
instances | String | 多个实例名,逗号隔开.aggrData为true时,可不传;aggrData为false时必传 | 否 |
metricName | String | 指标名 | 是 |
cycle | int | 周期,默认60s | 否 |
startTime | String | utc时间,起始时间 | 是 |
endTime | String | utc时间,结束时间 | 是 |
dimensions | String | 维度,多个维度之间用逗号,连接,同一个维度key的多个取值value之间用三个下划线连接,举例1:httpMethod:POSTGET,path:apipath1apipath2举例2:httpMethod:POST___GET,path:apipath1举例3:httpMethod:POST,path:apipath1 | 否 |
statistics | String | 统计方式,取值:average 平均值 maximum 最大值 minimum 最小值 sum 和值 sampleCount 样本数 |
是 |
aggrData | String | 是否汇聚值,true为获取汇聚数据,默认false | 否 |
请求示例
1GET csm/api/v1/userId/a0d04d7c202140cb80155ff7b6******/application/zmq-log-1115/task/6d3f07e6684d47b69ca9600f7f******/metricData?metricName=exec.6d3f07e6684d47b69ca9600f7fcbbb12.metric1&startTime=2023-12-05T09:54:15Z&endTime=2023-12-05T10:04:15Z&instances=0.zmq-log-1115,1.zmq-log-1115&statistics=dss&cycle=120
2Host: bcm.bj.baidubce.com:80
请求响应
1[
2 {
3 "namespace": "0.zmq-log-1115",
4 "dimensions": [],
5 "dataPoints": [
6 {
7 "timestamp": "2023-12-05T09:54:15Z",
8 "average": 66.0
9 },
10 {
11 "timestamp": "2023-12-05T09:58:15Z",
12 "average": 66.0
13 },
14 {
15 "timestamp": "2023-12-05T10:02:15Z",
16 "average": 66.0
17 }
18 ]
19 },
20 {
21 "namespace": "1.zmq-log-1115",
22 "dimensions": [],
23 "dataPoints": [
24 {
25 "timestamp": "2023-12-05T09:54:15Z"
26 },
27 {
28 "timestamp": "2023-12-05T09:58:15Z"
29 },
30 {
31 "timestamp": "2023-12-05T10:02:15Z"
32 }
33 ]
34 }
35]
报警相关接口
报警策略创建接口
请求结构
Method:POST
URI: /csm/api/v1/userId/{userId}/application/alarm/config/create
RequestBody参数
名称 | 类型 | 描述 |
---|---|---|
alarmDescription | String | 自动生成,报警规则说明 |
alarmName | String | userId下唯一报警名 |
userId | String | 用户id |
appName | String | 应用名 |
monitorObjectType | MonitorObjectType | 监控对象类型。 选择监控对象类型为 实例 时,取值APP;选择监控对象类型为 应用 时,取值SERVICE |
monitorObject | ACMonitorObject | 监控对象 |
type | AlarmType(enum) | 报警类型:选择监控对象类型为 实例 时,取值INSTANCE;选择监控对象类型为 应用 时,取值SERVICE |
level | AlarmLevel(enum) | 报警等级,分为了五个等级NOTICE, WARNING, CRITICAL, MAJOR, CUSTOM |
actionEnabled | Boolean | 报警的通知状态 |
policyEnabled | Boolean | 报警策略启用状态。true:启用,false:禁用 |
rules | List(List |
报警规则列表 |
incidentActions | Set(String) | 报警状态下所要采取的动作 |
resumeActions | Set(String) | 正常状态下所要采取的动作 |
insufficientActions | Set(String) | 采集数据不足状态下的动作 |
insufficientCycle | int | 无数据报警判断周期 |
srcName | String | 任务标识,即任务taskName |
srcType | String | 任务类型,枚举:PROC(进程), PORT(端口),LOG(日志),SCR (脚本) |
repeatAlarmCycle | int | 报警重复提醒:重复报警提醒触发间隔 |
maxRepeatCount | int | 报警重复提醒:最大重复提醒次数 |
ACMonitorObject
名称 | 类型 | 描述 |
---|---|---|
monitorObjectType | MonitorObjectType(enum) | 监控对象类型: APP、SERIVCE。实例型报警策略选择APP,应用型报警策略选择SERVICE |
monitorObjectView | Set(ACMonitorObjectViewModel) | 监控对象 |
ACMonitorObjectViewModel
名称 | 类型 | 描述 |
---|---|---|
monitorObjectName | String | 监控对象。选择监控对象类型为 实例 时,传值taskName;选择监控对象类型为 应用 时,传值维度key、value, 此时 rules[0][0].metricDimensions 无需再赋值 |
monitorObjectNameView | String | 监控对象显示名,在报警历史等展示 |
AlarmRule
名称 | 类型 | 描述 |
---|---|---|
metric | String | 指标标识名 |
metricAlias | String | 指标别名 |
cycle | Integer | 多长时间计算一次是否满足各个报警规则,即单个评估周期时长,单位s |
statistics | String | 统计方式,取值为最大值(maximum)、最小值(minimum)、和值(sum)和平均值(average) |
function | String | 取值THRESHOLD,表示阈值报警 |
threshold | String | 报警规则的阈值 |
comparisonOperator | String | 和阈值比较的算符,取值为>=,>,=,<,<= |
count | Integer | 触发报警所需连续发生次数 |
metricDimensions | List(ACMetricDimensions) | 指标的维度 |
ACMetricDimensions
名称 | 类型 | 描述 |
---|---|---|
name | String | 指标维度key |
value | String | 指标维度Value |
请求示例
1POST /csm/api/v1/userId/453bf9588c9e488f9ba2c98412******/application/alarm/config/create
2Host: bcm.bj.baidubce.com:80
3
4{
5 "alarmDescription":"proc.cpu_usage average 值 > 90",
6 "alarmName":"testAPPalarm",
7 "userId":"453bf9588c9e488f9ba2c98412******",
8 "appName":"test14",
9 "monitorObjectType":"APP",
10 "monitorObject":{
11 "id":1
12 "monitorObjectType":"APP",
13 "monitorObjectView":[{
14 "monitorObjectName":"0b5692738f53483da15a7d24483e747f",
15 "monitorObjectNameView":""
16 }]
17 },
18 "type":"INSTANCE",
19 "level":"MAJOR",
20 "actionEnabled":true,
21 "rules":[
22 [
23 {
24 "id":1,
25 "metric":"proc.cpu_usage",
26 "metricAlias": "cpu利用率",
27 "metricDimensions":[
28 {
29 "name":"cpu",
30 "value":"0"
31 }
32 ],
33 "cycle":60,
34 "statistics":"AVG",
35 "threshold":"10",
36 "comparisonOperator":"GT",
37 "count":3,
38 "function":"THRESHOLD",
39 "sequence":1,
40 }
41 ],
42 [
43 {
44 "metric":"proc.cpu_usage",
45 "metricAlias": "cpu利用率",
46 "metricDimensions":[
47
48 ],
49 "cycle":60,
50 "statistics":"AVG",
51 "threshold":"10",
52 "comparisonOperator":"GT",
53 "count":3,
54 "function":"THRESHOLD",
55 "sequence":1,
56 }
57 ]
58 ],
59 "region":"bj",
60 "incidentActions":[
61 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
62 ],
63 "insufficientActions":[
64 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
65 ],
66 "resumeActions":[
67 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
68 ],
69 "srcName":"0b5692738f53483da15a7d24483e747f",
70 "srcType":"PROC",
71 "insufficientCycle":300,
72 "callbackUrl":"",
73 "callbackToken":"",
74 "repeatAlarmCycle":0,
75 "maxRepeatCount":0
76}
请求响应
1{
2 "alarmDescription":"proc.cpu_usage average 值 > 90",
3 "alarmName":"testAPPalarm",
4 "userId":"453bf9588c9e488f9ba2c98412******",
5 "appName":"test14",
6 "monitorObjectType":"APP",
7 "monitorObject":{
8 "id":1
9 "monitorObjectType":"APP",
10 "monitorObjectView":[{
11 "monitorObjectName":"0b5692738f53483da15a7d24483e747f",
12 "monitorObjectNameView":""
13 }]
14 },
15 "type":"INSTANCE",
16 "level":"MAJOR",
17 "actionEnabled":true,
18 "rules":[
19 [
20 {
21 "id":1,
22 "metric":"proc.cpu_usage",
23 "metricAlias": "cpu利用率",
24 "metricDimensions":[
25 {
26 "name":"cpu",
27 "value":"0"
28 }
29 ],
30 "cycle":60,
31 "statistics":"AVG",
32 "threshold":"10",
33 "comparisonOperator":"GT",
34 "count":3,
35 "function":"THRESHOLD",
36 "sequence":1,
37 }
38 ],
39 [
40 {
41 "metric":"proc.cpu_usage",
42 "metricAlias": "cpu利用率",
43 "metricDimensions":[
44
45 ],
46 "cycle":60,
47 "statistics":"AVG",
48 "threshold":"10",
49 "comparisonOperator":"GT",
50 "count":3,
51 "function":"THRESHOLD",
52 "sequence":1,
53 }
54 ]
55 ],
56 "region":"bj",
57 "incidentActions":[
58 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
59 ],
60 "insufficientActions":[
61 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
62 ],
63 "resumeActions":[
64 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
65 ],
66 "srcName":"0b5692738f53483da15a7d24483e747f",
67 "srcType":"PROC",
68 "insufficientCycle":300,
69 "callbackUrl":"",
70 "callbackToken":"",
71 "repeatAlarmCycle":0,
72 "maxRepeatCount":0
73}
报警策略更新接口
请求结构
Method:PUT
URI: /csm/api/v1/userId/{userId}/application/alarm/config/update
RequestBody参数
同创建报警策略的RequestBody
请求示例
1PUT /csm/api/v1/userId/453bf9588c9e488f9ba2c984129090dc/application/alarm/config/update
2Host: bcm.bj.baidubce.com:80
3
4
5{
6 "alarmDescription":"proc.cpu_usage average 值 > 90",
7 "alarmName":"testAPPalarm",
8 "userId":"453bf9588c9e488f9ba2c984129090dc",
9 "appName":"test14",
10 "monitorObjectType":"APP",
11 "monitorObject":{
12 "id":1
13 "monitorObjectType":"APP",
14 "monitorObjectView":[{
15 "monitorObjectName":"0b5692738f53483da15a7d24483e747f",
16 "monitorObjectNameView":""
17 }]
18 },
19 "type":"INSTANCE",
20 "level":"MAJOR",
21 "actionEnabled":true,
22 "rules":[
23 [
24 {
25 "id":1,
26 "metric":"proc.cpu_usage",
27 "metricAlias": "cpu利用率",
28 "metricDimensions":[
29 {
30 "name":"method",
31 "value":"POST"
32 },
33 {
34 "name":"path",
35 "value":"/api/search"
36 }
37 ],
38 "cycle":60,
39 "statistics":"AVG",
40 "threshold":"10",
41 "comparisonOperator":"GT",
42 "count":3,
43 "function":"THRESHOLD",
44 "sequence":1,
45 }
46 ],
47 [
48 {
49 "metric":"proc.cpu_usage",
50 "metricAlias": "cpu利用率",
51 "metricDimensions":[
52
53 ],
54 "cycle":60,
55 "statistics":"AVG",
56 "threshold":"10",
57 "comparisonOperator":"GT",
58 "count":3,
59 "function":"THRESHOLD",
60 "sequence":1,
61 }
62 ]
63 ],
64 "region":"bj",
65 "incidentActions":[
66 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
67 ],
68 "insufficientActions":[
69 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
70 ],
71 "resumeActions":[
72 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
73 ],
74 "srcName":"0b5692738f53483da15a7d24483e747f",
75 "srcType":"PROC",
76 "insufficientCycle":300,
77 "callbackUrl":"",
78 "callbackToken":"",
79 "repeatAlarmCycle":0,
80 "maxRepeatCount":0
81}
请求响应
1{
2 "alarmDescription":"proc.cpu_usage average 值 > 90",
3 "alarmName":"testAPPalarm",
4 "userId":"453bf9588c9e488f9ba2c984129090dc",
5 "appName":"test14",
6 "monitorObjectType":"APP",
7 "monitorObject":{
8 "id":1
9 "monitorObjectType":"APP",
10 "monitorObjectView":[{
11 "monitorObjectName":"0b5692738f53483da15a7d24483e747f",
12 "monitorObjectNameView":""
13 }]
14 },
15 "type":"INSTANCE",
16 "level":"MAJOR",
17 "actionEnabled":true,
18 "rules":[
19 [
20 {
21 "id":1,
22 "metric":"proc.cpu_usage",
23 "metricAlias": "cpu利用率",
24 "metricDimensions":[
25 {
26 "name":"method",
27 "value":"POST"
28 },
29 {
30 "name":"path",
31 "value":"/api/search"
32 }
33 ],
34 "cycle":60,
35 "statistics":"AVG",
36 "threshold":"10",
37 "comparisonOperator":"GT",
38 "count":3,
39 "function":"THRESHOLD",
40 "sequence":1,
41 }
42 ],
43 [
44 {
45 "metric":"proc.cpu_usage",
46 "metricAlias": "cpu利用率",
47 "metricDimensions":[
48
49 ],
50 "cycle":60,
51 "statistics":"AVG",
52 "threshold":"10",
53 "comparisonOperator":"GT",
54 "count":3,
55 "function":"THRESHOLD",
56 "sequence":1,
57 }
58 ]
59 ],
60 "region":"bj",
61 "incidentActions":[
62 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
63 ],
64 "insufficientActions":[
65 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
66 ],
67 "resumeActions":[
68 "27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
69 ],
70 "srcName":"0b5692738f53483da15a7d24483e747f",
71 "srcType":"PROC",
72 "insufficientCycle":300,
73 "callbackUrl":"",
74 "callbackToken":"",
75 "repeatAlarmCycle":0,
76 "maxRepeatCount":0
77}
报警策略列表接口
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/alarm/config/list
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
appName |
String | 应用名,不传表示的所有应用监控 | 否 |
alarmName |
String | 策略名,搜索过滤使用 | 否 |
actionEnabled |
bool | 是否关闭通知,过滤使用 | 否 |
srcType |
String | 监控方式:进程(PROC) / 端口(PORT) / 日志(LOG)/ 脚本(SCR) 不传表示所有监控方式的 |
否 |
taskName | String | 任务标识名(UUID字符串),过滤使用 | 否 |
pageNo |
String | 分页页码 | 是 |
pageSize |
String | 分页大小,默认10 | 否 |
请求示例
1GET /csm/api/v1/userId/453bf9588c9e488f9ba2c98412******/application/alarm/config/list?pageNo=1&srcType=PORT&actionEnabled=true&pageSize=2
2Host: bcm.bj.baidubce.com:80
请求响应
1{
2 "orderBy": "",
3 "order": "",
4 "pageNo": 1,
5 "pageSize": 2,
6 "totalCount": 7,
7 "result": [
8 {
9 "alarmDescription": "",
10 "alarmName": "config-yyy",
11 "userId": "453bf9588c9e488f9ba2c98412******",
12 "appName": "yyy-test",
13 "region": "bj",
14 "monitorObjectType": "APP",
15 "monitorObject": {
16 "id": null,
17 "monitorObjectView": [
18 {
19 "monitorObjectName": "yyy-test.453bf9588c9e488f9ba2c98412******",
20 "monitorObjectNameView": "",
21 "metricDimensionView": ""
22 }
23 ],
24 "monitorObjectType": "APP",
25 "typeName": "kInstance"
26 },
27 "srcName": "f29d726bc73b4c5bbc813e40a7d3b38c",
28 "srcType": "PORT",
29 "type": "INSTANCE",
30 "level": "MAJOR",
31 "actionEnabled": true,
32 "policyEnabled": true,
33 "rules": [
34 [
35 {
36 "metric": "port.err_code",
37 "metricAlias": "错误码",
38 "cycle": 60,
39 "statistics": "average",
40 "threshold": 3.0,
41 "comparisonOperator": ">",
42 "count": 1,
43 "function": "THRESHOLD",
44 "sequence": 0,
45 "metricDimensions": [],
46 "formulaV2Alias": "错误码1分钟平均值>3.00",
47 "metricTags": null
48 }
49 ]
50 ],
51 "incidentActions": [
52 "YYY-test"
53 ],
54 "resumeActions": [],
55 "insufficientActions": [],
56 "insufficientCycle": 0,
57 "repeatAlarmCycle": 0,
58 "maxRepeatCount": 0,
59 "tag": ""
60 },
61 {
62 "alarmDescription": "",
63 "alarmName": "yyy-and-test",
64 "userId": "453bf9588c9e488f9ba2c98412******",
65 "appName": "yyy-test",
66 "region": "bj",
67 "monitorObjectType": "APP",
68 "monitorObject": {
69 "id": null,
70 "monitorObjectView": [
71 {
72 "monitorObjectName": "yyy-test.453bf9588c9e488f9ba2c98412******",
73 "monitorObjectNameView": "",
74 "metricDimensionView": ""
75 }
76 ],
77 "monitorObjectType": "APP",
78 "typeName": "kInstance"
79 },
80 "srcName": "f29d726bc73b4c5bbc813e40a7d3b38c",
81 "srcType": "PORT",
82 "type": "INSTANCE",
83 "level": "NOTICE",
84 "actionEnabled": true,
85 "policyEnabled": true,
86 "rules": [
87 [
88 {
89 "metric": "port.err_code",
90 "metricAlias": "错误码",
91 "cycle": 60,
92 "statistics": "average",
93 "threshold": 0.0,
94 "comparisonOperator": ">",
95 "count": 1,
96 "function": "THRESHOLD",
97 "sequence": 0,
98 "metricDimensions": [],
99 "formulaV2Alias": "错误码1分钟平均值>0.00",
100 "metricTags": null
101 },
102 {
103 "metric": "port.err_code",
104 "metricAlias": "错误码",
105 "cycle": 60,
106 "statistics": "average",
107 "threshold": 2.0,
108 "comparisonOperator": "<",
109 "count": 1,
110 "function": "THRESHOLD",
111 "sequence": 0,
112 "metricDimensions": [],
113 "formulaV2Alias": "错误码1分钟平均值<2.00",
114 "metricTags": null
115 }
116 ],
117 [
118 {
119 "metric": "port.res_time",
120 "metricAlias": "响应时间",
121 "cycle": 60,
122 "statistics": "average",
123 "threshold": 5.0,
124 "comparisonOperator": ">",
125 "count": 1,
126 "function": "THRESHOLD",
127 "sequence": 1,
128 "metricDimensions": [],
129 "formulaV2Alias": "响应时间1分钟平均值>5.00ms",
130 "metricTags": null
131 }
132 ]
133 ],
134 "incidentActions": [
135 "YYY-test"
136 ],
137 "resumeActions": [],
138 "insufficientActions": [],
139 "insufficientCycle": 0,
140 "repeatAlarmCycle": 0,
141 "maxRepeatCount": 0,
142 "tag": ""
143 }
144 ]
145}
报警策略删除接口
请求结构
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application/alarm/config
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
appName |
String | 应用名 | 是 |
alarmName |
String | 策略标识名 | 是 |
请求示例
1DELETE /csm/api/v1/userId/453bf9588c9e488f9ba2c984129090dc/application/alarm/config
2Host: bcm.bj.baidubce.com:80
3
4{
5 "appName":"test14",
6 "alarmName":"proc666"
7}
请求响应
1HTTP 200
报警策略详情接口
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/alarm/{alarmName}/config
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
alarmName | String | 报警策略名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
appName |
String | 应用名 | 是 |
请求示例
1GET /csm/api/v1/userId/453bf9588c9e488f9ba2c98412******/application/alarm/inst-test/config?appName=test_ymd_app_0918
2Host: bcm.bj.baidubce.com:80
请求响应
1{
2 // 报警描述
3 "alarmDescription": "",
4 // 报警策略名
5 "alarmName": "inst-test",
6 // 用户id
7 "userId": "453bf9588c9e488f9ba2c98412******",
8 // 应用名
9 "appName": "test_ymd_app_0918",
10 "region": "bj",
11 "monitorObjectType": "APP",
12 "monitorObject": {
13 "id": null,
14 "monitorObjectView": [
15 {
16 "monitorObjectName": "test_ymd_app_0918.453bf9588c9e488f9ba2c98412******",
17 "monitorObjectNameView": "",
18 "metricDimensionView": ""
19 }
20 ],
21 "monitorObjectType": "APP",
22 "typeName": "kInstance"
23 },
24 "srcName": "46e78b2831394f738429f88265c5b25f",
25 // 监控方式, 枚举值 PROC:进程 LOG:日志 PORT:端口 SCR:脚本
26 "srcType": "LOG",
27 // 监控对象类型, 枚举值 INSTANCE:实例 SERVICE:应用
28 "type": "INSTANCE",
29 // 报警等级
30 "level": "MAJOR",
31 // 通知模版是否开启
32 "actionEnabled": true,
33 // 报警策略是否开启
34 "policyEnabled": true,
35 // 报警规则
36 "rules": [
37 [
38 {
39 "metric": "log.test_name",
40 "metricAlias": "test_name",
41 "cycle": 60,
42 "statistics": "average",
43 "threshold": 0.0,
44 "comparisonOperator": ">",
45 "count": 1,
46 "function": "THRESHOLD",
47 "sequence": 0,
48 "metricDimensions": [],
49 "formulaV2Alias": "test_name1分钟平均值>0.00",
50 "metricTags": null
51 }
52 ]
53 ],
54 // 异常报警动作
55 "incidentActions": [
56 "816a2a13-a817-4e43-bb7a-9a7922c092a5"
57 ],
58 // 报警关闭报警动作
59 "resumeActions": [],
60 // 数据不足报警动作
61 "insufficientActions": [],
62 // 数据不足报警触发周期
63 "insufficientCycle": 0,
64 // 重复报警间隔
65 "repeatAlarmCycle": 0,
66 // 重复报警最大次数
67 "maxRepeatCount": 0,
68 "tag": ""
69}
70}
报警指标列表接口
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/{taskName}/alarm/metrics
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
taskName | String | 任务名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
searchName | String | 指标名 | 否 |
请求示例
1GET /csm/api/v1/userId/453bf9588c9e488f9ba2c98412******/application/test_ymd_app_0918/46e78b2831394f738429f88265******/alarm/metrics?searchName=test_namerics
2Host: bcm.bj.baidubce.com:80
请求响应
1[
2 {
3 "id": 706,
4 "taskId": 3865, //监控任务id
5 "metricName": "log.test_name", //监控项名称
6 "metricAlias": "test_name", //监控项别名
7 "metricUnit": "", //监控项单位
8 "valueFieldType": 1, //取值字段:0,日志行数;1. 单字段;2.多字段
9 "valueFieldName": "", //日志中取值的字段名
10 "valueMatchRule": null, //筛选条件
11 // 汇聚的数据维度
12 "aggrTags": [
13 {
14 "range": "App",
15 "tags": ""
16 }
17 ],
18 "saveInstanceData": 1. //是否存储单实例数据
19 }
20]
日志提取接口
请求结构
Method:POST
URI: /csm/api/v1/userId/{userId}/application/logextract
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
extractRule | String | 提取规则 | 是 |
logExample | String | 日志样例,注意多行日志需用\n换行 | 是 |
请求示例
1POST /csm/api/v1/userId/453bf9588c9e488f9ba2c98412******/application/logextract
2
3Host: bcm.bj.baidubce.com:80
4
5{
6 "extractRule": "800] \"(?<method>(GET|POST|PUT|DELETE)) .*/v1/dashboard/metric/(?<widget>(cycle|trend|report|billboard|gaugechart)) HTTP/1.1\".* (?<resTime>[0-9]+)ms",
7 "logExample": "10.157.16.207 - - [09/Apr/2020:20:45:33 +0800] \"POST /v1/dashboard/metric/gaugechart HTTP/1.1\" 200 117 109ms\n10.157.16.207 - - [09/Apr/2020:20:45:33 +0800] \"GET /v1/dashboard/metric/report HTTP/1.1\" 200 117 19ms"
8}
请求响应
1[
2 {
3 "extractFieldName": "resTime",
4 "extractFieldValue": "19、109",
5 "metricEnable": 1
6 },
7 {
8 "extractFieldName": "widget",
9 "extractFieldValue": "gaugechart、report",
10 "metricEnable": 0
11 },
12 {
13 "extractFieldName": "method",
14 "extractFieldValue": "POST、GET",
15 "metricEnable": 0
16 }
17]