Skip to content

Commit 41e465b

Browse files
committed
chore: Move sentry flush to tracking library
1 parent 7af374d commit 41e465b

File tree

3 files changed

+10
-13
lines changed

3 files changed

+10
-13
lines changed

pkg/interceptors/recovery.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ package interceptors
22

33
import (
44
"context"
5+
"fmt"
56
stdlog "log"
67
"runtime/debug"
7-
"time"
88

9-
"github.com/getsentry/sentry-go"
109
grpcrecovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery"
1110
"google.golang.org/grpc"
1211
"google.golang.org/grpc/codes"
@@ -31,17 +30,14 @@ func RecoveryStreamServerInterceptor() grpc.StreamServerInterceptor {
3130

3231
var recoveryOption = []grpcrecovery.Option{
3332
grpcrecovery.WithRecoveryHandlerContext(func(ctx context.Context, rec interface{}) (err error) {
34-
sentry.CurrentHub().Recover(rec)
35-
sentry.Flush(time.Second * 5)
36-
3733
l, err := sdkloggercontext.Extract(ctx)
3834
if err != nil {
3935
debug.PrintStack()
4036
stdlog.Printf("logger not found in context: %v\n", err)
4137
stdlog.Fatalf("grpc: panic error: %v", rec)
4238
}
4339

44-
l.Fatalf("panic error: %v", rec)
40+
l.WithError(fmt.Errorf("%v", rec)).Fatalf("panic error: %v", rec)
4541
return status.Errorf(codes.Internal, "")
4642
}),
4743
}

pkg/middleware/recovery.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package middleware
22

33
import (
4+
"fmt"
45
"log"
56
"net/http"
67
"runtime/debug"
7-
"time"
8-
9-
"github.com/getsentry/sentry-go"
108

119
sdkloggercontext "github.com/scribd/go-sdk/pkg/context/logger"
1210
)
@@ -27,17 +25,15 @@ func (rm RecoveryMiddleware) Handler(next http.Handler) http.Handler {
2725
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
2826
defer func() {
2927
if rec := recover(); rec != nil {
30-
sentry.CurrentHub().Recover(rec)
31-
sentry.Flush(time.Second * 5)
32-
3328
l, err := sdkloggercontext.Extract(r.Context())
3429
if err != nil {
3530
debug.PrintStack()
3631
log.Printf("logger not found in context: %v\n", err)
3732
log.Fatalf("http: panic serving URI %s: %v", r.URL.RequestURI(), rec)
3833
}
3934

40-
l.Fatalf("http: panic serving URI %s: %v", r.URL.RequestURI(), rec)
35+
l.WithError(fmt.Errorf("%v", rec)).
36+
Fatalf("http: panic serving URI %s: %v", r.URL.RequestURI(), rec)
4137
}
4238
}()
4339

pkg/tracking/sentry.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package tracking
22

33
import (
44
"fmt"
5+
"time"
56

67
"github.com/getsentry/sentry-go"
78
"github.com/sirupsen/logrus"
@@ -67,6 +68,10 @@ func (hook *Hook) Fire(entry *logrus.Entry) error {
6768

6869
sentry.CaptureEvent(event)
6970

71+
if entry.Level <= logrus.FatalLevel {
72+
sentry.Flush(time.Second * 5)
73+
}
74+
7075
return nil
7176
}
7277

0 commit comments

Comments
 (0)