用途:为 Go 项目接入 Sentry,扫描项目后给出具体配置建议并逐步引导完成设置。触发场景包括为 Go 应用添加 Sentry、安装 sentry-go、配置错误监控、追踪、日志、指标或定时任务,以及监控 panic、HTTP 处理器和计划任务。
主要能力:先检测 go.mod 中是否已有 sentry-go、使用的 Web 框架(Gin、Echo、Fiber、FastHTTP、Iris、Negroni)、gRPC、日志库(logrus、zap、zerolog、slog)、cron 调度与 OpenTelemetry,再据此推荐功能。核心为错误监控,检测到 HTTP/gRPC/数据库调用时推荐追踪,检测到日志库时推荐日志,可选指标与 Crons。Profiling 在 sentry-go v0.31.0 已移除,不再推荐。
使用方式:核心安装命令为 go get github.com/getsentry/sentry-go,再按框架安装对应子包(如 .../sentry-go/gin、.../sentry-go/echo、.../sentry-go/fiber、.../sentry-go/http、.../sentry-go/fasthttp),日志子包(logrus、slog、zap、zerolog)、gRPC 拦截器与 OTel 桥接。在 main() 中调用 sentry.Init 配置 Dsn、Environment、Release、EnableTracing、TracesSampleRate、EnableLogs 等,并 defer sentry.Flush(2 * time.Second)。随后注册框架中间件,gRPC 使用 sentrygrpc 拦截器。各功能按 references 目录下的对应文件逐步实施并验证。
适用场景:Go 后端服务的错误与性能可观测性建设,含 Web 框架、gRPC、日志与定时任务。
限制:v0.33.0+ 要求 Go 1.25 或更高;Fiber 与 FastHTTP 基于 fasthttp,无内置恢复,需 Repanic: false、WaitForDelivery: true;SampleRate 为 0.0 会被当作 1.0;os.Exit() 会跳过 defer,需显式调用 Flush。SDK 版本与 API 以官方文档为准。