Integrations
Deprecation Warning
A new Go SDK has superseded this deprecated version. Sentry preserves this documentation for customers using the old raven-go client. Learn more about the project on GitHub and check out our migration guide.
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:
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.
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:
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.
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").