日志服务接入方式之JS篇

本篇主要介绍使用JS SDK收集浏览器端的数据,附件是我们提供的JS库,使用它可以非常方便的收集浏览器端的信息,比如用户操作系统类型、浏览器类型和版本、屏幕分辩率等。除此以外,JS SDK还支持收集用户自定义的数据,比如在事件响应中收集特定的信息。
JS SDK提供了一种非常灵活的前端页面代码埋点方式,您可以使用JS SDK将您关心的任何数据写入日志服务,后续可以在日志服务中消费这些数据,比如导入ODPS、OSS,也可以使用Client Library进行自定义消费,下面将介绍下JS SDK的使用方法。

使用方法

step 1: 开通logstore的web tracking功能

目前控制台暂不支持设置logstore支持tracking,如果要使用该功能,请先使用java sdk或者提工单给我们,工单里面列出需要开通的project、logstore。

使用java sdk请先引入maven地址:

<dependency>
  <groupId>com.aliyun.openservices</groupId>
  <artifactId>aliyun-log</artifactId>
  <version>0.6.3</version>
</dependency>
import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.LogStore;
import com.aliyun.openservices.log.exception.LogException;
public class WebTracking {
    static private String accessId = "your accesskey id";
    static private String accessKey = "your accesskey";
    static private String project = "your project";
    static private String host = "log service data address";
    static private String logStore = "your logstore";
    static private Client client = new Client(host, accessId, accessKey);
    public static void main(String[] args) {
        try {
            //在已经创建的logstore上开通tracking功能
            LogStore logSt = client.GetLogStore(project, logStore).GetLogStore();
            client.UpdateLogStore(project, new LogStore(logStore, logSt.GetTtl(), logSt.GetShardCount(), true));
            //关闭tracking功能
            //client.UpdateLogStore(project, new LogStore(logStore, logSt.GetTtl(), logSt.GetShardCount(), false));
            //新建支持tracking功能的logstore
            //client.UpdateLogStore(project, new LogStore(logStore, 1, 1, true));
        }
        catch (LogException e){
            e.printStackTrace();
        }
    }
}

step 2: 将loghub-static-tracking.js复制到web目录,在页面中引入如下脚本。

<script type="text/javascript" src="loghub-static-tracking.js"></script>

step 3:构造tracker对象,并替换其中的<endpoint>、<project>、<logstore>,构造方法中最后一个参数是可选参数,用于从cookie中获取session id,不填写则使用默认值'JSESSION'。

var logger = new window.Tracker('<endpoint>','<project>','<logstore>','<session key name>');

举例如下:

var logger = new window.Tracker('cn-hangzhou-staging-intranet.sls.aliyuncs.com','ali-test-tracking','test');

step 4:收集数据,例子如下:

//填写日志key/value字段
logger.push('key1','value1');
logger.push('key2','value2');
//调用系统提供的收集函数
window.Agent(logger);
//发送日志数据
logger.logger();

window.Agent函数会收集如下字段:

字段 说明 例子
_ua_ 浏览器类型以及版本 Chrome: 50.0.2661.102
_os_ 操作系统类型 Win7
_scr_ 屏幕分辨率 1920*1080
_title_ 页面标题 Aliyun
_ref_ 来源地址
_url_ 页面地址 http://10.101.166.127/tracking.html
_can_ cookie信息 userId=828; userName=hulk
_sid_ session id
上一篇:日志服务接入方式之log producer library


下一篇:Docker日志收集新方案:log-pilot