前端统计利器:Sentry & Matomo
今天主要说下两款前端统计工具的使用,Sentry & Matomo。以下主要是统计代码接入方式,因此使用前提是你已经在自己的服务器上搭建好了Sentry和Matomo的服务器
Sentry统计使用方法
Sentry是一个比较完善的错误统计日志系统,可以纯前端调用,在错误日志中会记录报错内容、用户客户端信息以及用户发生报错的步骤(这部分功能在部分情况下会有缺失),如



从上图可以看到,sentry对错误信息的统计可以说十分细致了,这对于debug工作来说简直神器,可能更好更快的复现问题,进而快速解决问题。sentry的使用主要分两步
1、添加站点,获取统计代码
--- 服务器上新增project


--- 获取追踪代码DSN

这个DSN算是一个加密的统计地址吧,直接关联了具体的项目,每个地址都是唯一的。我们可以使用基于浏览器的SDK进行接入,比如raven-js
2、添加统计代码
以下以raven-js为例
import Raven from 'raven-js'
Raven.config('https://123456@a.test.com/16', {
whitelistUrls: [/test\.com/, /atest\.com/],
ignoreErrors: [
/^Script error\.?$/,
/undefined is not an object$/,
/undefined is not a function$/,
'null is not an object evaluating \'document',
'TypeError: [object HTMLCollection] is not iterable!'
]
}).install()
其中核心就是Raven.config(url).install()了,而在config对象中,除了url,Raven还提供了一系列的参数来加强统计功能的实现,比如我们使用的白名单和错误过滤名单等等。有兴趣的同学可以去翻一下sentry官网内容,https://docs.sentry.io/clients/javascript/
Matomo/piwik统计添加方法
Matomo是类似于百度统计、友盟统计的一个用户访问统计站点。主要用于统计用户访问日志,分析用户行为等方面,偏运营型辅助统计,以便于运营人员根据实时的用户访问数据来指定更加合适的营销策略。优势在于可以把整个统计站点搭建到我们自己的服务器上,避免由于用户访问数据存储在第三方服务器上而带来的一些安全问题。以下简要说一下Matomo统计代码添加的步骤,当然前提是你已经在自己的服务器上搭建好了基础服务,主要分两步:
1、在Matomo上创建网站

新建网站:

编辑内容

这个项目网址就是你要统计的目标网址,统计代码添加后凡以此开头的都会被记录到Matomo,添加后就会产生如下网站记录,注意那个ID后面的统计代码里面都要用到

2、添加统计代码
Vue的方式
import Vue from 'vue'
import VueMatomo from 'vue-matomo'
// matomo用户统计--类似于友盟
Vue.use(VueMatomo, {
// 这里配置你自己的piwik服务器地址和网站ID
host: 'https://bayes.test.com/piwik',
siteId: 412,
// 根据router自动注册
router: router,
// 是否需要在发送追踪信息之前请求许可
// 默认false
requireConsent: false,
// 是否追踪初始页面
// 默认true
trackInitialView: true,
// 最终的追踪js文件名
// 默认 'piwik'
trackerFileName: 'piwik'
})
纯Js的方式
<!-- Matomo -->
<script type="text/javascript">
var _paq = _paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//bayes.test.com/piwik/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '412']); // 注意这里的setSiteId,后面的数字就是你的网站id,在matomo网站上可以查到
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
除此以外,Matomo还提供了很多其它方式,有需要的同学可以自己去翻一下官网集成部分的内容:https://matomo.org/integrate/
古语云:工具善其事,必先利其器,一个好的工具对于提高开发效率来说绝对是非常有用的,大家还有什么工具利器,欢迎交流。
今天是一个交流群的朋友Robin问到有什么好的工具推荐,才写了这些东西,后面我会在写一写关于sentry和matomo基础服务的搭建的内容,如果大家有兴趣可以继续关注以下,心急的同学就先去翻一下官网吧~~
前端统计利器:Sentry & Matomo的更多相关文章
- 前端开发利器—FIDDLER 转
http://www.cnblogs.com/yuzhongwusan/archive/2012/07/20/2601306.html 前端开发利器—FIDDLER 1.Fiddler相对其他调试工具 ...
- 前端构建利器Grunt—Bower
runt + Bower—前端构建利器 目前比较流行的WEB开发的趋势是前后端分离.前端采用重量级的Javascript框架,比如Angular,Ember等,后端采用restful API的Web ...
- 仿async/await(一)and Gulp:新一代前端构建利器
NET 4.5的async/await真是个神奇的东西,巧妙异常以致我不禁对其实现充满好奇,但一直难以窥探其门径.不意间读了此篇强文<Asynchronous Programming in C# ...
- Twitter Bootstrap:前端框架利器
Bootstrap 的文件结构 读者可以直接从 GitHub 下载到 Bootstrap 源码,本地解压后可以看到这样的目录结构:docs.img.jquery-ui- bootstrap.js 和 ...
- 业务线接入前端异常监控sentry
1.前端异常处理的框架对比 是否开源 收费 语言 监控范围 sentry 是 自己搭建服务器(免费)价格 英文 Angular.AngularJs.Backbone.Ember.JavaScrip ...
- 前端性能利器——dynatrace ajax edition
因为最近的工作跟性能分析有关系,所以写个小总结. 顺带推荐两个我常用的小工具: 1.文件对比工具beyond compare,非常好用,对比.修改很简单.当然我只是用的试用版本.google一下官网下 ...
- Grunt + Bower—前端构建利器(转)
目前比较流行的WEB开发的趋势是前后端分离.前端采用重量级的Javascript框架,比如Angular,Ember等,后端采用restful API的Web Service服务,通过JSON格式进行 ...
- Grunt + Bower—前端构建利器
目前比较流行的WEB开发的趋势是前后端分离.前端采用重量级的Javascript框架,比如Angular,Ember等,后端采用restful API的Web Service服务,通过JSON格式进行 ...
- 前端调试利器——BrowserSync
此处记录一下踩过的坑 之前看的这个地址:http://www.browsersync.cn/ 也就是 BrowserSync的官网上面关于代理服务器的例子不管怎么试都不行 请看下例子 browser- ...
随机推荐
- [转]wx.getUserInfo(OBJECT) 微信小程序 获取用户信息
本文转自:http://mp.weixin.qq.com/debug/wxadoc/dev/api/open.html wx.getUserInfo(OBJECT) 获取用户信息,withCreden ...
- jade——创建第一个jade模板
什么是jade? jade是node.js的一个模板引擎,参考了haml的语法,是简写的html语言. 使用单个标签代替双标签,类似于Python,通过缩进来确定从属关系,没有结束符号,非常简洁,使用 ...
- DBNull.Value 与null
来源:http://blog.csdn.net/beautifulsarah/article/details/54691670 DBNull.Value,, 适用于向数据库的表中插入空值.而 null ...
- AngleSharp一些示例
看到了AngleSharp,感觉这个非常好用,比HtmlAgilityPack感觉好用点 AngleSharp 地址:https://github.com/AngleSharp/AngleSharp ...
- 解决post请求乱码问题
将下面配置信息配置在webapp/WEB-INF/web.xml中 <!-- 解决post乱码 --><filter> <filter-name>Character ...
- 深入理解MyBatis的原理(三):配置文件用法(续)
前言:前文讲解了 MyBatis 的配置文件一部分用法,本文将继续讲解 MyBatis 的配置文件的用法. 目录 1.typeHandler 类型处理器 2.ObjectFactory 3.插件 4. ...
- SVN提交小结
在我们用VS进行项目合作开发的过程中,SVN的提交控制是至关重要的,由于版本冲突造成的各种麻烦咱们已经遇到的够多了.所以,总结他们的经验教训,给我们也给其他人做个提醒.下面的第一部分是需要在正式开发之 ...
- Springmvc中的HandlerAdaptor执行流程
今天讲解一下在Springmvc中的HandlerAdaptor执行流程,明白这个过程,你就能画出下面的图: 接下来我们就来看看具体的实现过程吧. 1.0在DispatcherServlet中找到ge ...
- opencv3.2.0实现读取多张图片的方法(利用sprintf()函数)
简介: 将连续的图片转换成视频时,首先需要把图片全部读入,然后再做相应处理,该程序利用sprintf()函数,实现连续图片的读入 /*********新建QT控制台程序,实现多张连续图片的读取**** ...
- 数据是ERP系统搭建的基础,但,不要让数据毁了ERP
很难想象没有数据的ERP是什么样子的.然而,实际情况又是如何的呢? 根据AMT的研究,在那些上线不成功或者上线后掉线的案例中,有高达70%的项目都有一个共同的直接原因,那就是在数据上出了问题.有的是在 ...