前端接入Sentry监控

2,365 阅读2分钟

这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战

第一步 安装依赖

# Using yarn
yarn add @sentry/browser @sentry/tracing
# Using npm
npm install --save @sentry/browser @sentry/tracing

第二步 配置

前端监控不应该是监控某一个单独的模块,应该监控整个项目,所以在入口文件比如main.js里引入进行配置

import * as Sentry from "@sentry/browser";
import { Integrations } from "@sentry/tracing";

Sentry.init({
  dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",

  // Alternatively, use `process.env.npm_package_version` for a dynamic release version
  // if your build tool supports it.
  release: "my-project-name@2.3.12",
  integrations: [new Integrations.BrowserTracing()],

  // Set tracesSampleRate to 1.0 to capture 100%
  // of transactions for performance monitoring.
  // We recommend adjusting this value in production
  tracesSampleRate: 1.0,
  
  maxValueLength: 999999999999999999999999999999999999999, // 单个值在被截断之前可以具有的最大字符数
});

PS:肯定有人疑惑上面的dsn都哪里来的,别着急,下面会讲到

第三步 服务端配置

1、登录sentry账号或新建账号
2、如果已有项目可以直接进入项目,如果没有则点击右上角新建项目

image.png

点开之后长这样

image.png 3、新建好项目后,进入项目,点击Settings,里面就有上面提到的DNS

image.png

image.png

第四步 核实

在项目里随便写个错误代码,然后再到sentry对应的项目里查看,就可以看到报错信息了。

以上就是sentry的基本配置。


我在实际应用中,通过captureMessage方法(类似埋点的功能,如下代码),发现返回的数据过长被截断了

Sentry.captureMessage(JSON.stringify({
    type: 'save',
    parms,
    res: res.data
  }));

后来查了资料发现,可以在接入的时候配置maxValueLength(单个值在被截断之前可以具有的最大字符数)参数,来控制字符串的长度(如第二步里的写法)。

官网地址:sentry.io