Sentry integration

This commit is contained in:
2020-10-13 10:35:41 +02:00
parent 38ac4422dd
commit 41748363d1
5 changed files with 185 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import (
"net/http"
"forge.cadoles.com/wpetit/hydra-passwordless/internal/route"
"github.com/getsentry/sentry-go"
"github.com/go-chi/chi"
"github.com/go-chi/chi/middleware"
"gitlab.com/wpetit/goweb/middleware/container"
@ -15,6 +16,7 @@ import (
"os"
"forge.cadoles.com/wpetit/hydra-passwordless/internal/config"
sentryhttp "github.com/getsentry/sentry-go/http"
"github.com/pkg/errors"
)
@ -89,6 +91,30 @@ func main() {
log.Fatalf("%+v", errors.Wrap(err, "could not override config with environment"))
}
useSentry := conf.Sentry.DSN != ""
if useSentry {
var sentryEnv string
if conf.Sentry.Environment == "" {
sentryEnv, _ = os.Hostname()
} else {
sentryEnv = conf.Sentry.Environment
}
err := sentry.Init(sentry.ClientOptions{
Dsn: conf.Sentry.DSN,
Debug: conf.Debug,
SampleRate: conf.Sentry.ServerSampleRate,
Release: ProjectVersion + "-" + GitRef,
Environment: sentryEnv,
})
if err != nil {
log.Fatalf("%+v", errors.Wrap(err, "could not initialize sentry"))
}
defer sentry.Flush(conf.Sentry.ServerFlushTimeout)
}
// Create service container
ctn, err := getServiceContainer(conf)
if err != nil {
@ -101,6 +127,14 @@ func main() {
r.Use(middleware.Logger)
r.Use(middleware.Recoverer)
if useSentry {
sentryMiddleware := sentryhttp.New(sentryhttp.Options{
Repanic: true,
})
r.Use(sentryMiddleware.Handle)
}
// Expose service container on router
r.Use(container.ServiceContainer(ctn))