File tree 1 file changed +13
-2
lines changed
1 file changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -4,12 +4,20 @@ const grpc = require('@grpc/grpc-js')
4
4
const protoLoader = require ( '@grpc/proto-loader' )
5
5
const health = require ( 'grpc-js-health-check' )
6
6
const opentelemetry = require ( '@opentelemetry/api' )
7
+ const tracer = opentelemetry . trace . getTracer ( process . env . OTEL_SERVICE_NAME ) ;
7
8
8
9
const charge = require ( './charge' )
9
10
const logger = require ( './logger' )
10
11
11
12
async function chargeServiceHandler ( call , callback ) {
12
- const span = opentelemetry . trace . getActiveSpan ( ) ;
13
+ // Check if we have an active span if not start a new one
14
+ let span = opentelemetry . trace . getActiveSpan ( ) ;
15
+ let startedSpan = false ;
16
+ if ( ! span )
17
+ {
18
+ span = tracer . startSpan ( 'chargeServiceHandler' ) ;
19
+ startedSpan = true ;
20
+ }
13
21
14
22
try {
15
23
const amount = call . request . amount
@@ -26,7 +34,10 @@ async function chargeServiceHandler(call, callback) {
26
34
27
35
span . recordException ( err )
28
36
span . setStatus ( { code : opentelemetry . SpanStatusCode . ERROR } )
29
-
37
+ // Make sure we cleanup by closing the span if we started it.
38
+ if ( startedSpan ) {
39
+ span . end ( ) ;
40
+ }
30
41
callback ( err )
31
42
}
32
43
}
You can’t perform that action at this time.
0 commit comments