更新时间:2024-04-15 GMT+08:00

添加或修改应用发现规则

功能介绍

该接口用于添加或修改一条或多条应用发现规则。同一projectid下可添加的规则上限为100条。

URI

PUT /v1/{project_id}/aom/application-discovery-rules

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户从IAM申请到的projectid,一般为32位字符串。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

从IAM服务获取的用户Token。

Content-Type

String

指定类型为application/json。

表3 请求Body参数

参数

是否必选

参数类型

描述

app_rules

Array of AppRuleV1 objects

应用发现规则列表

表4 AppRuleV1

参数

是否必选

参数类型

描述

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

规则描述

表5 AppRulesSpecV1

参数

是否必选

参数类型

描述

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

指标配置

表6 DiscoveryRuleV1

参数

是否必选

参数类型

描述

check_type

String

匹配类型。 cmdLine、env、scope

check_mode

String

匹配条件。 contain、equals

check_content

Array of strings

匹配值。

表7 NameRuleV1

参数

是否必选

参数类型

描述

app_name_rule

Array of NameRuleContent objects

组件命名规则

application_name_rule

Array of NameRuleContent objects

应用命名规则

environment

Array of NameRuleContent objects

环境信息

表8 NameRuleContent

参数

是否必选

参数类型

描述

name_type

String

取值类型。

args

Array of strings

命令行。

value

Array of strings

日志路径。

响应参数

状态码: 200

表9 响应Body参数

参数

参数类型

描述

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

被请求的服务无效。 建议直接修改该请求,不要重试该请求。

错误码

请参见错误码