自托管Sentry中仅查看NodeJS(NestJS)自定义函数调用的配置方法
解决Sentry Profiling仅展示自定义NestJS方法的方案
UI层面快速过滤
- 直接在Profiling的函数调用搜索框输入你的业务代码路径关键词,比如
src/,就能快速筛掉第三方依赖的调用。 - 找到右上角的过滤选项,打开"Frame Filters"勾选Hide Library Frames,如果没生效,说明Sentry没正确识别你的业务代码,得从应用端配置。
NestJS应用端配置(核心解决方法)
要让Sentry精准区分业务代码和第三方库,得在初始化时明确规则:
- 在
app.module.ts的Sentry初始化代码里,指定业务代码目录并排除依赖:
import * as Sentry from '@sentry/nestjs'; Sentry.init({ dsn: '你的Sentry DSN', profilesSampleRate: 1.0, // 确保采样率足够捕获数据 include: ['**/src/**'], // 只包含src目录下的业务代码 ignore: ['**/node_modules/**', '**/dist/**'], // 排除第三方依赖和编译产物 });
- 保留源映射,让Sentry关联编译后代码和原始业务代码,修改
tsconfig.json:
{ "compilerOptions": { "sourceMap": true, "inlineSources": true } }
- 强制标记业务代码为应用内代码,解决"Application Frames"显示异常的问题:
Sentry.init({ // 其他配置项 rewriteFrames: { root: __dirname, iteratee: (frame) => { if (frame.filename?.includes('src/')) { frame.in_app = true; // 标记后会在Application Frames里展示 } return frame; }, }, });
额外提示
如果自托管Sentry版本够新,也可以直接在项目设置的Profiling板块,自定义"In-App Frames"的匹配规则,添加你的业务代码路径即可。
内容的提问来源于stack exchange,提问作者Roundtrip
相关产品推荐
相关产品推荐

