Add Sentry integration

This commit is contained in:
Maximilian Paß
2021-11-24 16:30:01 +01:00
parent 705d358027
commit 3ae83217d7
8 changed files with 183 additions and 3 deletions

View File

@@ -3,6 +3,7 @@ package main
import (
"context"
"errors"
"github.com/getsentry/sentry-go"
"github.com/openHPI/poseidon/internal/api"
"github.com/openHPI/poseidon/internal/config"
"github.com/openHPI/poseidon/internal/environment"
@@ -21,6 +22,19 @@ var (
log = logging.GetLogger("main")
)
func initSentry(options *sentry.ClientOptions) {
if err := sentry.Init(*options); err != nil {
log.Errorf("sentry.Init: %s", err)
}
}
func shutdownSentry() {
if err := recover(); err != nil {
sentry.CurrentHub().Recover(err)
sentry.Flush(logging.GracefulSentryShutdown)
}
}
func runServer(server *http.Server) {
log.WithField("address", server.Addr).Info("Starting server")
var err error
@@ -87,6 +101,8 @@ func main() {
log.WithError(err).Warn("Could not initialize configuration")
}
logging.InitializeLogging(config.Config.Logger.Level)
initSentry(&config.Config.Sentry)
defer shutdownSentry()
server := initServer()
go runServer(server)