Laravel 项目接入步骤

1.使用 composer 安装插件

1
composer require sentry/sentry-laravel

2.重写 report 方法

在文件App/Exceptions/Handler.php中加入以下方法

1
2
3
4
5
6
7
8
9
public function report(Throwable $e)
{
if (app()->bound('sentry') && $this->shouldReport($e)) {
$_SERVER['SENTRY_ENVIRONMENT'] = config('app.env');
app('sentry')->captureException($e);
}

parent::report($e);
}

3.发布配置文件

注意替换下方的 {DSN_ADDRESS},发布过程中需要输入两次yes

1
php artisan sentry:publish --dsn={DSN_ADDRESS}

4.配置环境变量

在不同环境的.env文件中加入以下代码,初始的.env文件末尾已经在发布配置文件的时候写入了DSN地址,如有需要,注意替换。

注意替换下方的 {DSN_ADDRESS},正式服的采样率可以设置为0.2,即每5个人中只有一个人进行报错监测

1
2
3
4
# Sentry DSN 地址
SENTRY_LARAVEL_DSN={DSN_ADDRESS}
# 采样率
SENTRY_TRACES_SAMPLE_RATE=1

Vue 项目接入方法

1. 使用 yarn 或者 npm 安装插件

  • yarn

    1
    yarn add @sentry/vue @sentry/tracing
  • npm

    1
    npm install --save @sentry/vue @sentry/tracing

2. 配置环境变量

在不同环境的.env文件中加入以下代码。

注意替换下方的 {DSN_ADDRESS},正式服的采样率可以设置为0.2,即每5个人中只有一个人进行报错监测

1
2
3
4
# Sentry DSN 地址
VUE_APP_SENTRY_DSN = {DSN_ADDRESS}
# 采样率
VUE_APP_SENTRY_TRACES_SAMPLE_RATE = 1

3. 在入口文件中初始化 Sentry

Vue2

  • 引入

    1
    2
    3
    // sentry
    import * as Sentry from '@sentry/vue'
    import { BrowserTracing } from '@sentry/tracing'
  • 初始化

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    // Sentry 初始化
    Sentry.init({
    Vue,
    dsn: process.env.VUE_APP_SENTRY_DSN,
    integrations: [
    new BrowserTracing({
    routingInstrumentation: Sentry.vueRouterInstrumentation(router),
    tracingOrigins: ['localhost', 'my-site-url.com', /^\//]
    })
    ],

    // Set tracesSampleRate to 1.0 to capture 100%
    // of transactions for performance monitoring.
    // We recommend adjusting this value in production
    tracesSampleRate: parseInt(process.env.VUE_APP_SENTRY_TRACES_SAMPLE_RATE ?? '0.2'),
    environment: process.env.NODE_ENV
    })

Vue3

  • 引入

    1
    2
    3
    // sentry
    import * as Sentry from "@sentry/vue";
    import { BrowserTracing } from "@sentry/tracing";
  • 初始化

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sentry.init({
    app,
    dsn: process.env.VUE_APP_SENTRY_DSN,
    integrations: [
    new BrowserTracing({
    routingInstrumentation: Sentry.vueRouterInstrumentation(router),
    tracingOrigins: ["localhost", "my-site-url.com", /^\//],
    }),
    ],
    // Set tracesSampleRate to 1.0 to capture 100%
    // of transactions for performance monitoring.
    // We recommend adjusting this value in production
    tracesSampleRate: parseInt(process.env.VUE_APP_SENTRY_TRACES_SAMPLE_RATE ?? '0.2'),
    environment: process.env.NODE_ENV,
    });