npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@diogoxiang/tracer

v2.1.6

Published

JavaScript APM Tracer , 前端监控SDK

Downloads

20

Readme

Tracer

最新版本 2.1.4

JavaScript APM Tracer , 前端监控SDK , 主要用于捕捉前端出现的异常情况

Github

https://github.com/apiend/tracer

dev

```
npm run dev
```

build

```
npm run build
```

example

参考example目录

功能

  • 上报pv uv
  • 捕获error
  • 上报性能performance
  • 上报用户轨迹
  • 支持单页面
  • hack ajax fetch
  • 上报加载的资源
  • hack console
  • hack onpopstate
  • 暴露全局变量__bb
  • 埋点 sum avg msg

用法

token在 tracer-system 后台申请

方法一

  <script src='../dist/tracer.js'></script>
  <script>
    new Tracer({
      token: 'xxx',
      reportUrl: 'http://127.0.0.1:7002/api/v1/report/web'
    })
  </script>

方法二

npm i @diogoxiang/tracer -S
import Tracer from '@diogoxiang/tracer'
或 var Tracer = require('Tracer')

new Tracer({
  token: 'xxxx',
  reportUrl: 'http://127.0.0.1:7002/api/v1/report/web'
})

配置

{
  // 上报地址
  reportUrl: 'http://localhost:10000',
  // 批量上报地址 当配置了这个字段的时候,会将用户行为集成加载
  reportUrlMultiple: '',
  // 最长缓存长度
  maxCacheLength: 20,
  // 提交参数
  token: '',
  // app版本
  // appVersion: '1.0.0', 无用
  // Vue的类
  Vue: '',
  // 环境
  environment: 'production',
  // 脚本延迟上报时间
  outtime: 300,
  // 开启单页面?
  enableSPA: true,
  // 是否自动上报pv
  autoSendPv: true,
  // 是否上报页面性能数据
  isPage: true,
  // 是否上报ajax性能数据
  isAjax: true,
  // 是否上报页面资源数据
  isResource: true,
  // 是否上报错误信息
  isError: true,
  // 是否录屏
  isRecord: true,
  // 是否上报行为
  isBehavior: true,
  ignore: {
    // 忽略错误
    ignoreErrors: [],
    // 忽略地址相关
    ignoreUrls: [],
    ignorePvs: ['404'],
    // 忽略资源请求
    ignoreResources: [],
    // 忽略接口请求
    ignoreApis: ['/api/v1/report/web', 'livereload.js?snipver=1', '/sockjs-node/info'],
    // 忽略用户行为元素
    ignoreBehaviorEles: []
  },
  behavior: {
    console: ['log', 'error'], // 取值可以是"debug", "info", "warn", "log", "error"
    click: true,
  },
  // 最长上报数据长度
  maxLength: 1000,
  // 当前用户信息
  user: {},
  // 是否需要推送消息到kafaka
  needPushtoKafaka: false
}

设置用户信息

通过调用Tracer实例化后的setUserInfo函数来设置用户的相关信息

监听vue的errorHandler错误

在实例化Tracer时传入Vue对象即可监听

new Tracer({
  token: 'wnrnhkh1585620953820',
  reportUrl: 'http://127.0.0.1:7002/api/v1/report/web',
  user: {
    userId: '333333'
  },
  Vue: Vue
})

上传自定义行为

通过调用实例化的Tracer的handleCustomizeReport函数即可上传,注意参数t为必传字段,表示的是类型,目前只有传t=app.click才可以透传到java后台中的kafaka

目前定义的几个类型分别为

  TracerInstance.handleCustomizeReport({
    t: 'app.click',
    moduleName: 'help-center',
    clickId: '77777777777'
  })

  TracerInstance.handleCustomizeReport({
    t: 'searchBehaivor',
    searchValue: '哈哈哈',
    searchType: '2'
  })

  TracerInstance.handleCustomizeReport({
    t: 'collectBehaivor',
    moduleName: 'help-center',
    clickId: '77777777777'
  })

notice

目前解析userAgent用的是一个老版本的库ua-device,下载下来的依赖源码又一个问题,打包的时候需要修改一下ua-device的lib文件下useragent-base.js中的detect函数第一行增加一个var match

图片加载失败之后循环调用的问题是因为vconsole的原因造成的

Changelog 更新日志

v2.0.8 2021-1-25 11:28:17

  • 修改 isResource(页面资源数据), isBehavior(上报行为), isAjax(ajax 监听) 默认为 false 如有需求.可初始化开启
  • 删除配置参数 needPushtoKafaka

2021-1-8 11:23:18

  • Config.maxLength 限制改为100 方便监听 ajax 的数据,及上报的数据

2021-1-6 17:29:58

  • 修复 自定义上报的一些问题

2020-12-22 10:36:12

  • 优化 device 参数的

2020-12-11 17:7:50

  • SDK版本默认取package.json 中的配置

2020-11-23 11:26:45

  • 删除一些默认配置,只默认只开启 error, pv, ajax性能数据

修复BUG

  • TypeError: Converting circular structure to JSON