Integrations

The Raven Go package currently comes with an integration for the native net/http module to make it easy to handle common scenarios. More frameworks will be coming soon.

net/http

Raven Go provides middleware that can be used with the stdlib net/http library to automatically handle panics that occur during an http request.

Installation

Simply install raven-go through go get:

Copied
$ go get github.com/getsentry/raven-go

Setup

Make sure that you’ve set configured raven with your DSN, typically inside the init() in your main package is a good place.

Copied
package main

import "github.com/getsentry/raven-go"

func init() {
	raven.SetDSN("https://examplePublicKey@o0.ingest.sentry.io/0")
}

If you don’t call SetDSN, we will attempt to read it from your environment under the SENTRY_DSN environment variable. The release and environment will also be read from the environment variables SENTRY_RELEASE and SENTRY_ENVIRONMENT if set.

Next, we need to wrap our http.Handler with our RecoveryHandler:

Copied
func raisesError(w http.ResponseWriter, r *http.Request) {
	panic("My first Sentry error!")
}

http.HandleFunc("/debug-sentry", raven.RecoveryHandler(raisesError))

You can use the above snippet to verify the Sentry integration by visiting the above route in your application and verifying the error in Sentry.

You can edit this page on GitHub.