sentry-go

Official Sentry SDK for Go

Github星跟踪图

Official Sentry SDK for Go

Build Status
Go Report Card
Discord
GoDoc
go.dev

sentry-go provides a Sentry client implementation for the Go programming language. This is the next line of the Go SDK for Sentry, intended to replace the raven-go package.

Looking for the old raven-go SDK documentation? See the Legacy client section here.
If you want to start using sentry-go instead, check out the migration guide.

Requirements

We verify this package against N-2 recent versions of Go compiler. As of September 2019, those versions are:

  • 1.11
  • 1.12
  • 1.13

Installation

sentry-go can be installed like any other Go library through go get:

$ go get github.com/getsentry/sentry-go

Or, if you are already using Go Modules, specify a version number as well:

$ go get github.com/getsentry/sentry-go@v0.3.0

Configuration

To use sentry-go, you’ll need to import the sentry-go package and initialize it with the client options that will include your DSN. If you specify the SENTRY_DSN environment variable, you can omit this value from options and it will be picked up automatically for you. The release and environment can also be specified in the environment variables SENTRY_RELEASE and SENTRY_ENVIRONMENT respectively.

More on this in Configuration section.

Usage

By default, Sentry Go SDK uses asynchronous transport, which in the code example below requires an explicit awaiting for event delivery to be finished using sentry.Flush method. It is necessary, because otherwise the program would not wait for the async HTTP calls to return a response, and exit the process immediately when it reached the end of the main function. It would not be required inside a running goroutine or if you would use HTTPSyncTransport, which you can read about in Transports section.

package main

import (
    "fmt"
    "os"
    "time"

    "github.com/getsentry/sentry-go"
)

func main() {
  err := sentry.Init(sentry.ClientOptions{
    Dsn: "___DSN___",
  })

  if err != nil {
    fmt.Printf("Sentry initialization failed: %v\n", err)
  }
  
  f, err := os.Open("filename.ext")
  if err != nil {
    sentry.CaptureException(err)
    sentry.Flush(time.Second * 5)
  }
}

For more detailed information about how to get the most out of sentry-go there is additional documentation available:

Resources:

License

Licensed under the BSD license, see LICENSE

Community

Join Sentry's #go channel on Discord to get involved and help us improve the SDK!

主要指标

概览
名称与所有者getsentry/sentry-go
主编程语言Go
编程语言Go (语言数: 3)
平台
许可证MIT License
所有者活动
创建于2019-03-08 11:02:24
推送于2025-04-25 15:20:12
最后一次提交2025-04-25 17:20:10
发布数96
最新版本名称zerolog/v0.32.0 (发布于 )
第一版名称v0.0.1-beta (发布于 2019-05-23 13:54:46)
用户参与
星数1k
关注者数53
派生数229
提交数805
已启用问题?
问题数394
打开的问题数43
拉请求数478
打开的拉请求数12
关闭的拉请求数95
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?