File tree 4 files changed +48
-10
lines changed
4 files changed +48
-10
lines changed Original file line number Diff line number Diff line change @@ -24,7 +24,12 @@ func UnaryClientInterceptor(opts ...Option) grpc.UnaryClientInterceptor {
24
24
ctx = sentry .SetHubOnContext (ctx , hub )
25
25
}
26
26
27
- span := sentry .StartSpan (ctx , "grpc.client" )
27
+ operationName := defaultClientOperationName
28
+ if o .OperationNameOverride != "" {
29
+ operationName = o .OperationNameOverride
30
+ }
31
+
32
+ span := sentry .StartSpan (ctx , operationName )
28
33
ctx = span .Context ()
29
34
md , ok := metadata .FromOutgoingContext (ctx )
30
35
if ok {
@@ -60,7 +65,12 @@ func StreamClientInterceptor(opts ...Option) grpc.StreamClientInterceptor {
60
65
ctx = sentry .SetHubOnContext (ctx , hub )
61
66
}
62
67
63
- span := sentry .StartSpan (ctx , "grpc.client" )
68
+ operationName := defaultClientOperationName
69
+ if o .OperationNameOverride != "" {
70
+ operationName = o .OperationNameOverride
71
+ }
72
+
73
+ span := sentry .StartSpan (ctx , operationName )
64
74
ctx = span .Context ()
65
75
md , ok := metadata .FromOutgoingContext (ctx )
66
76
if ok {
Original file line number Diff line number Diff line change @@ -65,3 +65,15 @@ func (r *reportOnOption) Apply(o *options) {
65
65
func WithReportOn (r reporter ) Option {
66
66
return & reportOnOption {ReportOn : r }
67
67
}
68
+
69
+ type operationNameOverride struct {
70
+ OperationNameOverride string
71
+ }
72
+
73
+ func (r * operationNameOverride ) Apply (o * options ) {
74
+ o .OperationNameOverride = r .OperationNameOverride
75
+ }
76
+
77
+ func WithOperationNameOverride (s string ) Option {
78
+ return & operationNameOverride {OperationNameOverride : s }
79
+ }
Original file line number Diff line number Diff line change @@ -7,14 +7,19 @@ import (
7
7
"google.golang.org/grpc/status"
8
8
)
9
9
10
+ const (
11
+ defaultServerOperationName = "grpc.server"
12
+ defaultClientOperationName = "grpc.client"
13
+ )
14
+
10
15
var defaultOptions = & options {
11
- Repanic : false ,
12
- WaitForDelivery : false ,
13
- ReportOn : ReportAlways ,
14
- Timeout : 1 * time .Second ,
16
+ Repanic : false ,
17
+ WaitForDelivery : false ,
18
+ ReportOn : ReportAlways ,
19
+ Timeout : 1 * time .Second ,
20
+ OperationNameOverride : "" ,
15
21
}
16
22
17
-
18
23
type options struct {
19
24
// Repanic configures whether Sentry should repanic after recovery.
20
25
Repanic bool
@@ -26,8 +31,9 @@ type options struct {
26
31
Timeout time.Duration
27
32
28
33
ReportOn func (error ) bool
29
- }
30
34
35
+ OperationNameOverride string
36
+ }
31
37
32
38
func ReportAlways (error ) bool {
33
39
return true
Original file line number Diff line number Diff line change @@ -41,8 +41,13 @@ func UnaryServerInterceptor(opts ...Option) grpc.UnaryServerInterceptor {
41
41
ctx = sentry .SetHubOnContext (ctx , hub )
42
42
}
43
43
44
+ operationName := defaultServerOperationName
45
+ if o .OperationNameOverride != "" {
46
+ operationName = o .OperationNameOverride
47
+ }
48
+
44
49
md , _ := metadata .FromIncomingContext (ctx ) // nil check in ContinueFromGrpcMetadata
45
- span := sentry .StartSpan (ctx , "grpc.server" , ContinueFromGrpcMetadata (md ))
50
+ span := sentry .StartSpan (ctx , operationName , ContinueFromGrpcMetadata (md ))
46
51
ctx = span .Context ()
47
52
defer span .Finish ()
48
53
@@ -79,8 +84,13 @@ func StreamServerInterceptor(opts ...Option) grpc.StreamServerInterceptor {
79
84
ctx = sentry .SetHubOnContext (ctx , hub )
80
85
}
81
86
87
+ operationName := defaultServerOperationName
88
+ if o .OperationNameOverride != "" {
89
+ operationName = o .OperationNameOverride
90
+ }
91
+
82
92
md , _ := metadata .FromIncomingContext (ctx ) // nil check in ContinueFromGrpcMetadata
83
- span := sentry .StartSpan (ctx , "grpc.server" , ContinueFromGrpcMetadata (md ))
93
+ span := sentry .StartSpan (ctx , operationName , ContinueFromGrpcMetadata (md ))
84
94
ctx = span .Context ()
85
95
defer span .Finish ()
86
96
You can’t perform that action at this time.
0 commit comments