应用监控
应用信息管理接口
应用创建接口
请求结构体
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
{
"type": "BCC",
"name": "test12",
"alias": "testAlias",
"description": "fafda",
"userId":"123456"
}
请求响应
{
"id": 1,
"name": "test",
"alias": "testAlias",
"type": "BCC",
"userId": "user1",
"description": "test"
}
应用列表接口
请求结构体
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
响应示例
{
"content":[
{
"id":1,
"name":"test",
"alias":"testAlias",
"type":"BCC",
"userId":"user1",
"description":"test"
}
],
"totalElements":1,
"totalPages":1,
"size":10
}
应用编辑接口
请求结构体
Method:PUT
URI: /csm/api/v1/userId/{userId}/application
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
id | Int | 应用id | 是 |
name | String | 应用名 | 是 |
alias | String | 应用别名 | 否 |
type | String | 应用类型 | 是 |
description | String | 应用说明 | 否 |
接口描述
只允许修改alias和description,其他字段不允许修改
请求示例
PUT /csm/api/v1/userId/user1/application
Host: bcm.bj.baidubce.com:80
{
"id": 1,
"name": "test",
"alias": "testAlias3",
"type": "BCC",
"userId": "user1",
"description": "test"
}
返回示例
{
"id": 1,
"name": "test",
"alias": "testAlias3",
"type": "BCC",
"userId": "user1",
"description": "test"
}
应用删除接口
请求结构体
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
name | String | 应用名 | 是 |
请求示例
DELETE /csm/api/v1/userId/user1/application
Host: bcm.bj.baidubce.com:80
{
"name": "test"
}
返回示例
HTTP 200
应用实例管理接口
创建实例时实例列表接口
请求结构体
Method:POST
URI: /csm/api/v1/userId/{userId}/application/instance/all
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
region | String | 地域 | 是 |
appName | String | 应用名 | 是 |
searchName | String | 搜索key,目前只支持主机名搜索,取值:"hostName" | 是 |
searchValue | String | 搜索内容 | 否 |
pageSize | Int | 每页大小 | 是 |
pageNo | Int | 页码 | 是 |
请求示例
POST /csm/api/v1/userId/user1/instances/all
Host: bcm.bj.baidubce.com:80
{
"pageSize": 50,
"pageNo": 1,
"searchName": "hostName",
"searchValue": "instance-0eseehvy",
"region": "bj",
"appName": "test"
}
返回示例
{
"content":[
{
"id":"387838",
"instanceId":"i-DvbyV9Lw",
"instanceUuid":"63deee8a-5ddb-4944-80fa-faa144825a65",
"name":"instance-0eseehvy",
"internalIp":"192.168.16.227",
"floatingIp":"100.88.66.222",
"publicIp":null,
"hasBinded":false
},
{
"id":"1258",
"instanceId":"i-aztzAEUk",
"instanceUuid":"50fb04a1-7adf-4769-b957-bf40b40d6b02",
"name":"instance-3k4ol2fr",
"internalIp":"192.168.16.39",
"floatingIp":"100.88.66.130",
"publicIp":null,
"hasBinded":false
},
{
"id":"385510",
"instanceId":"i-s6r0Y8xM",
"instanceUuid":"125b9e28-ecc4-4ec7-b584-6d65c743c153",
"name":"instance-u3ahll4c-1",
"internalIp":"192.168.16.225",
"floatingIp":"100.88.67.8",
"publicIp":null,
"hasBinded":false
},
{
"id":"385511",
"instanceId":"i-iTPduQhx",
"instanceUuid":"e1f0d8bb-845d-44ab-bc7c-08a8efccb8a0",
"name":"instance-u3ahll4c-2",
"internalIp":"192.168.16.226",
"floatingIp":"100.88.67.80",
"publicIp":null,
"hasBinded":false
}
],
"query":null,
"fields":[
],
"orderBy":[
],
"pageNumber":1,
"pageSize":50,
"pageElements":4,
"last":true,
"first":true,
"totalPages":1,
"totalElements":4
}
创建实例接口
请求结构体
Method:POST
URI: /csm/api/v1/userId/{userId}/application/{appName}/instance/bind
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
hostList | List |
实例集合,其中InstanceInfo | 是 |
InstanceInfo
名称 | 类型 | 说明 |
---|---|---|
instanceId | String | 实例长id |
region | String | 地域 |
请求示例
POST /csm/api/v1/userId/123456/application/test14/instance/bind
Host: bcm.bj.baidubce.com:80
[
{
"instanceId": "instance5",
"region": "bj"
}
]
请求示例
true
已创建的实例列表接口
请求结构体
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/instance/list
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
region | String | 按region搜索,过滤出该region的实例 | 否 |
请求示例
GET /csm/api/v1/userId/user1/application/test/instance/list?region=bj
Host: bcm.bj.baidubce.com:80
返回示例
[
{
"id": 1,
"name": "0.test",
"offset": 0,
"instanceId": "instance1",
"region": "bj",
"userId": "user1",
"appName": "test"
},
{
"id": 2,
"name": "1.test",
"offset": 1,
"instanceId": "instance2",
"region": "bj",
"userId": "user1",
"appName": "test"
}
]
实例删除接口
请求结构体
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application/instance
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
appName | String | 应用名 | 是 |
id | String | 实例在数据库中的id | 是 |
请求示例
DELETE /csm/api/v1/userId/user1/application/instance
Host: bcm.bj.baidubce.com:80
{
"id": 1,
"appName": "test"
}
返回示例
HTTP 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,日志 | 是 |
cycle | int | 采集周期,默认1分钟 | 否 |
target | String | 采集目标,进程路径或端口或日志路径 | 是 |
description | String | 应用说明 | 否 |
对于日志任务,即type=2,RequestBody需追加以下日志相关字段
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
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,是 |
AggTag 参数
字段名 | 类型 | 含义 |
---|---|---|
range | String | 汇聚实例范围,目前只支持App |
tags | String | 汇聚维度key,多个用逗号隔开 |
请求示例1
POST /csm/api/v1/userId/123456/application/test14/task/create
Host: bcm.bj.baidubce.com:80
{
"aliasName": "agent_test_task",
"type": 0,
"cycle":60,
"target":"/bcm-agent",
"description":"agent task"
}
请求响应1
{
"id": 1,
"name": "0ebea6b1efb74867b7bbaa17caa95e7a", // 监控任务唯一标识
"aliasName": "test_task",
"appName": "test14",
"userId": "123456",
"cycle": 60,
"target": "/bcm-agent",
"type": 0,
"description": "test task"
}
请求示例2
POST /csm/api/v1/userId/123456/application/test14/task/create
Host: bcm.bj.baidubce.com:80
{
"aliasName": "log_test_task20",
"type": 2,
"cycle": 60,
"target": "/tmp/test.log",
"description": "log task",
"logExample": "10.157.16.207 - - [09/Apr/2020:20:45:33 +0800] \"POST /v1/dashboard/metric/gaugechart HTTP/1.1\" 200 117 47ms",
"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",
"rate": 5,
"extractResult": [
{
"extractFieldName": "widget",
"extractFieldValue": "gaugechart",
"dimensionMapTable": "path"
}
],
"metrics": [
{
"metricName": "con_tsdb_time",
"metricAlias": "响应时间",
"valueFieldName": "resTime",
"aggrTags": [
{
"range": "All",
"tags": "method,widget"
},
{
"range": "All",
"tags": "method"
}
]
}
]
}
请求响应2
{
"id": 1,
"name": "79c35af26c4346ab844bcbcdde2875c3",
"aliasName": "log_test_task20",
"type": 2,
"cycle": 60,
"target": "/tmp/test.log",
"description": "log task",
"logExample": "10.157.16.207 - - [09/Apr/2020:20:45:33 +0800] \"POST /v1/dashboard/metric/gaugechart HTTP/1.1\" 200 117 47ms",
"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",
"rate": 5,
"extractResult": [
{
"extractFieldName": "widget20",
"extractFieldValue": "gaugechart20",
"dimensionMapTable": "path"
}
],
"metrics": [
{
"metricName": "con_tsdb_time20",
"metricAlias": "响应时间",
"valueFieldName": "resTime",
"aggrTags": [
{
"range": "All",
"tags": "method,widget"
},
{
"range": "All",
"tags": "method"
}
]
}
]
}
监控任务详情接口
请求结构体
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/task/{taskName}
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
taskName | String | 任务名 | 是 |
请求示例1
GET /csm/api/v1/userId/123456/application/test14/task/2096eb64edaf484cb84eff5ccb33bfd5
Host: bcm.bj.baidubce.com:80
请求响应1
{
"id": 2,
"name": "2096eb64edaf484cb84eff5ccb33bfd5",
"aliasName": "2489qhwif384189",
"appName": "test14",
"userId": "123456",
"cycle": 60,
"target": "/python",
"type": 0,
"description": "python task"
}
请求示例2
GET /csm/api/v1/userId/123456/application/test14/task/79c35af26c4346ab844bcbcdde2875c3
Host: bcm.bj.baidubce.com:80
请求响应2
{
"id": 11,
"name": "79c35af26c4346ab844bcbcdde2875c3",
"aliasName": "log_test_task2",
"appName": "test14",
"userId": "123456",
"cycle": 60,
"target": "/home/work/bcm/csm.log",
"type": 2,
"description": "log task2",
"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:",
"matchRule": "(time)(ms)",
"rate": 5,
"extractResult": [
{
"id": 7,
"taskId": 11,
"extractFieldName": "time",
"extractFieldValue": "50",
"dimensionMapTable": null
}
],
"metrics": [
{
"id": 2,
"taskId": 11,
"metricName": "responseTime",
"metricAlias": "响应时间",
"metricUnit": "ms",
"valueFieldType": 1,
"valueFieldName": "responseTime",
"valueMatchRule": null,
"aggrInstanceRange": "ALL",
"aggrTags": "",
"saveInstanceData": 0
}
]
}
监控任务列表接口
请求结构体
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/task/list
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
type | int | 任务类型:0,进程;1,端口;2,日志,用于过滤 | 否 |
请求示例
GET /csm/api/v1/userId/123456/application/test14/task/list?type=1
Host: bcm.bj.baidubce.com:80
请求响应
[
{
"id": 4,
"name": "171f6e3052fb414098581f7886d66233",
"aliasName": "port_test_task",
"appName": "test14",
"userId": "123456",
"cycle": 60,
"target": "8855",
"type": 1,
"description": "port task"
}
]
监控任务编辑接口
请求结构
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,是 |
请求示例
PUT /csm/api/v1/userId/123456/application/test14/task/79c35af26c4346ab844bcbcdde2875c3
Host: bcm.bj.baidubce.com:80
{
"id": 11,
"name": "79c35af26c4346ab844bcbcdde2875c3",
"aliasName": "log_test_task2",
"appName": "test14",
"userId": "123456",
"cycle": 60,
"target": "/home/work/bcm/csm.log",
"type": 2,
"description": "log task update2",
"logExample": "11-12T16:27:08.149+08:00 DEBUG 86884 [csm-saver-1357862653] --- c.b.b.b.s.m.i.TsdbDataPushServiceImpl",
"matchRule": "*",
"rate": 5,
"extractResult": [
{
"extractFieldName": "responseTime2",
"extractFieldValue": "responseTime2",
"dimensionMapTable": "123"
}
],
"metrics": [
{
"metricName": "responseTime2",
"metricAlias": "响应时间-update2",
"metricUnit": "ms",
"valueFieldType": 1,
"valueFieldName": "responseTime2",
"valueMatchRule": null,
"aggrInstanceRange": "ALL",
"aggrTags": "",
"saveInstanceData": 0
}
]
}
请求响应
{
"id": 11,
"name": "79c35af26c4346ab844bcbcdde2875c3",
"aliasName": "log_test_task2",
"appName": "test14",
"userId": "123456",
"cycle": 60,
"target": "/home/work/bcm/csm.log",
"type": 2,
"description": "log task update2",
"logExample": "11-12T16:27:08.149+08:00 DEBUG 86884 [csm-saver-1357862653] --- c.b.b.b.s.m.i.TsdbDataPushServiceImpl",
"matchRule": "*",
"rate": 5,
"extractResult": [
{
"extractFieldName": "responseTime2",
"extractFieldValue": "responseTime2",
"dimensionMapTable": "123"
}
],
"metrics": [
{
"metricName": "responseTime2",
"metricAlias": "响应时间-update2",
"metricUnit": "ms",
"valueFieldType": 1,
"valueFieldName": "responseTime2",
"valueMatchRule": null,
"aggrInstanceRange": "ALL",
"aggrTags": "",
"saveInstanceData": 0
}
]
}
监控任务删除接口
请求结构
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application/task/delete
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
name | String | 任务名,uuid,不是aliasName | 是 |
appName | String | 应用名 | 是 |
请求示例
DELETE /csm/api/v1/userId/123456/application/task/delete
Host: bcm.bj.baidubce.com:80
{
"name":"79c35af26c4346ab844bcbcdde2875c3",
"appName":"test14"
}
请求响应
HTTP 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 | 维度映射内容 | 是 |
请求示例
POST /csm/api/v1/userId/123456/application/dimensionMap/create
Host: bcm.bj.baidubce.com:80
{
"userId": "123456",
"appName": "test14",
"mapContentJson": "chinanet=>cn\nchinacom=>cc",
"tableName": "isp"
}
请求响应
{
"userId": "123456",
"appName": "test14",
"mapContentJson": "chinanet=>cn\nchinacom=>cc",
"tableName": "isp"
}
维度映射表查询
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/dimensionMap/list
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
searchName | String | 映射表名搜索 | 否 |
请求示例
GET /csm/api/v1/userId/123456/application/test14/dimensionMap/list?searchName=is
Host: bcm.bj.baidubce.com:80
请求响应
[
{
"userId": "123456",
"appName": "test14",
"mapContentJson": "chinanet=>cn\nchinacom=>cc",
"tableName": "isp"
}
]
维度映射表删除
请求结构
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application/{appName}/dimensionMap/{tableName}
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
tableName | String | 维度映射表名 | 是 |
mapContentJson | String | 维度映射内容 | 是 |
请求示例
DELETE /csm/api/v1/userId/123456/application/test14/dimensionMap/isp
请求响应
HTTP 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 | 维度映射内容 | 是 |
请求示例
PUT /csm/api/v1/userId/123456/application/dimensionMap/update
Host: bcm.bj.baidubce.com:80
{
"userId": "123456",
"appName": "test14",
"mapContentJson": "chinanet=>cn\nchinacom=>cc",
"tableName": "isp"
}
请求响应
HTTP 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,可传多个,逗号隔开 | 否 |
请求示例
GET /csm/api/v1/userId/123456/application/test14/task/79c35af26c4346ab844bcbcdde2875c3/metricMeta?instances=0.test14,1.test14&metricName=log.responseTime&dimensionKeys=method
Host: bcm.bj.baidubce.com:80
请求响应
{
"method":[
"GET",
"POST",
"PUT"
]
}
多监控对象-单指标查询接口
请求结构
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 | 否 |
请求示例
GET /csm/api/v1/userId/453bf9588c9e488f9ba2c984129090dc/application/test_porcess_port/task/1a14cffc5b3c46289f1cfc0d961b2e60/metricData?aggrData=false&appName=test_porcess_port&cycle=60&dimensions&endTime=2021-09-29T05:18:46Z&instances=0.test_porcess_port,1.test_porcess_port,2.test_porcess_port,3.test_porcess_port&metricName=port.res_time&startTime=2021-09-29T05:19:46Z&statistics=average&taskName=1a14cffc5b3c46289f1cfc0d961b2e60&userId=453bf9588c9e488f9ba2c984129090dc
Host: bcm.bj.baidubce.com:80
请求响应
[
{
"namespace":"1.test_porcess_port",
"dimensions":[
],
"dataPoints":[
{
"timestamp":"2021-09-29T05:18:46Z",
"average":1
},
{
"timestamp":"2021-09-29T05:19:46Z",
"average":0
}
]
},
{
"namespace":"2.test_porcess_port",
"dimensions":[
],
"dataPoints":[
{
"timestamp":"2021-09-29T05:18:46Z",
"average":1
},
{
"timestamp":"2021-09-29T05:19:46Z",
"average":0
}
]
}
]
报警相关接口
报警策略创建接口
请求结构
Method:POST
URI: /csm/api/v1/userId/{userId}/application/alarm/config/create
RequestBody参数
名称 | 类型 | 描述 |
---|---|---|
alarmDescription | String | 自动生成,报警规则说明 |
alarmName | String | userId下唯一报警名 |
userId | String | 用户id |
appName | String | 应用名 |
region | String | 地域 |
monitorObjectType | MonitorObjectType | 监控对象类型 |
monitorObject | ACMonitorObject | 监控对象 |
type | AlarmType(enum) | 报警类型:选择监控对象类型为 实例 时,取值INSTANCE;选择监控对象类型为 应用 时,取值SERVICE |
level | AlarmLevel(enum) | 报警等级,分为了五个等级NOTICE, WARNING, CRITICAL, MAJOR, CUSTOM |
actionEnabled | Boolean | 报警的通知状态 |
rules | List(List |
报警规则列表 |
incidentActions | Set(String) | 报警状态下所要采取的动作 |
resumeActions | Set(String) | 正常状态下所要采取的动作 |
insufficientActions | Set(String) | 采集数据不足状态下的动作 |
insufficientCycle | int | 无数据报警判断周期 |
srcName | String | 任务标识,即任务taskName |
srcType | String | 任务类型,枚举:PROC(进程), PORT(端口),LOG(日志) |
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 |
请求示例
POST /csm/api/v1/userId/453bf9588c9e488f9ba2c984129090dc/application/alarm/config/create
Host: bcm.bj.baidubce.com:80
{
"alarmDescription":"proc.cpu_usage average 值 > 90",
"alarmName":"testAPPalarm",
"userId":"453bf9588c9e488f9ba2c984129090dc",
"appName":"test14",
"monitorObjectType":"APP",
"monitorObject":{
"id":1
"monitorObjectType":"APP",
"monitorObjectView":[{
"monitorObjectName":"0b5692738f53483da15a7d24483e747f",
"monitorObjectNameView":""
}]
},
"type":"INSTANCE",
"level":"MAJOR",
"actionEnabled":true,
"rules":[
[
{
"id":1,
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
{
"name":"cpu",
"value":"0"
}
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
],
[
{
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
]
],
"region":"bj",
"incidentActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"insufficientActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"resumeActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"srcName":"0b5692738f53483da15a7d24483e747f",
"srcType":"PROC",
"insufficientCycle":300,
"callbackUrl":"",
"callbackToken":"",
"repeatAlarmCycle":0,
"maxRepeatCount":0
}
请求响应
{
"alarmDescription":"proc.cpu_usage average 值 > 90",
"alarmName":"testAPPalarm",
"userId":"453bf9588c9e488f9ba2c984129090dc",
"appName":"test14",
"monitorObjectType":"APP",
"monitorObject":{
"id":1
"monitorObjectType":"APP",
"monitorObjectView":[{
"monitorObjectName":"0b5692738f53483da15a7d24483e747f",
"monitorObjectNameView":""
}]
},
"type":"INSTANCE",
"level":"MAJOR",
"actionEnabled":true,
"rules":[
[
{
"id":1,
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
{
"name":"cpu",
"value":"0"
}
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
],
[
{
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
]
],
"region":"bj",
"incidentActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"insufficientActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"resumeActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"srcName":"0b5692738f53483da15a7d24483e747f",
"srcType":"PROC",
"insufficientCycle":300,
"callbackUrl":"",
"callbackToken":"",
"repeatAlarmCycle":0,
"maxRepeatCount":0
}
报警策略更新接口
请求结构
Method:PUT
URI: /csm/api/v1/userId/{userId}/application/alarm/config/update
RequestBody参数
同创建报警策略的RequestBody
请求示例
PUT /csm/api/v1/userId/453bf9588c9e488f9ba2c984129090dc/application/alarm/config/update
Host: bcm.bj.baidubce.com:80
{
"alarmDescription":"proc.cpu_usage average 值 > 90",
"alarmName":"testAPPalarm",
"userId":"453bf9588c9e488f9ba2c984129090dc",
"appName":"test14",
"monitorObjectType":"APP",
"monitorObject":{
"id":1
"monitorObjectType":"APP",
"monitorObjectView":[{
"monitorObjectName":"0b5692738f53483da15a7d24483e747f",
"monitorObjectNameView":""
}]
},
"type":"INSTANCE",
"level":"MAJOR",
"actionEnabled":true,
"rules":[
[
{
"id":1,
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
{
"name":"method",
"value":"POST"
},
{
"name":"path",
"value":"/api/search"
}
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
],
[
{
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
]
],
"region":"bj",
"incidentActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"insufficientActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"resumeActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"srcName":"0b5692738f53483da15a7d24483e747f",
"srcType":"PROC",
"insufficientCycle":300,
"callbackUrl":"",
"callbackToken":"",
"repeatAlarmCycle":0,
"maxRepeatCount":0
}
请求响应
{
"alarmDescription":"proc.cpu_usage average 值 > 90",
"alarmName":"testAPPalarm",
"userId":"453bf9588c9e488f9ba2c984129090dc",
"appName":"test14",
"monitorObjectType":"APP",
"monitorObject":{
"id":1
"monitorObjectType":"APP",
"monitorObjectView":[{
"monitorObjectName":"0b5692738f53483da15a7d24483e747f",
"monitorObjectNameView":""
}]
},
"type":"INSTANCE",
"level":"MAJOR",
"actionEnabled":true,
"rules":[
[
{
"id":1,
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
{
"name":"method",
"value":"POST"
},
{
"name":"path",
"value":"/api/search"
}
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
],
[
{
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
]
],
"region":"bj",
"incidentActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"insufficientActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"resumeActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"srcName":"0b5692738f53483da15a7d24483e747f",
"srcType":"PROC",
"insufficientCycle":300,
"callbackUrl":"",
"callbackToken":"",
"repeatAlarmCycle":0,
"maxRepeatCount":0
}
报警策略列表接口
请求结构
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) 不传表示所有监控方式的 |
否 |
taskName | String | 任务标识名(UUID字符串),过滤使用 | 否 |
pageNo |
String | 分页页码 | 是 |
pageSize |
String | 分页大小,默认10 | 否 |
请求示例
GET /csm/api/v1/userId/453bf9588c9e488f9ba2c984129090dc/application/alarm/config/list?_=1632899291225&actionEnabled&alarmName&appName=test_porcess_port&locale=zh-cn&pageNo=1&pageSize=10®ion&srcType&taskName=1a14cffc5b3c46289f1cfc0d961b2e60&userId=453bf9588c9e488f9ba2c984129090dc
Host: bcm.bj.baidubce.com:80
请求响应
{
"actionEnabled":true, // 是否开启通知,true为开启,false为关闭
"alarmDescription":"",
"alarmName":"proc666",
"appName":"test0610",
"incidentActions":[
"pzw"
],
"insufficientActions":[
],
"insufficientCycle":0,
"level":"MAJOR",
"monitorObject":{
"id":null,
"monitorObjectType":"APP",
"monitorObjectView":[
{
"monitorObjectName":"test0610.453bf9588c9e488f9ba2c984129090dc",
"monitorObjectNameView":""
}
]
},
"monitorObjectType":"APP",
"region":"bj",
"resumeActions":[
],
"rules":[
[
{
"comparisonOperator":"\u003e",
"count":1,
"cycle":60,
"formulaV2Alias":"cpu使用率1分钟平均值\u003e-10.00",
"function":"THRESHOLD",
"metric":"proc.bb66fb1c44344eafb4bb6d989696e596.cpu_usage",
"metricAlias":"cpu使用率",
"metricDimensions":[
],
"sequence":1,
"statistics":"average",
"threshold":-10
}
]
],
"srcName":"bb66fb1c44344eafb4bb6d989696e596",
"srcType":"PROC", // 监控方式
"type":"INSTANCE",
"userId":"453bf9588c9e488f9ba2c984129090dc"
}
报警策略删除接口
请求结构
Method:DELETE
URI: /csm/api/v1/userId/{userId}/application/alarm/config
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
appName |
String | 应用名 | 是 |
alarmName |
String | 策略标识名 | 是 |
请求示例
DELETE /csm/api/v1/userId/453bf9588c9e488f9ba2c984129090dc/application/alarm/config
Host: bcm.bj.baidubce.com:80
{
"appName":"test14",
"alarmName":"proc666"
}
请求响应
HTTP 200
报警策略详情接口
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/alarm/{alarmName}/config
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
alarmName | String | 报警策略名 | 是 |
Query参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
appName |
String | 应用名 | 是 |
请求示例
GET /csm/api/v1/userId/453bf9588c9e488f9ba2c984129090dc/application/alarm/test14/config
Host: bcm.bj.baidubce.com:80
请求响应
{
"alarmDescription":"proc.cpu_usage average 值 > 90",
"alarmName":"testAPPalarm",
"userId":"453bf9588c9e488f9ba2c984129090dc",
"appName":"test14",
"monitorObjectType":"APP",
"monitorObject":{
"id":1
"monitorObjectType":"APP",
"monitorObjectView":[{
"monitorObjectName":"0b5692738f53483da15a7d24483e747f",
"monitorObjectNameView":""
}]
},
"type":"INSTANCE",
"level":"MAJOR",
"actionEnabled":true,
"rules":[
[
{
"id":1,
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
{
"name":"method",
"value":"POST"
},
{
"name":"path",
"value":"/api/search"
}
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
],
[
{
"metric":"proc.cpu_usage",
"metricAlias": "cpu利用率",
"metricDimensions":[
],
"cycle":60,
"statistics":"AVG",
"threshold":"10",
"comparisonOperator":"GT",
"count":3,
"function":"THRESHOLD",
"sequence":1,
}
]
],
"region":"bj",
"incidentActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"insufficientActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"resumeActions":[
"27a51ad0-db67-45bb-8b50-ce0c5ca5a5f9"
],
"srcName":"0b5692738f53483da15a7d24483e747f",
"srcType":"PROC",
"insufficientCycle":300,
"callbackUrl":"",
"callbackToken":"",
"repeatAlarmCycle":0,
"maxRepeatCount":0
}
报警指标列表接口
请求结构
Method:GET
URI: /csm/api/v1/userId/{userId}/application/{appName}/{taskName}/alarm/metrics
URL参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
userId | String | 用户id | 是 |
appName | String | 应用名 | 是 |
taskName | String | 任务名 | 是 |
请求示例
GET /csm/api/v1/application/alarm/453bf9588c9e488f9ba2c984129090dc/test14/e2c3eb70812b49b6a46fc14caf39220e/metrics
Host: bcm.bj.baidubce.com:80
请求响应
[
{
"id": 18,
"taskId": 27,
"metricName": "con_tsdb_time",
"metricAlias": "响应时间",
"metricUnit": "ms",
"valueFieldType": 0,
"valueFieldName": "resTime",
"valueMatchRule": null,
"aggrTags": [
{
"range": "All",
"tags": "method,widget"
},
{
"range": "All",
"tags": "method"
}
],
"saveInstanceData": 0
}
]
日志提取接口
请求结构
Method:POST
URI: /csm/api/v1/userId/{userId}/application/logextract
RequestBody参数
名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
extractRule | String | 提取规则 | 是 |
logExample | String | 日志样例,注意多行日志需用\n换行 | 是 |
请求示例
POST /csm/api/v1/application/logextract
Host: bcm.bj.baidubce.com:80
{
"extractRule": "800] \"(?<method>(GET|POST|PUT|DELETE)) .*/v1/dashboard/metric/(?<widget>(cycle|trend|report|billboard|gaugechart)) HTTP/1.1\".* (?<resTime>[0-9]+)ms",
"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"
}
请求响应
[
{
"extractFieldName": "resTime",
"extractFieldValue": "19、109",
"metricEnable": 1
},
{
"extractFieldName": "widget",
"extractFieldValue": "gaugechart、report",
"metricEnable": 0
},
{
"extractFieldName": "method",
"extractFieldValue": "POST、GET",
"metricEnable": 0
}
]