用途:让 Sentry 在 development、staging、production 三套环境中隔离运行,开发环境全量采集、预发布环境验证、生产环境严格采样并脱敏 PII。
主要能力:为每个环境使用独立 DSN,避免开发噪声消耗生产配额;按环境设置 tracesSampleRate(开发 1.0、预发布 0.5、生产 0.1)与 sampleRate(均为 1.0,生产不丢弃错误);通过 beforeSend/before_send 按环境过滤事件,开发环境全保留,预发布丢弃 debug 级,生产丢弃 ResizeObserver、Loading chunk、AbortError 等并删除 Authorization、Cookie、X-API-Key 头;配置分级告警,生产走 PagerDuty 与 #alerts-critical、预发布走 #alerts-staging、开发不配告警;添加 environment、region、service、deployment 标签用于看板过滤;在测试与 CI 中以空 DSN 初始化使捕获调用变为安全空操作。
使用方式:按环境建立 .env 文件,设置 SENTRY_DSN、SENTRY_ENVIRONMENT、SENTRY_RELEASE;编写 config/sentry.ts 或 config/sentry_config.py 中的初始化函数,读取环境变量并套用对应配置;在应用入口最先调用 initSentry() 或 init_sentry()。用 sentry-cli 命令创建发布、关联提交、上传 source maps、finalize 并记录部署,例如 sentry-cli releases --org "$ORG" --project "$PROJECT" new "$VERSION",再由 CI 在部署后调用脚本传入环境名。
适用场景:Express、FastAPI 等应用的 TypeScript 与 Python 多环境部署,需要独立配额、分级告警与发布跟踪的团队。
限制:需先有 Sentry 组织与项目,并安装 @sentry/node v8+ 或 sentry-sdk v2+;环境命名需统一约定;SENTRY_ENVIRONMENT 未设置会导致事件中 environment 为 undefined;DSN 为空字符串会静默禁用 SDK;source map 需保证 SENTRY_RELEASE 与上传时一致。其余具体价格、配额数值及平台细节暂未提供。