日志服务接入方式之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
时间: 2024-10-01 11:46:25

日志服务接入方式之JS篇的相关文章

日志服务接入方式之Unity 3D篇

Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎. 日志服务前不久推出了Web Tracking功能,您可以通过Web Tracking功能非常方便的收集Unity 3D的日志,下面以收集Unity Debug.Log为例,讲解如何将Unity日志收集到日志服务中. step 1: 开通Web Tracking功能. 开通方法请参考另外一篇文章:日志服务

日志服务接入方式之log producer library

日志服务(原SLS)团队提供LogHub Producer Library方便客户端接入日志,Producer Library和Consumer Library是对LogHub功能的包装,降低数据收集与消费的门槛. Producer Library解决的问题: 客户端日志不落盘:既数据产生后直接通过网络发往服务端. 客户端高并发写入:例如一秒钟会有百次以上写操作. 客户端计算与IO逻辑分离:打日志不影响计算耗时. 在以上场景中,Producer Library会简化你程序开发的代价,帮助你批量聚

日志服务接入方式之loghub log4j appender

Loghub Log4j Appender介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输

日志服务(原SLS)新功能发布(5)--使用Logstash接入数据

日志服务结合Logstash 目前,阿里云用户可以通过API/SDK或Logtail将数据写入日志服务,参考. 今天要介绍一个新方法:使用著名开源软件Logstash采集机器日志数据,并结合日志服务插件完成数据上传日志服务功能. 用户可以在阿里云ECS,或者是IDC机房机器,又或者是其它云厂商的虚拟机上安装Logstash及插件,进行简单的配置,轻松地将本机日志数据搬到云上来. IIS日志场景 以Windows平台上最常见的IIS(Internet Information Services)日志

日志服务(原SLS)新功能发布(6)--使用logtail接入syslog数据

Logtail支持通过tcp协议接收syslog日志 Logtail 是日志服务(原SLS)客户端,支持文本类日志数据的收集.考虑到syslog功能是linux平台上广泛使用的日志集中化管理方案,新版本的Logtail将支持syslog数据接入,目前Logtail数据接入方式如下:最左侧是支持syslog日志输出的模块,包括nginx.java语言.路由器.linux服务器等. syslog是什么? 可以参考鸟哥的Linux私房菜. 使用Logtail的syslog功能有哪些优势? 和利用文本文

使用日志服务LogHub替换Kafka

前几天有客户问到,云上有什么服务可以替换Kafka? 怀着程序员的一丝小小的骄傲回复:日志服务(原SLS)下LogHub功能可以完全替代Kafka等产品,并且在性能.易用性和稳定性上更佳. 但客户将信将疑,于是花了一天时间整理一篇文章,简单从各个角度解释下为何建议用户从自搭Kafka换成使用LogHub. 背景信息 Kafka是分布式消息系统,由Linkedin原员工Jay Kreps编写(感兴趣的可以参见这篇文章<The Log: What every software engineer sh

通过日志服务调试分布式系统

为了解决分布式系统开发过程中调试和分析性能的问题,在过去阿里云产品的开发调试过程中,我们开发了Tracer工具.Tracer主要用来解决分布式系统执行过程关联问题,它的基本原理如下: 用户在关键程序的入口埋点以日志方式输出时间.Trace ID.上下文等信息.当用户请求经过埋点函数时,输出日志.通过以上步骤,我们就能通过关联同样的Trace ID来记录一个请求生命周期内访问多个进程的情况. 当携带Trace ID的请求每一次执行到这个宏,会留下这样一条日志: [2013-07-13 10:28:

自建ELK vs 日志服务(SLS)全方位对比

简介 提到日志实时分析,很多人都会想到很火的ELK Stack(Elastic/Logstash/Kibana)来搭建.ELK方案开源,在社区中有大量的内容和使用案例. 阿里云日志服务产品在新版中增强查询分析功能(LogSearch/Analytics),支持对日志数据实时索引与查询分析,并且对查询性能和计算数据量做了大量优化.在这里我们做一个全方位的比较,对于用户关心的点,我们依次展开分析: 易用:上手及使用过程中的代价 功能(重点):主要针对查询与分析两块 性能(重点):对于单位大小数据量查

日志服务(原SLS)新功能发布(9)--Logtail配置支持主题(Topic)设置功能

日志服务中日志为日志服务中处理的最小数据单元,采用半结构化数据模式定义一条日志,具体数据模型包括主题(Topic).时间(Time).内容(Content)和来源(Source),详细描述请参考核心概念.其中主题(Topic)为用户自定义字段,用以标记一批日志(例如:访问日志根据不同站点进行标记),默认值为空字符串(空字符串也为一个有效的主题).用户可以通过使用REST API/SDK上传数据时设置主题.除此之外,Logtail客户端为日志服务用户常用的数据接入客户端,目前也支持设置使用不同的属