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.

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

Simply install raven-go through go get:

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

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.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").