4.2 项目集成日志采集
日志采集的方式:手动采集 & 自动采集
手动采集
优点:灵活--可以在项目任意位置采集
缺点:代码侵如性强
pom.xml依赖
<dependency> <groupId>com.eazytec.middleware</groupId> <artifactId>uba-lite-sdk</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
- pom.xml依赖 (1.7jdk)
<dependency> <groupId>com.eazytec.middleware</groupId> <artifactId>uba-lite-sdk</artifactId> <version>1.0-SNAPSHOT</version> <classifier>jdk17</classifier> </dependency>
- pom.xml依赖 (1.7jdk)
日志采集
login改成日志类型对应的编码
addData添加需要采集的数据/**简化代码:项目运行环境和appid sdk自动获取判断**/ UbaEventCollector.build("login") .addData("usertype","2") .addData("userid","userid-123") .collect(); /**显示指定应用的appid**/ UbaEventCollector.build("login","yourappid") .addData("usertype","2") .addData("userid","userid-123") .collect(); /**显示切换项目运行环境,全局调用一次即可**/ UbaEventCollector.setPro(true); //线上环境 UbaEventCollector.setPro(false); //测试环境 /**非流式api**/ UbaEvent myEvent = UbaEvent.build("login","appId") .addData("userid","userid-123") .addData("usertype","2"); UbaEventCollector.collect(myEvent);
domain说明
| 序号 | 系统 | 环境 | 地址 |备注 | | :----- | :----- | :----- |:----- |:----- | | 1 | 卓易政企通 | 测试 | https://test-ozayy1qr.app.zqtong.com |适用【园企通】【行业政企通】【乡镇政企通】【协会政企通】 | | 2 | 卓易政企通 | 线上 | https://ozayy1qr.app.zqtong.com |适用【园企通】【行业政企通】【乡镇政企通】【协会政企通】 | | 3 | 宜兴政企通 | 测试 | https://test-log-yxzqt.app.zqtong.com |适用【宜兴政企通】 | | 4 | 宜兴政企通 | 线上 | https://log-yxzqt.app.zqtong.com |适用【宜兴政企通】 | | 5 | 宜兴政企通 | 线上-政务外网 | http://10.168.37.14:30070 |适用【宜兴政企通-政务外网】 | | 6 | 江苏政企通 | 测试 | https://test-log-jszqt.app.zqtong.com |适用【江苏政企通】 | | 7 | 江苏政企通 | 线上 | https://log-jszqt.app.zqtong.com |适用【江苏政企通】 |
手动采集(http请求)
请求URL
{domain}
请求方式
POST
请求Header参数
key | value | 举例 | 是否必须 |
---|---|---|---|
Content-Type | application/json | application/json | 是 |
- 请求Body
Type: raw{ "event": { "appId": "String | 必填 | 申请的clientID", "code": "String | 必填 | 日志类型编码", "data": { "日志参数-key1":"日志参数-value", "日志参数-key2":"日志参数-value", "日志参数-key3":"日志参数-value" }, "header": { "env": "String | 必填 | PRO-线上环境,DEV-测试环境" } } }
示例
{
"event":
{
"appId": "zqtong-poly-mine",
"code": "login",
"data": {
"ip": "127.0.0.1",
"usertype": "2",
"userid": "ab3374b5-c0db-4257-a36c-0b235e90d0e5",
"device": "android"
},
"header": {
"env": "PRO"
}
}
}
- 返回
"success"
动态采集(beta测试)
优点:无需写代码,随时增加/删除日志采集
缺点:暂时只支持对http请求进行日志采集,采集数据来源:request & response
pom.xml依赖
<dependency> <groupId>com.eazytec.middleware</groupId> <artifactId>uba-lite-track-starter</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
配置应用的动态采集(UI未开发,有需要联系@龚彬)
提供配置数据直接入库
[{
"appid": "zqtong-poly-mine",
"eventCode": "track1",
"httpMethod": "POST",
"urlPattern": "/healthcheck",
"paramCatches": [{
"dataName": "title",
"dataPath": "",
"logName": "h_title",
"source": "body",
"require":false,
"defValue":"默认标题"
}, {
"dataName": "name",
"dataPath": "",
"logName": "h_name",
"source": "url",
"require":true,
"defValue":"默认名称"
}],
"resultCatches": [{
"dataName": "data",
"dataPath": "",
"logName": "h_data",
"source": "",
"require":false
}]
}]
字段 | 描述 |
---|---|
appid | 应用的appid |
eventCode | 要输出的日志类型编码 |
httpMethod | 请求类型(POST/GET) |
urlPattern | 请求的uri,完全匹配 |
paramCatches | 从request中采集数据 |
resultCatches | 从response中采集数据 |
paramCatches - Request参数采集说明
参数来源(source)
url/body, url-getParameter()获取参数,body-从requestBody中获取参数参数名称(dataName)
source为url时,即为getParameter(dataName)参数路径(dataPath)
source为body时有效,与参数名称(dataName)配合使用,表示数据在json对象中的位置
如body={'data':{'user':{'name':'名称'}}},获取name,则dataPath=/data/user,dataName=name默认值(defValue)
当参数获取不到时,日志数据主体里面填充的默认值是否必须(require)
true/false,参数是否必须
如果参数必须的且无默认值,在没有获取到参数的情况下不发送日志日志数据名称(logName)
日志数据主体data中的key
resultCatches - Response参数采集说明
参数来源(source)
body(response只有body来源)参数名称(dataName) + 参数路径(dataPath)
表示数据在json对象中的位置
如body={'data':{'user':{'name':'名称'}}},获取name,则dataPath=/data/user,dataName=name默认值(defValue)
当参数获取不到时,日志数据主体里面填充的默认值是否必须(require)
true/false,参数是否必须
如果参数必须的且无默认值,在没有获取到参数的情况下不发送日志日志数据名称(logName)
日志数据主体data中的key