This repository was archived by the owner on Oct 31, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 4 files changed +33
-14
lines changed
packages/plugin-aws-sdk/src Expand file tree Collapse file tree 4 files changed +33
-14
lines changed Original file line number Diff line number Diff line change @@ -163,6 +163,7 @@ class AwsPlugin extends BasePlugin<typeof AWS> {
163163
164164 const callbackWithContext = thisPlugin . _tracer . bind ( callback , span ) ;
165165 return thisPlugin . _tracer . withSpan ( span , ( ) => {
166+ thisPlugin . servicesExtensions . requestPostSpanHook ( awsRequest ) ;
166167 return original . call ( awsRequest , callbackWithContext ) ;
167168 } ) ;
168169 } ;
@@ -198,6 +199,7 @@ class AwsPlugin extends BasePlugin<typeof AWS> {
198199 const origPromise : Promise < any > = thisPlugin . _tracer . withSpan (
199200 span ,
200201 ( ) => {
202+ thisPlugin . servicesExtensions . requestPostSpanHook ( awsRequest ) ;
201203 return original . apply ( awsRequest , arguments ) ;
202204 }
203205 ) ;
Original file line number Diff line number Diff line change @@ -13,5 +13,9 @@ export interface RequestMetadata {
1313export interface ServiceExtension {
1414 // called before request is sent, and before span is started
1515 requestHook : ( request : AWS . Request < any , any > ) => RequestMetadata ;
16+
17+ // called before request is sent, and after span is started
18+ requestPostSpanHook ?: ( request : AWS . Request < any , any > ) => void ;
19+
1620 responseHook : ( response : AWS . Response < any , any > , span : Span ) => void ;
1721}
Original file line number Diff line number Diff line change @@ -20,6 +20,13 @@ export class ServicesExtensions implements ServiceExtension {
2020 return serviceExtension . requestHook ( request ) ;
2121 }
2222
23+ requestPostSpanHook ( request : AWS . Request < any , any > ) {
24+ const serviceId = ( request as any ) ?. service ?. serviceIdentifier ;
25+ const serviceExtension = this . services . get ( serviceId ) ;
26+ if ( ! serviceExtension ?. requestPostSpanHook ) return ;
27+ return serviceExtension . requestPostSpanHook ( request ) ;
28+ }
29+
2330 responseHook ( response : AWS . Response < any , any > , span : Span ) {
2431 const serviceId = ( response as any ) ?. request ?. service ?. serviceIdentifier ;
2532 const serviceExtension = this . services . get ( serviceId ) ;
Original file line number Diff line number Diff line change @@ -100,10 +100,26 @@ export class SqsServiceExtension implements ServiceExtension {
100100 break ;
101101
102102 case "sendMessage" :
103- {
104- spanKind = SpanKind . PRODUCER ;
105- spanName = queueName ;
103+ case "sendMessageBatch" :
104+ spanKind = SpanKind . PRODUCER ;
105+ spanName = queueName ;
106+ break ;
107+ }
108+
109+ return {
110+ isIncoming,
111+ spanAttributes,
112+ spanKind,
113+ spanName,
114+ } ;
115+ }
106116
117+ requestPostSpanHook = ( request : AWS . Request < any , any > ) => {
118+ const operation = ( request as any ) ?. operation ;
119+ console . log ( operation ) ;
120+ switch ( operation ) {
121+ case "sendMessage" :
122+ {
107123 const params : SendMessageRequest = ( request as any ) . params ;
108124 params . MessageAttributes = this . InjectPropagationContext (
109125 params . MessageAttributes
@@ -113,9 +129,6 @@ export class SqsServiceExtension implements ServiceExtension {
113129
114130 case "sendMessageBatch" :
115131 {
116- spanKind = SpanKind . PRODUCER ;
117- spanName = queueName ;
118-
119132 const params : SendMessageBatchRequest = ( request as any ) . params ;
120133 params . Entries . forEach (
121134 ( messageParams : SendMessageBatchRequestEntry ) => {
@@ -127,14 +140,7 @@ export class SqsServiceExtension implements ServiceExtension {
127140 }
128141 break ;
129142 }
130-
131- return {
132- isIncoming,
133- spanAttributes,
134- spanKind,
135- spanName,
136- } ;
137- }
143+ } ;
138144
139145 responseHook = ( response : AWS . Response < any , any > , span : Span ) => {
140146 const messages : AWS . SQS . Message [ ] = response ?. data ?. Messages ;
You can’t perform that action at this time.
0 commit comments