Go集成Sentry

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)
}

猜你喜欢

转载自blog.csdn.net/u013702678/article/details/83213725