添加或修改应用发现规则
功能介绍
该接口用于添加或修改一条或多条应用发现规则。同一projectid下可添加的规则上限为100条。
URI
PUT /v1/{project_id}/aom/application-discovery-rules
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 租户从IAM申请到的projectid,一般为32位字符串。 |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| X-Auth-Token | 是 | String | 从IAM服务获取的用户Token。 |
| Content-Type | 是 | String | 指定类型为application/json。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| app_rules | 是 | Array of AppRuleV1 objects | 应用发现规则列表 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 租户从IAM申请到的projectid,一般为32位字符串。 |
| id | 是 | String | 创建时填空,修改时填规则ID。 |
| name | 是 | String | 规则名称。 字符长度小于64位,以小写字母(a-z)开头,只能包含0-9/a-z/-,不能以-结尾。 |
| enable | 是 | Boolean | true、false 规则是否启用。 |
| host_id | 否 | Array of strings | 主机ID(暂不使用,传空即可)。 |
| event_name | 是 | String | aom_inventory_rules_event 规则事件名称,对于服务发现固定 为"aom_inventory_rules_event"。 |
| spec | 是 | AppRulesSpecV1 object | 附加信息 |
| create_time | 否 | String | 规则创建时间(创建时不传,修改时传查询返回的createTime)。 |
| desc | 否 | String | 规则描述 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| app_type | 否 | String | 服务类型,用于标记服务的分类,仅用于规则分类和界面展示。可以填写任意字段,如按技术栈分类可填写Java,Python。按作用分类可填写collector(采集),database(数据库)等。 |
| attr_list | 否 | Array of strings | 属性列表(暂不使用,可不传)。 |
| discovery_rule | 是 | Array of DiscoveryRuleV1 objects | 规则发现部分,数组中有多个对象时表示需要同时满足所有条件的进程才会被匹配到。checkType为cmdLine时checkMode填contain,checkContent格式为[“xxx”]表示进程命令行参数中需要包含xxx。checkType为env时checkMode填contain,checkContent格式为 ["k1","v1"]表示进程环境变量中需要包含名为k1值为v1的环境变量。checkType为scope时checkMode填equals,checkContent格式为节点ID数组["hostId1”,”hostId2”],表示规则仅会在这些节点上生效(如果不指定节点范围,规则将下发到该项目所有的节点)。 |
| name_rule | 是 | NameRuleV1 object | 发现上来的服务、应用的命名规则。 |
| detect_log | 否 | String | 是否开启日志采集。 true、false |
| log_file_fix | 否 | Array of strings | 日志文件的后缀。 log、trace、out |
| priority | 是 | Integer | 规则优先级。 1~9999的整数字符串,默认取值为9999 |
| is_detect | 是 | String | 是否为规则预探测场景(预探测场景不会保存规则,仅用于规则下发之前验证该规则能否有效发现节点上的进程)。 true、false |
| data_source | 否 | String | 数据源。 |
| editable | 否 | String | 规则是否可修改。当editable为false时,为系统规则,无法删除。 |
| is_default_rule | 是 | String | 是否为默认规则。 true、false |
| log_path_rule | 否 | Array of NameRuleContent objects | 日志路径配置规则。当cmdLineHash为固定字符串时,指定日志路径或者日志文件。否则只采集进程当前打开的以.log和.trace结尾的文件。nameType取值cmdLineHash时,args格式为["00001"],value格式为["/xxx/xx.log"],表示当启动命令是00001时,日志路径为/xxx/xx.log。 |
| aom_metric_relabel_configs | 否 | Array of Map<String,String> objects | 指标配置 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| check_type | 是 | String | 匹配类型。 cmdLine、env、scope |
| check_mode | 是 | String | 匹配条件。 contain、equals |
| check_content | 是 | Array of strings | 匹配值。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| app_name_rule | 否 | Array of NameRuleContent objects | 组件命名规则 |
| application_name_rule | 否 | Array of NameRuleContent objects | 应用命名规则 |
| environment | 否 | Array of NameRuleContent objects | 环境信息 |
响应参数
状态码: 200
| 参数 | 参数类型 | 描述 |
|---|---|---|
| id | Array of strings | 应用发现规则id |
请求示例
添加或修改一条或多条应用发现规则
PUT https://{Endpoint}/v1/{project_id}/aom/application-discovery-rules
{
"app_rules" : [ {
"id" : "44d6c4bb-f673-4bf4-8d33-313832f37b28",
"name" : "bytest",
"create_time" : "",
"project_id" : "5a6036f48e954fcd84d198cb28db311a",
"enable" : true,
"host_id" : [ ],
"event_name" : "aom_inventory_rules_event",
"spec" : {
"detect_log" : "true",
"log_file_fix" : [ "log", "trace" ],
"discovery_rule" : [ {
"check_type" : "cmdLine",
"check_mode" : "contain",
"check_content" : [ "default" ]
}, {
"check_type" : "scope",
"check_mode" : "equals",
"check_content" : [ "44d6c4bb-f673-4bf4-8d33-313832f37b28" ]
} ],
"attr_list" : [ "cmdLine" ],
"is_detect" : "false",
"priority" : 1,
"name_rule" : {
"app_name_rule" : [ {
"name_type" : "cmdLineHash",
"args" : [ "00000000001" ],
"value" : [ "serviceName1" ]
}, {
"name_type" : "cmdLine",
"args" : [ "/var/paas/kubernetes/", "/kubeconfig" ]
}, {
"name_type" : "env",
"args" : [ "APP_NAME" ]
}, {
"name_type" : "str",
"args" : [ "kube" ]
} ],
"application_name_rule" : [ {
"name_type" : "cmdLineHash",
"args" : [ "00000000001" ],
"value" : [ "applicationName1" ]
}, {
"name_type" : "str",
"args" : [ "kubeproxy" ]
} ]
},
"app_type" : "",
"is_default_rule" : "false",
"log_path_rule" : [ {
"name_type" : "cmdLineHash",
"args" : [ "00000000001" ],
"value" : [ "/xx/xxx/xx.log", "/xx/xxx/xx" ]
} ]
}
} ]
} 响应示例
无
状态码
| 状态码 | 描述 |
|---|---|
| 200 | OK 请求响应成功。 |
| 400 | BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 |
| 401 | Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 |
| 403 | Forbidden请求被拒绝访问。返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 |
| 500 | InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 |
| 503 | ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 |
错误码
请参见错误码。