Raven-Go为Go编程语言提供了Sentry客户端实现。
Raven-Go可以像任何其他Go库一样通过go get安装:
$ go get github.com/getsentry/raven-go
一、配置客户端
要使用raven-go,您需要导入乌鸦包,然后在全球范围内初始化您的DSN。如果指定SENTRY_DSN环境变量,则会自动为您完成此操作。还可以分别在环境变量SENTRY_RELEASE和SENTRY_ENVIRONMENT中指定发布和环境。
package main
import "github.com/getsentry/raven-go"
func init() {
raven.SetDSN("https://<key>:<secret>@sentry.io/<project>")
}
二、上报错误
在Go中,有错误和恐慌,Raven可以同时处理这两个错误。要了解有关差异的更多信息,请阅读错误处理和Go。
要处理正常的错误响应,我们有两个选项:CaptureErrorAndWait和CaptureError。前者是一个阻塞调用,对于您希望在报告后退出应用程序的情况,后者是非阻塞的。
三、上报Panics
捕捉Panics也很简单。我们只需要将代码包装在CapturePanic中。 CapturePanic将执行func,如果发生Panics,我们将记录它,然后优雅地继续。
raven.CapturePanic(func() {
// do all of the scary things here
}, nil)
四、附加上下文
所有Capture *函数都接受另一个参数,用于传递标记映射作为第二个参数。例如:
raven.CaptureError(err, map[string]string{"browser": "Firefox"})
Sentry中的标签有助于分类,并为您提供有关发生的错误的更多信息。
五、事件采样
要设置客户端采样,您可以使用SetSampleRate客户端功能。默认情况下禁用错误采样(sampleRate = 1)。
package main
import "github.com/getsentry/raven-go"
func init() {
raven.SetSampleRate(0.25)
}