华为云用户手册

  • 变更配置后对计费的影响 当前包年/包月连接器中的数据存储容量不满足您的业务需要时,您可以在连接器的控制台发起扩容操作,变更时系统将按照如下规则为您计算变更费用: 资源扩容:新配置价格高于老配置价格,此时您需要支付新老配置的差价。 本服务暂不支持降低存储数据容量。这里以资源扩容且无任何优惠的场景为例,假设您在2023/07/08购买了一个连接器(结构化数据存储50G),购买时长为1个月,计划在2023/07/18变更规格为70G的结构化数据存储。旧配置价格为300元/月,新配置价格为420元/月。计算公式如下: 升配费用=(新规格配置价格-旧规格配置价格)*剩余周期 公式中的剩余周期为每个自然月的剩余天数/对应自然月的最大天数。本示例中,剩余周期=13(7月份剩余天数)/ 31(7月份最大天数)+ 8(8月份剩余天数)/ 31(8月份最大天数),代入公式可得升配费用=(420-300)*(13/31+8/31)=81.29(元) 更多信息请参见变更资源规格费用说明。
  • 数据资产运营 现状问题 组织内存在数据不可见、查找困难、标准不统一,无法理解、权限管控难等问题。 数据资源无法有效转化成数据资产,业务与IT之间存在巨大屏障,阻碍数据价值的具体发挥。 方案收益 实现数据资产的全域盘点,支持语义搜索,帮助用户一键查找所需。 支持360度资产刻画,实现数据集、逻辑数据实体、隐私密级的详情查看,帮助用户全面理解数据,洞悉数据资产的流通全局,提升可信度。 基于AppID开展数据隐私及密级管理,加强对数据资产的安全可控。
  • 数字化报告可视化 现状问题 业务、应用、数据和技术架构的变更通过线下方式进行,没有通过统一的系统来发布和承载。 企业的数字化转型过程中的大量投入及工作成果无法快速准确、直观的体现出来。 方案收益 元模型驱动40+数字化报告模板生成,开箱即用,分钟级构建数字化报告。 基于AppID开发的数字化报告,让CXO洞察数字化变革进展。 EA元模型,将数字资产像七巧板一样自由组合,形成利益相关人关心的、多维度的、能辅助决策的数字化报告。
  • 调用API示例 在工程中引入sdk(signer.go)。 import "apig-sdk/go/core" 生成一个新的Signer,输入AppKey和AppSecret。 // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 ak = os.Getenv("SDK_AK"); sk = os.Getenv("SDK_SK"); s := core.Signer{ Key: ak, Secret: sk, } 生成一个新的Request,指定 域名 、方法名、请求url、query和body。 r, _ := http.NewRequest("POST", "http:/c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/api?a=1&b=2", ioutil.NopCloser(bytes.NewBuffer([]byte("foo=bar")))) 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。 r.Header.Add("x-stage", "RELEASE") r.Header.Add("name","value") 进行签名,执行此函数会在请求中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 s.Sign(r) authorization := r.Header.Get("Authorization") r.Header.Add("x-Authorization", authorization) 访问API,查看访问结果。 resp, err := http.DefaultClient.Do(r) body, err := ioutil.ReadAll(resp.Body)
  • 准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装Nodejs安装包,如果未安装,请至Nodejs官方网站下载。 Nodejs安装后,在命令行中,用npm安装“moment”和“moment-timezone”模块。 npm install moment --save npm install moment-timezone --save 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 已在IntelliJ IDEA中安装NodeJS插件,如果未安装,请按照图1所示安装。 图1 安装NodeJS插件
  • 调用API(Node.js)示例 在工程中引入signer.js。 1 2 var signer = require('./signer') var http = require('http') 生成一个新的Signer,填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 var ak = process.env.SDK_AK; var sk = process.env.SDK_SK; var sig = new signer.Signer(); sig.Key = ak; sig.Secret = sk; 生成一个Request对象,指定方法名、请求uri和body。 1 2 var r = new signer.HttpRequest("POST", "c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?a=1"); r.body = '{"a":1}' 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。 1 r.headers = { "x-stage":"RELEASE", "name":"value"} 进行签名,执行此函数会生成请求参数,用于创建http(s)请求,请求参数中添加了用于签名的X-Sdk-Date头和Authorization头。然后为请求参数添加x-Authorization头,值与Authorization头相同。 1 2 var opt = sig.Sign(r) opt.headers["x-Authorization"] = opt.headers["Authorization"] 访问API,查看访问结果。如果使用https访问,则将“http.request”改为“https.request”。 1 2 3 4 5 6 7 8 9 10 11 var req=http.request(opt, function(res){ console.log(res.statusCode) res.on("data", function(chunk){ console.log(chunk.toString()) }) }) req.on("error",function(err){ console.log(err.message) }) req.write(r.body) req.end()
  • 调用API示例 使用JavaScript SDK生成curl命令。 获取“ApiGateway-javascript-sdk.zip”压缩包并解压。在浏览器中打开demo.html,页面如下图所示。 填入Key、Secret、方法名、请求协议、域名和url(认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全)。本示例从前端输入,仅用于演示,例如: 1 2 3 4 Key=4f5f626b-073f-402f-a1e0-e52171c6100c Secret=****** Method=POST Url=https://{apig-endpoint} 填入json格式的Query和Headers,填入Body。其中所访问API的ID为必填项,需要填入具体的ID信息,以参数"x-api-id"填入Headers中。 单击“Send request”,生成curl命令。 $ curl -X POST "https://{apig-endpoint}/" -H "X-Sdk-Date: 20180530T115847Z" -H "Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -d "" 为命令添加x-Authorization头,值与Authorization头相同。将curl命令复制到命令行,访问API。 $ curl -X POST "https://{apig-endpoint}/" -H "X-Sdk-Date: 20180530T115847Z" -H "Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -H "X-Authorization: SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=9e5314bd156d517******dd3e5765fdde4" -d "" Congratulations, sdk demo is running
  • 调用API示例 在工程中引入sdk。 1 using APIGATEWAY_SDK; 生成一个新的Signer, 填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 string ak = System.Environment.GetEnvironmentVariable("SDK_AK"); string sk = System.Environment.GetEnvironmentVariable("SDK_SK"); Signer signer = new Signer(); signer.Key = ak; signer.Secret = sk; 生成一个HttpRequest对象,指定域方法名、请求url和body。 1 2 3 HttpRequest r = new HttpRequest("POST", new Uri("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?query=value")); r.body = "{\"a\":1}"; 给请求添加header头,内容为具体参数数据。如有需要,添加需要签名的其他头域。 1 2 r.headers.Add("x-stage", "RELEASE"); r.headers.Add("name","value"); 进行签名,执行此函数会生成一个新的HttpWebRequest,并在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 1 2 HttpWebRequest req = signer.Sign(r); req.Headers.Add("x-Authorization", string.Join(", ", req.Headers.GetValues("x-Authorization"))); 访问API,查看访问结果。 1 2 3 4 5 6 var writer = new StreamWriter(req.GetRequestStream()); writer.Write(r.body); writer.Flush(); HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); var reader = newStreamReader(resp.GetResponseStream()); Console.WriteLine(reader.ReadToEnd());
  • 调用API示例 在Android工程中的“app/libs”目录下,加入SDK所需jar包。其中jar包必须包括: java-sdk-core-x.x.x.jar commons-logging-1.2.jar joda-time-2.9.9.jar 在“build.gradle”文件中加入okhttp库的依赖。 在“build.gradle”文件中的“dependencies”下加入“implementation 'com.squareup.okhttp3:okhttp:3.11.0'”。 1 2 3 4 5 dependencies { ... ... implementation 'com.squareup.okhttp3:okhttp:3.11.0' } 创建request,输入AppKey和AppSecret,并指定域名、方法名、请求uri和body。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Request request = new Request(); try { // 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 String ak = System.getenv("SDK_AK"); String sk = System.getenv("SDK_SK"); request.setKey(ak); request.setSecret(sk); request.setMethod("POST"); request.setUrl("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1"); request.addQueryStringParam("name", "value"); request.addHeader("Content-Type", "text/plain"); request.addHeader("name", "value"); request.setBody("demo"); } catch (Exception e) { e.printStackTrace(); return; } 对请求进行签名,并为请求添加x-Authorization头,值与Authorization头相同。然后生成okhttp3.Request对象来访问API。 1 2 3 4 5 okhttp3.Request signedRequest = Client.signOkhttp(request); String authorization = signedRequest.header("Authorization"); signedRequest = signedRequest.newBuilder().addHeader("x-Authorization",authorization).build(); OkHttpClient client = new OkHttpClient.Builder().build(); Response response = client.newCall(signedRequest).execute();
  • SDK调用常见错误码/错误信息 表1 常见错误码/错误信息 错误码 错误信息 错误原因 解决方案 DLM.0 null 表示API调用成功。 表示调用成功,无需处理。 APIG.0101 The API does not exist or has not been published in the environment API未发布 url错误 发布API 确认请求的url和实际url是否相同 APIG.0106 Orchestration error: Invalid header parameter: x-Authorization, required SDK未添加x-Authorization。 SDK使用前准备步骤3。 APIG.0106 Orchestration error: Invalid ___ parameter: ___, required 未传指定参数。 调用时上传此参数。 APIG.0201 Backend timeout 后端超时(API网关请求维持50秒后未收到返回结果,会返回此错误信息。) 请先确认数据服务访问日志,如果访问日志中有数据(数据略有延迟),则说明数据源取数时间过长,请尽量优化取数sql逻辑。 如果访问日志中无数据,请确认(共享版:数据服务gateway/专享版:数据服务集群)是否运行中。 APIG.0303 Incorrect app authentication information: app not found 应用不存在。 确认请求的key和secret是否准确。 APIG.0304 The app is not authorized to access the API 应用无权访问当前API。 确认API已授权给应用。 确认请求的key和secret是否准确。 APIG.0308 The throttling threshold has been reached: policy domain over ratelimit, limit:1000, time:1 day 域名的请求次数达到了给定的上限:1天1000次。 建议:去API网关,为分组绑定域名。 临时规避:切换分组。域名以分组为单位,每个分组限制独立计算。 DLM.4018 Api is not exist API不存在。 20200630版本前发布的API: 请确认调用时参数x-api-id的值,是否正确(该值为所访问API的ID,请向此API的提供者获取) 20200630版本后发布的API: 确认请求的url和实际url是否相同。 若为专享版刚发布的API,请稍作等待,API下发至集群存在短暂的延时。 其他(数据同步异常): 停用/下线对应API,然后恢复/发布。 尝试重启集群(逐个节点重启可避免业务影响)。 DLM.4094 Call api failed. 调用API失败。 确认调用所执行的SQL正确,可以正常使用(所执行SQL详见访问日志,仅API方可见)。 CDM 中代理异常,错误原因详见返回的DLG错误信息。 调用超时,若为DWS数据库,建议API采用自定义分页。 调用超时,请优化查询语句,确保数据库中能短时间内完成执行。 DLM.4211 Token invalid token校验不通过。 确认token是否正确。 确认token所属租户,是否已授权或已位于白名单中。 DLM.4312 Missing parameters: ___ 缺少指定参数。 调用时上传此参数。 400 App does not have permission to access API. 应用无权访问当前API。 确认API已授权给应用。 确认请求的key和secret是否准确。 确认API和APP的授权关系仍在有效期内。 401 Authorization not found. 签名信息未找到。 应用认证:SDK使用前准备步骤3。 发布到网关的专享版 IAM 认证:IAM认证的API发布到网关后,不支持直接访问集群的token认证形式。 401 Authorization format incorrect. 签名格式错误。 建议使用SDK生成签名。 401 Signing key not found. 签名密钥未找到。 确认请求的key和secret是否准确。 401 Signed header ___ not found. 签名头未找到。 请确认用于签名的header头参数在调用时上传了。 401 Header x-sdk-date not found. 签名头x-sdk-date未找到。 此参数为签名时自动生成,若通过其他方式调用,请将SDK签名后的此参数在调用时也进行上传。 401 Signature expired. 签名过期。 签名具有一定的有效期,当前签名已过期,请重新生成签名。 请确认本地时间和实际时间是否一致。 如果本地时间是准确的,请联系相关人员确认集群节点时间,可能节点时间存在异常。 401 Verify authroization failed. 签名校验失败。 请确认进行签名的所有参数,均已上传且和签名时相同,包括且不限于url、path、header、query、body等。 说明: 如果自行对接了第三方网关等,请求地址和数据服务展示的地址不一致,需要在请求头中补充参数x-forwarded-host,值为签名时使用的请求地址。 如果使用get请求,不要定义body体。 DLG.0902 Fail to call the agent. For details about No matching constant for [-1], see the CDM logs. CDM上的代理拒绝服务。 SQL执行时间过长 CDM资源不足了 确认SQL执行时长,如果时间过长,建议优化SQL(默认分页的话则建议使用自定义分页)。 如果SQL执行时间较短,当前没有其他服务正在作业的话,重启CDM。 DAYU.1088 Failed to process the request sent by the agent. CDM无响应。 尝试重启CDM。 可能是CDM升级引起,考虑新买一个CDM。 父主题: 数据服务SDK参考
  • 准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 获取并安装PHP安装包,如果未安装,请至PHP官方下载页面下载。 将PHP安装目录中的“php.ini-production”文件复制到“C:\windows”,改名为“php.ini”,并在文件中增加如下内容。 1 2 3 extension_dir = "php安装目录/ext" extension=openssl extension=curl 已在IntelliJ IDEA中安装PHP插件,如果未安装,请按照图1所示安装。 图1 安装PHP插件
  • 数据服务SDK使用场景 数据API是否必须通过数据服务SDK代码才能调用,与数据API的认证方式有关。只有当通过数据服务创建数据API使用推荐的APP认证方式时,才能通过SDK方式进行数据API调用;当使用其他认证方式时,可以通过API调用工具或浏览器调用。 APP认证:将APP认证方式的API授权给应用后,使用应用的密钥对(AppKey和AppSecret)进行安全认证,支持通过SDK或API调用工具调用,安全级别高,推荐使用。 IAM认证:将IAM认证方式的API授权给当前账号或其他账号后,借助从IAM服务获取的用户Token进行安全认证。支持通过API调用工具调用,安全级别中等。 无认证:不需要认证,所有用户均可访问,建议仅在测试接口时使用,不推荐正式使用。使用无认证方式时,无需鉴权认证信息,安全级别低,通过API调用工具或浏览器即可直接调用。
  • 准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装Python安装包(可使用2.7.9+或3.X),如果未安装,请至Python官方下载页面下载。 Python安装完成后,在命令行中使用pip安装“requests”库。 pip install requests 如果pip安装requests遇到证书错误,请下载并使用Python执行此文件,升级pip,然后再执行以上命令安装。 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 已在IntelliJ IDEA中安装Python插件,如果未安装,请按照图1所示安装。 图1 安装Python插件
  • 调用API示例 在工程中引入apig_sdk。 1 2 3 from apig_sdk import signer import requests import os 生成一个新的Signer,填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 # 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 ak = os.environ("SDK_AK"); sk = os.environ("SDK_SK"); sig = signer.Signer() sig.Key = ak sig.Secret = sk 生成一个Request对象,指定方法名、请求uri、header和body。 1 2 3 4 r = signer.HttpRequest("POST", "https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?a=1", {"x-stage": "RELEASE", "name": "value"}, "body") 进行签名,执行此函数会在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 1 2 sig.Sign(r) r.headers["x-Authorization"] = r.headers["Authorization"] 访问API,查看访问结果。 1 2 3 resp = requests.request(r.method, r.scheme + "://" + r.host + r.uri, headers=r.headers, data=r.body) print(resp.status_code, resp.reason) print(resp.content)
  • 批量设置多个接入配置 支持同时批量设置多个接入配置,操作简单,不用重复配置即可快速完成多个场景的接入配置 在“接入管理”页面,单击“批量接入”,进入配置详情页面,请参考表6。 表6 批量接入设置 类型 操作 说明 基本配置 接入类型 选择云容器引擎 CCE-应用日志。 接入配置数量 在输入框填写接入配置数量,单击“添加接入配置”。 在接入配置下方默认已有1个接入配置,最多支持再添加99个数量,因此支持同时添加100个接入配置。 接入配置 接入列表 左侧显示接入配置的信息,最多支持添加99个配置。 右侧显示配置接入的内容,详细请参考步骤4:采集配置进行设置。 一个接入配置设置完成后,单击“应用于其他接入规则”即可将该接入配置复制到其他接入配置。 单击“参数检查”,检查成功后,单击“提交”,批量接入设置完成。 例如添加了4个接入配置,批量创建成功后,在接入规则页签下方,就会显示4条接入配置数量。 (可选)支持对接入配置任务进行以下操作: 勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。 勾选多个已创建成功的接入配置,单击开启或关闭按钮。接入配置状态关闭后不会继续采集日志。 勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。
  • 使用限制 支持容器引擎为Docker的CCE集群节点。详情请查看云容器引擎(CCE)。 支持使用Containerd作为容器引擎的CCE集群节点(ICAgent 5.12.130及以上版本)。 支持 CCE Turbo 集群(ICAgent 5.12.130及以上版本)。 容器内的日志目录如果已挂载到主机目录上,将无法通过配置容器文件路径方式采集到LTS,只能通过配置节点文件路径方式采集到LTS。 Docker存储驱动限制:容器文件日志采集目前仅支持overlay2存储驱动,不支持devicemapper作为存储驱动的节点。查看存储驱动类型,请使用如下命令: docker info | grep "Storage Driver" 如果选择日志流时,采集方式为采集到集中日志流时,则必须已创建CCE集群。
  • 步骤6:完成接入配置 在接入规则页签,则会生成一条接入配置信息。 单击接入配置名称可进入详情页面,查看该接入配置详细信息。 单击接入配置操作列的“编辑”重新修改接入配置信息。 单击接入配置操作列的“标签管理”即可添加标签。 单击接入配置操作列的“复制”复制一条新的接入配置信息。 单击接入配置操作列的“删除”即可删除接入配置信息。 单击接入配置操作列的“采集诊断”,可查看ICAgent异常监控、ICAgent整体状态和ICAgent采集监控。
  • 前提条件 CCE集群已安装ICAgent并且已创建相关节点自定义标识的主机组(如果不满足,配置CCE接入LTS时会自动检查修复)。 首次使用 AOM 2.0的用户,请参考开通AOM2.0授权使用AOM2.0,进入AOM2.0控制台后,请参考云服务授权授予 云日志 服务 (LTS)、云容器引擎 (CCE)等云服务数据的访问权限。 在“主机”页面,选择“CCE集群”,在搜索框选择目标集群,单击“升级ICAgent”,详细操作请参考升级ICAgent。 已关闭采集容器标准输出到AOM的开关。 开启“ICAgent诊断开关”用于查看ICAgent异常监控、ICAgent整体状态和ICAgent采集监控,请参考设置ICAgent日志采集开关。
  • 参考示例1:出现关键字即触发告警 如果您希望日志中出现目标关键字时,就能触发告警,则您可以参考本示例设置查询语句和关键词告警规则。以下示例仅供参考,请以实际业务为准。 设置的关键字一定是日志流存在的关键字,例如Error关键字。 图1 查询结果 查询语句:选择查询时间范围为15分钟,然后执行如下语句,查询包含Error关键字的日志。更多搜索语法请参考LTS搜索语法介绍。 图2 查询语句 告警通知:创建上述告警规则后,只要日志中出现Error关键字,您就可以在“告警列表”收到告警通知。您还可以单击告警名称,查看告警详情,进行溯源。 图3 告警报错
  • 告警规则后续操作 支持对单个告警规则进行如下操作: 修改告警规则:单击告警规则所在行后的,在“修改告警规则”页面,修改规则名称、查询条件、检测规则等信息,修改完成后,单击“确定”。 开启告警规则:单击告警规则所在行后的(关闭告警规则后,才会显示开启按钮),开启告警规则。 关闭告警规则:单击告警规则所在行后的(开启告警规则后,才会显示关闭按钮),关闭告警规则。 临时关闭告警规则:单击告警规则所在行后的,设置临时关闭的截止时间。 复制告警规则:单击告警规则所在行后的,复制告警规则。 删除告警规则:单击告警规则所在行后的,单击“确定”删除该规则。 勾选多个告警规则后,支持对多个告警进行批量操作:开启、关闭、临时关闭、取消临时关闭、告警恢复开启、告警恢复关闭、删除、导出。 鼠标悬浮在规则名称上,显示修改后的规则名称和原始名称。不支持修改首次创建的原始名称。
  • 参考示例2:根据关键字出现的次数设置告警 如果您希望在一定时间范围内日志关键字出现的次数达到指定次数时,才触发告警,则您可以参考本示例设置查询分析语句和SQL告警规则。以下示例仅供参考,请以实际业务为准。 使用“SELECT count(*) as Error”在目标日志流查询当前Error总共出现90次。 图4 查询结果 查询语句:选择查询时间范围为5分钟,然后执行如下语句“SELECT count(*) as Error”,统计5分钟内出现Error关键字的次数。更多搜索语法请参考SQL分析语法介绍。 图5 查询语句 告警通知:创建上述告警规则后,只要日志中出现Error关键字超过2次,您就可以在“告警列表”收到告警通知。您还可以单击告警名称,查看告警详情,进行溯源。 图6 告警报错
  • 创建多个告警规则 支持批量创建多个告警规则。 在“告警规则”页面,批量导入告警规则。 单击“导入”,进入导入告警规则页面。 下载告警模板到本地填写完成。 单击“选择文件”,选择本地填写好的文件。 确认导入的规则信息无误后,单击“导入”。 导入成功后,在规则列表下方显示告警规则明细。 单击“批量编辑”,进入批量编辑告警规则页面。 在基本配置下方,输入告警规则数量,单击“添加告警规则”。 或者单击“导入”,批量导入告警规则。 在规则列表下方默认已有1个告警规则,最多支持再添加199个数量,因此支持同时添加200个告警规则。 在规则列表下方,请参考创建单个搜索分析告警(管道符方式-邀测)、创建关键词告警规则、创建SQL告警规则设置告警规则,设置完成后,单击“提交”。 一个告警规则设置完成后,单击“应用于其他告警规则”即可将该告警规则复制到其他告警规则。 例如添加了4个告警规则,批量创建成功后,在告警规则页签下方,就会显示4条告警规则。
  • 请求示例 { "cases" : [ "v91k0000vqss36au" ], "taskName" : "taskTestSuite2024/8/31 16:0:57", "releaseversion" : "", "resourcePool" : { "activeState" : "ACTIVE", "id" : "DEFAULT", "type" : "DEFAULT" }, "functionType" : "2" }
  • 响应示例 状态码: 200 OK { "status" : "success", "result" : { "taskId" : "b98e483aecba4fe3b00b0fe484c391ca", "needApprove" : null, "warn" : [ ], "packageType" : "codearts.testplan.china.pro", "isPopup" : false }, "error" : null }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 cases 否 Array of strings 用例列表 functionType 否 String 执行的功能类型:"1"表示执行;"2"表示调试 releaseversion 否 String 发布版本号 resourcePool 否 ResourcePool object 资源池 taskName 否 String 任务名称 表4 ResourcePool 参数 是否必选 参数类型 描述 activeState 否 String 活动状态 id 否 String id name 否 String 名称 selected 否 Boolean 是否被选中 type 否 String 类型
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error CommonResponseErrorOfAPITest object 错误详情 reason String 错误原因 result DnsMapping object DNS配置结果集 status String 状态值,如success、error code String 错误码 表5 CommonResponseErrorOfAPITest 参数 参数类型 描述 code String 错误码 reason String 错误原因 表6 DnsMapping 参数 参数类型 描述 dns Array of DnsMappingNode objects DNS配置 表7 DnsMappingNode 参数 参数类型 描述 domain_name String 域名信息 ips Array of strings 域名对应的IP
  • 响应示例 状态码: 200 OK { "status" : "success", "result" : { "dns" : [ { "ips" : [ "127.0.0.1" ], "domain_name" : "www.baidu.com" } ] }, "reason" : null, "error" : null, "code" : null }
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 total Integer 起始记录数 大于 实际总条数时, 值为0, 分页请求才有此值 value Array of IteratorVersionSummaryVo objects 实际的数据类型:单个对象,集合 或 NULL reason String 业务失败的提示内容,对内接口才有此值 page_size Integer 每页展示条数 page_no Integer 页码 has_more Boolean 是否有更多 表6 IteratorVersionSummaryVo 参数 参数类型 描述 uri String 资源URI type String 资源类型 author String 创建人 name String 名称 rank Integer 级别 version String 待测版本 owner String 处理者ID creator String 创建人ID iterations String 关联迭代 description String 描述 region String 区域 last_modifier String 最后修改人 last_modified String 最后修改时间 last_modified_timestamp Long 修改时间时间戳 last_change_time String 最后变更时间 version_uri String 版本URI origin_uri String 源资源URI parent_uri String 父资源URI parent_path String 父资源路径 creation_version_uri String 创建版本URI creation_date String 创建时间 creation_date_timestamp Long 创建时间时间戳 author_name String 创建人名称 comment String 备注 number String 编号 is_master Integer 是否为Master分支 is_iterator Integer 是否为迭代 plan_start_date String 开始时间 plan_end_date String 结束时间 service_id String 微服务ID service_name String 微服务名 pbi_id String PBI ID pbi_name String PBI信息 plan_id String 计划ID metric_pbi_ids String 度量PBI ID metric_pbi_id_names String 度量PBI名称 last_syn_date String 最后同步时间 is_closed String 版本是否关闭 asyn_git String 是否同步git库 schema_no Integer schema编号 finish_date String 迭代实际完成时间 owner_name String 处理者名称 creator_name String 创建人名称 current_stage String 当前所处阶段 service_types String 服务类型 risk_rating Integer 风险等级 risk_des String 风险描述 project_uuid String 项目ID domain_id String 租户ID pi_id String pi的id start_date String 计划开始时间 start_date_timestamp Long 计划开始时间时间戳 end_date String 计划结束时间 end_date_timestamp Long 计划结束时间时间戳 actual_start_date String 实际开始时间 actual_start_date_timestamp Long 实际开始时间时间戳 actual_end_date String 实际完成时间 actual_end_date_timestamp Long 实际开始时间时间戳 is_expired String 是否超期 expired_info String 计划过期信息,空代表不超期,否则给出具体超期信息 stages Array of strings 迭代计划,默认包含design,execute,report design DesignSummaryVo object 设计阶段信息汇总 execute ExecuteSummaryVo object 执行阶段信息汇总 report ReportSummaryVo object 报告阶段信息汇总 branch_uri String 所属分支URI branch_name String 所属分支名称 表7 DesignSummaryVo 参数 参数类型 描述 issue_num Integer 需求总数 issue_cover_num Integer 已覆盖需求数 case_num Integer 用例数 表8 ExecuteSummaryVo 参数 参数类型 描述 execute_case_num Integer 已执行用例数 defect_num Integer 缺陷总数 completed_defect_num Integer 已完成缺陷数 case_success_rate String 测试用例通过率 case_execution_rate String 用例执行率 表9 ReportSummaryVo 参数 参数类型 描述 case_success_rate String 用例通过率 case_complete_rate String 用例完成率 状态码: 400 表10 响应Body参数 参数 参数类型 描述 code String 业务失败的错误码 reason String 业务失败的提示内容 状态码: 401 表11 响应Body参数 参数 参数类型 描述 code String 业务失败的错误码 reason String 业务失败的提示内容 状态码: 404 表12 响应Body参数 参数 参数类型 描述 code String 业务失败的错误码 reason String 业务失败的提示内容 状态码: 500 表13 响应Body参数 参数 参数类型 描述 code String 业务失败的错误码 reason String 业务失败的提示内容
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 comment 是 String 评论 notifier 否 Array of strings 通知人列表 version_uri 否 String 分支uri/测试计划uri
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 uri String URI creator String 创建者 comment String 评论内容 notifier Array of strings 评论通知人 test_case_uri String 测试用例URI create_time String 创建时间 create_time_timestamp Long 创建时间时间戳 update_time String 更新时间 update_time_timestamp Long 更新时间时间戳 project_uuid String 项目UUID version_uri String 版本/测试计划URI display_name String 是否显示通知人 状态码: 400 表5 响应Body参数 参数 参数类型 描述 code String 业务失败的错误码 reason String 业务失败的提示内容 状态码: 401 表6 响应Body参数 参数 参数类型 描述 code String 业务失败的错误码 reason String 业务失败的提示内容 状态码: 404 表7 响应Body参数 参数 参数类型 描述 code String 业务失败的错误码 reason String 业务失败的提示内容 状态码: 500 表8 响应Body参数 参数 参数类型 描述 code String 业务失败的错误码 reason String 业务失败的提示内容
共100000条