nestjs 集成 sentry

最近做的一个公司项目,使用 nestjs 作为服务端,为了收集服务报错,尝试了一下接入 sentry。整个流程也是比较简单,sentry 的功能也真的很强大。

开始之前需要一个 sentry 账号。

创建项目

首先选择一个开发平台,这里没有 nestjs(可能还是比较小众吧),我们可以直接选择 node;然后填写项目名称,owner 等信息

B9E2B630-1AD3-4465-A241-38E1B763990E.png

客户端集成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
js复制代码import { NestFactory } from '@nestjs/core';
import { AppModule } from './app/app.module';
import * as Sentry from '@sentry/node';
import CONFIG from '@Root/config';

const { APP_PORT, APP_ENV } = CONFIG;

async function bootstrap() {
const app = await NestFactory.create(AppModule);

// 本地开发环境报错不上传至 sentry
if (APP_ENV !== 'dev') {
Sentry.init({
dsn: 'https://yourSentry.com/6',
tracesSampleRate: 1.0,
environment: APP_ENV,
});
}

await app.listen(APP_PORT);
}

bootstrap();
  • dsn:指定 sentry SDK 向哪里发送这些异常事件
  • tracesSampleRate:跟踪采样率,为 0 到 1 之间的数字。假如为 0.2,大约 20% 的错误将被记录和发送
  • environment:隔离不同环境,方便查询

68110814-B059-474E-BD4E-408B96EDDA84.png

错误收集

通过以上配置基本可以上报错误了,然后通过 sentry 控制台看到相关的错误信息及代码定位。
22BA9342-E102-4DC2-9E9C-0A3DE50A591A.png

0E4A3B3F-8F46-4A12-9AD2-30550B7960C9.png

🌴 注意:如果是前端项目,需要上传 sourceMap 至 sentry 服务器, 但是 Node 项目一般没有源码转换(压缩、合并文件和转译),并不需要这样操作

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%