nestjs 集成 sentry
最近做的一个公司项目,使用 nestjs 作为服务端,为了收集服务报错,尝试了一下接入 sentry。整个流程也是比较简单,sentry 的功能也真的很强大。
开始之前需要一个 sentry 账号。
创建项目
首先选择一个开发平台,这里没有 nestjs(可能还是比较小众吧),我们可以直接选择 node;然后填写项目名称,owner 等信息
客户端集成
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:隔离不同环境,方便查询
错误收集
通过以上配置基本可以上报错误了,然后通过 sentry 控制台看到相关的错误信息及代码定位。
???? 注意:如果是前端项目,需要上传 sourceMap 至 sentry 服务器, 但是 Node 项目一般没有源码转换(压缩、合并文件和转译),并不需要这样操作
作者:samwangdd
链接:https://juejin.cn/post/7020609290406739975