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>
      
  • 日志采集

    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参数采集说明

  1. 参数来源(source)
    url/body, url-getParameter()获取参数,body-从requestBody中获取参数

  2. 参数名称(dataName)
    source为url时,即为getParameter(dataName)

  3. 参数路径(dataPath)
    source为body时有效,与参数名称(dataName)配合使用,表示数据在json对象中的位置
    如body={'data':{'user':{'name':'名称'}}},获取name,则dataPath=/data/user,dataName=name

  4. 默认值(defValue)
    当参数获取不到时,日志数据主体里面填充的默认值

  5. 是否必须(require)
    true/false,参数是否必须
    如果参数必须的且无默认值,在没有获取到参数的情况下不发送日志

  6. 日志数据名称(logName)
    日志数据主体data中的key

resultCatches - Response参数采集说明

  1. 参数来源(source)
    body(response只有body来源)

  2. 参数名称(dataName) + 参数路径(dataPath)
    表示数据在json对象中的位置
    如body={'data':{'user':{'name':'名称'}}},获取name,则dataPath=/data/user,dataName=name

  3. 默认值(defValue)
    当参数获取不到时,日志数据主体里面填充的默认值

  4. 是否必须(require)
    true/false,参数是否必须
    如果参数必须的且无默认值,在没有获取到参数的情况下不发送日志

  5. 日志数据名称(logName)
    日志数据主体data中的key

江苏卓易信息科技股份有限公司-TNG基础平台组 all right reserved,powered by Gitbook该文件最后修改时间: 2021-01-27 06:23:28

results matching ""

    No results matching ""