4.1 监控
4.1.6 添加或修改服务发现规则
功能介绍
该接口用于添加或修改一条或多条服务发现规则。同一projectid下可添加的规则上限 为100条。
调试
您可以在API Explorer中调试该接口。
URI
PUT /v1/{project_id}/inv/servicediscoveryrules
表4-53 路径参数
参数 是否必选 参数类型 描述
project_id 是 String 租户从IAM申请到的projectid,一 般为32位字符串。
请求参数
表4-54 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 从IAM服务获取的用户Token。
Content-Type 是 String 指定类型为application/json。
表4-55 请求 Body 参数
参数 是否必选 参数类型 描述
appRules 否 Array of AppRules objects
服务参数。
表4-56 AppRules
参数 是否必选 参数类型 描述
createTime 否 String 规则创建时间(创建时不传,修改 时传查询返回的createTime)。
缺省值:1599098476654
参数 是否必选 参数类型 描述
enable 是 Boolean true、false 规则是否启用。
eventName 是 String aom_inventory_rules_event 规 则事件名称,对于服务发现固定 为"aom_inventory_rules_event"
。 hostid 否 Array of
strings 主机ID(暂不使用,传空即可)。
id 是 String 创建时填空,修改时填规则ID。
name 是 String 规则名称。 字符长度小于64位,
以小写字母(a-z)开头,只能包含 0-9/a-z/-,不能以-结尾。
projectid 是 String 租户从IAM申请到的projectid,一 般为32位字符串。
spec 是 AppRulesSpe
c object 规则详情。
表4-57 AppRulesSpec
参数 是否必选 参数类型 描述
appType 是 String 服务类型,用于标记服务的分类,
仅用于规则分类和界面展示。可 以填写任意字段,如按技术栈分 类可填写Java,Python。按作用 分类可填写collector(采 集),database(数据库)等。
attrList 否 Array of
strings 属性列表(暂不使用,可不传)。
cmdLine、env
detectLog 是 String 是否开启日志采集。 true、
false
参数 是否必选 参数类型 描述 discoveryRule 是 Array of
DiscoveryRul e objects
规则发现部分,数组中有多个对
isDefaultRule 是 String 是否为默认规则。 true、false
isDetect 是 String 是否为规则预探测场景(预探测
场景不会保存规则,仅用于规则 下发之前验证该规则能否有效发 现节点上的进程)。 true、false logFileFix 是 Array of
strings 日志文件的后缀。 log、trace、
out logPathRule 否 Array of
LogPathRule
nameRule 是 NameRule
object 发现上来的服务、应用的命名规 则。
priority 是 String 规则优先级。 1~9999的整数字 符串,默认取值为9999
表4-58 DiscoveryRule
参数 是否必选 参数类型 描述
checkContent 是 Array of
strings 匹配值。
checkMode 是 String 匹配条件。 contain、equals checkType 是 String 匹配类型。 cmdLine、env、
scope
表4-59 LogPathRule
参数 是否必选 参数类型 描述
args 是 Array of
strings 命令行。
nameType 是 String 取值类型。 cmdLineHash
value 是 Array of
strings 日志路径。
表4-60 NameRule
参数 是否必选 参数类型 描述
appNameRule 是 Array of AppNameRul e objects
服务命名部分,数组中有多个对 象时表示将每个对象抽取到的字 符串拼接作为服务的名称。
nameType取值cmdLine时args 格式为["start","end"],表示抽取 命令行中start、end之间的字 符。 nameType取值cmdLine时 args格式为["aa"],表示抽取环境 变量名为aa对应的环境变量 值。 nameType取值str时,args 格式为["fix"],表示服务名称最后 拼接固定文字fix。 nameType取 值cmdLineHash时,args格式为 ["0001"],value格式为["ser"],表 示当启动命令是0001时,服务名 称为ser。
参数 是否必选 参数类型 描述 applicationNa
meRule 是 Array of ApplicationN ameRule objects
应用命名部分。 nameType取值 cmdLine时args格式为
["start","end"],表示抽取命令行 中start、end之间的字符。
nameType取值cmdLine时args 格式为 ["aa"],表示抽取环境变 量名为aa对应的环境变量值。
nameType取值str时,args格式为 ["fix"],表示服务名称最后拼接固 定文字fix。 nameType取值 cmdLineHash时,args格式为 ["0001"],value格式为["ser"],表 示当启动命令是0001时,应用名 称为ser。
表4-61 AppNameRule
参数 是否必选 参数类型 描述
nameType 是 String 取值类型。 从cmdLineHash、
cmdLine、env、str里面选取。
args 是 Array of
strings 输入值。
value 否 Array of
strings 服务名(仅nameType为 cmdLineHash时填写)。
表4-62 ApplicationNameRule
参数 是否必选 参数类型 描述
nameType 是 String 取值类型。 从cmdLineHash、
cmdLine、env、str里面选取。
args 是 Array of
strings 输入值。
value 否 Array of
strings 服务名(仅nameType为 cmdLineHash时填写)。
响应参数
状态码: 200
表4-63 响应 Body 参数
参数 参数类型 描述
errorCode String 响应码。
errorMessage String 响应信息描述。
请求示例
无
响应示例
状态码: 200 OK 请求响应成功。
{ "errorCode" : "SVCSTG.INV.2000000", "errorMessage" : ""
}
状态码
状态码 描述
200 OK 请求响应成功。
400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。
401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出 客户端所提供的认证信息不正确或非法。
403 Forbidden 请求被拒绝访问。返回该状态码,表明请求能够到达服务端, 且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置 为拒绝访问,建议直接修改该请求,不要重试该请求。
500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的 请求。
503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重 试该请求。
错误码
请参见错误码。