Java埋点SDK集成

anwei发表于:2019年12月06日 17:33:48更新于:2019年12月06日 17:34:23

Java埋点SDK

集成Java SDK

在服务端Java 应用中集中Java SDK,来上报离线的用户行为。

我们推荐使用 Maven 管理 Java 项目,请在 pom.xml 文件中,添加以下依赖信息,Maven 将自动获取Java SDK 并更新项目配置。


pom.xml    
    <dependencies>     
         // ...      
      <dependency>        
          <groupId>io.growing.sdk.java</groupId>        
          <artifactId>growingio-java-sdk</artifactId>        
          <version>1.0.3</version>      
      </dependency>    
    
    </dependencies>

若出现依赖冲突的问题(例如运行时找不到类),可以使用 standalone 版本:


pom.xml   
    <dependencies>      
       // ...     
       <dependency>        
         <groupId>io.growing.sdk.java</groupId>       
         <artifactId>growingio-java-sdk</artifactId>        
         <version>1.0.3</version>        
         <classifier>standalone</classifier>      
       </dependency>    
    </dependencies>

目前,Java SDK 支持的Java版本为java 1.6+。

配置Java SDK

在Java SDK的jar包中,包含了一个默认的配置文件。


gio_default.properties
     #项目采集端地址
     api.host=https://api.growingio.com
     
     #项目ID
     #project.id=填写您项目的AccountID
     
     #消息发送间隔时间,单位ms(默认 100)
     send.msg.interval=100
     
     #消息发送线程数量
     send.msg.thread=3
     
     #消息队列大小
     msg.store.queue.size=500
    
     # 数据压缩 false:不压缩, true:压缩
     # 不压缩可节省cpu,压缩可省带宽
     compress=true
     
     # 日志输出级别(debug | error)
     logger.level=debug
     
     # 自定义日志输出实现类
     logger.implemention=io.growing.sdk.java.logger.GioLoggerImpl
     
     # 运行模式,test:仅输出消息体,不发送消息,production:发送消息
     run.mode=test
     
     #http 连接超时时间,默认2000ms
     #connection.timeout=2000
     
     #http 连接读取时间,默认2000ms
     #read.timeout=2000

其中,开发者需要根据自己的情况修改配置参数,保存为 gio.properties ,并放置在自己Java程序的classpath之中。如


gio.properties

#项目采集端地址
api.host=https://api.growingio.com

#项目ID
project.id=xxxxxxxxx

# 日志输出级别
logger.level=error

# 运行模式,test:仅输出消息体,不发送消息,production:发送消息
run.mode=production

Java SDK会优先读取 gio.properties中的配置。

调用SDK API发送事件


//事件行为消息体
GIOEventMessage eventMessage = new GIOEventMessage.Builder()    
    .eventTime(System.currentTimeMillis())            // 事件时间,默认为系统时间(选填)    
    .eventKey("BuyProduct")                           // 事件标识 (必填)    
    .loginUserId("417abcabcabcbac")                   // 登录用户ID (必填)    
    .addEventVariable("product_name", "苹果")          // 事件级变量 (选填)    
    .addEventVariable("product_classify", "水果")      // 事件级变量 (选填)    
    .addEventVariable("product_price", 14)            // 事件级变量 (选填)    
    .build()
//上传事件行为消息到服务器
GrowingAPI.send(eventMessage);

程序调试

GrowingIO建议您按照如下步骤进行埋点数据的开发联调

  1. 在GrowingIO的网站中创建自定义事件以及对应的自定义事件变量

  2. 在您的Java项目中的pom.xml中增加GrowingIO Java SDK的依赖(首次集成需要)

  3. 参考上面的文档编写gio.properties文件并将run.mode定义为test

  4. 在您的Java项目中找到合适的埋点位置,参考上面的例子填入自定义事件需要的字段

  5. 执行对应修改部分的单元测试,或者编写一段测试程序运行修改部分的代码,确保触发埋点事件

  6. 在输出的日志中查找是否包含期望事件内容

  7. 在以上步骤全部成功后,修改gio.properties文件并将run.mode定义为production

  8. 在GrowingIO网站的实时监控模版中添加这个自定义事件,目标用户选择“全部登录用户“

  9. 再运行一次测试程序,确保能够在实时图表中看到您上传的这个事件


如有问题,请您随时联系您的客户成功经理!