Skip to content

Commit 29f1d0a

Browse files
authored
Merge pull request #114 from scribd/laynax/SERF-1677/sentry1
[SERF-1677] Move sentry flush to the tracking package
2 parents 7af374d + ed6e653 commit 29f1d0a

File tree

4 files changed

+10
-23
lines changed

4 files changed

+10
-23
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/pubsub/kafka/partitionconsumer.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ package kafka
22

33
import (
44
"context"
5-
"time"
65

7-
"github.com/getsentry/sentry-go"
86
"github.com/twmb/franz-go/pkg/kgo"
97

108
sdkkafka "github.com/scribd/go-sdk/pkg/instrumentation/kafka"
@@ -20,14 +18,6 @@ type pconsumer struct {
2018
}
2119

2220
func (pc *pconsumer) consume(cl *kgo.Client, logger sdklogger.Logger, shouldCommit bool, handler func(*kgo.Record)) {
23-
defer func() {
24-
if rec := recover(); rec != nil {
25-
sentry.CurrentHub().Recover(rec)
26-
sentry.Flush(time.Second * 5)
27-
logger.Fatalf("kafka consumer: panic error: %v", rec)
28-
}
29-
}()
30-
3121
defer close(pc.done)
3222

3323
for {

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)