File tree 3 files changed +35
-1
lines changed
3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -200,6 +200,26 @@ describe("readTraceFromEvent", () => {
200
200
source : Source . Event ,
201
201
} ) ;
202
202
} ) ;
203
+ it ( "can read from appsync source" , ( ) => {
204
+ const result = readTraceFromEvent ( {
205
+ info : {
206
+ selectionSetGraphQL : "{ items }" ,
207
+ } ,
208
+ request : {
209
+ headers : {
210
+ "x-datadog-parent-id" : "797643193680388254" ,
211
+ "x-datadog-sampling-priority" : "2" ,
212
+ "x-datadog-trace-id" : "4110911582297405557" ,
213
+ } ,
214
+ } ,
215
+ } ) ;
216
+ expect ( result ) . toEqual ( {
217
+ parentID : "797643193680388254" ,
218
+ sampleMode : SampleMode . USER_KEEP ,
219
+ traceID : "4110911582297405557" ,
220
+ source : Source . Event ,
221
+ } ) ;
222
+ } ) ;
203
223
it ( "can read from sqs source" , ( ) => {
204
224
const result = readTraceFromEvent ( {
205
225
Records : [
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ import { BigNumber } from "bignumber.js";
3
3
import { randomBytes } from "crypto" ;
4
4
import { createSocket , Socket } from "dgram" ;
5
5
import { logDebug , logError } from "../utils" ;
6
- import { isSQSEvent } from "../utils/event-type-guards" ;
6
+ import { isAppSyncResolverEvent , isSQSEvent } from "../utils/event-type-guards" ;
7
7
import {
8
8
awsXrayDaemonAddressEnvVar ,
9
9
parentIDHeader ,
@@ -183,6 +183,11 @@ export function sendXraySubsegment(segment: string) {
183
183
}
184
184
}
185
185
186
+ export function readTraceFromAppSyncEvent ( event : any ) : TraceContext | undefined {
187
+ event . headers = event . request . headers ;
188
+ return readTraceFromHTTPEvent ( event ) ;
189
+ }
190
+
186
191
export function readTraceFromSQSEvent ( event : SQSEvent ) : TraceContext | undefined {
187
192
if (
188
193
event . Records [ 0 ] . messageAttributes &&
@@ -322,6 +327,10 @@ export function readTraceFromEvent(event: any): TraceContext | undefined {
322
327
return readTraceFromHTTPEvent ( event ) ;
323
328
}
324
329
330
+ if ( isAppSyncResolverEvent ( event ) ) {
331
+ return readTraceFromAppSyncEvent ( event ) ;
332
+ }
333
+
325
334
if ( isSQSEvent ( event ) ) {
326
335
return readTraceFromSQSEvent ( event ) ;
327
336
}
Original file line number Diff line number Diff line change 1
1
import {
2
2
APIGatewayEvent ,
3
3
APIGatewayProxyEventV2 ,
4
+ AppSyncResolverEvent ,
4
5
ALBEvent ,
5
6
CloudWatchLogsEvent ,
6
7
ScheduledEvent ,
@@ -58,3 +59,7 @@ export function isSNSEvent(event: any): event is SNSEvent {
58
59
export function isSQSEvent ( event : any ) : event is SQSEvent {
59
60
return Array . isArray ( event . Records ) && event . Records . length > 0 && event . Records [ 0 ] . eventSource === "aws:sqs" ;
60
61
}
62
+
63
+ export function isAppSyncResolverEvent ( event : any ) : event is AppSyncResolverEvent < any > {
64
+ return event . info !== undefined && event . info . selectionSetGraphQL !== undefined ;
65
+ }
You can’t perform that action at this time.
0 commit comments