Skip to content

Commit 4ce1838

Browse files
committed
wip
1 parent 8e76feb commit 4ce1838

File tree

8 files changed

+7093
-4965
lines changed

8 files changed

+7093
-4965
lines changed

.gitlab/scripts/publish_layers.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ if [[ ! ${STAGES[@]} =~ $STAGE ]]; then
8787
fi
8888

8989
layer="${LAYERS[$index]}"
90+
if [ -z "$LAYER_NAME_SUFFIX" ]; then
91+
echo "No layer name suffix"
92+
else
93+
layer="${layer}-${LAYER_NAME_SUFFIX}"
94+
fi
95+
echo "layer name: $layer"
9096

9197
if [[ "$STAGE" =~ ^(staging|sandbox)$ ]]; then
9298
# Deploy latest version

src/trace/context/extractor-utils.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { XrayService } from "../xray-service";
1212
* Attempts to extract trace context from headers, falling back to Step Function context if needed
1313
* @param headers The headers object to extract from
1414
* @param tracerWrapper The tracer wrapper instance
15-
* @param eventType The type of event (for logging)
1615
* @returns SpanContextWrapper or null
1716
*/
1817
export function extractTraceContext(headers: any, tracerWrapper: TracerWrapper): SpanContextWrapper | null {

src/trace/context/extractor.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ export class TraceContextExtractor {
4343
}
4444

4545
async extract(event: any, context: Context): Promise<SpanContextWrapper | null> {
46-
this.stepFunctionContextService = StepFunctionContextService.instance(event);
4746

4847
let spanContext: SpanContextWrapper | null = null;
4948
if (this.config.traceExtractor) {
@@ -57,7 +56,15 @@ export class TraceContextExtractor {
5756
spanContext = eventExtractor.extract(event);
5857
}
5958
}
60-
59+
/*
60+
if (spanContext === null) {
61+
this.stepFunctionContextService = StepFunctionContextService.instance(event)
62+
if (this.stepFunctionContextService?.context) {
63+
const extractor = new StepFunctionEventTraceExtractor();
64+
spanContext = extractor?.extract(event);
65+
}
66+
}
67+
*/
6168
if (spanContext === null) {
6269
const contextExtractor = new LambdaContextTraceExtractor(this.tracerWrapper);
6370
spanContext = contextExtractor.extract(context);
@@ -88,6 +95,7 @@ export class TraceContextExtractor {
8895
if (EventValidator.isKinesisStreamEvent(event)) return new KinesisEventTraceExtractor(this.tracerWrapper);
8996
if (EventValidator.isEventBridgeEvent(event)) return new EventBridgeEventTraceExtractor(this.tracerWrapper);
9097

98+
this.stepFunctionContextService = StepFunctionContextService.instance(event);
9199
if (this.stepFunctionContextService?.context) return new StepFunctionEventTraceExtractor();
92100

93101
return;

src/trace/context/extractors/sns-sqs.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export class SNSSQSEventTraceExtractor implements EventTraceExtractor {
99
constructor(private tracerWrapper: TracerWrapper) {}
1010

1111
extract(event: SQSEvent): SpanContextWrapper | null {
12+
logDebug("SNS-SQS Extractor Being Used")
1213
try {
1314
// Try to extract trace context from SNS wrapped in SQS
1415
const body = event?.Records?.[0]?.body;

src/trace/context/extractors/sqs.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ export class SQSEventTraceExtractor implements EventTraceExtractor {
99
constructor(private tracerWrapper: TracerWrapper) {}
1010

1111
extract(event: SQSEvent): SpanContextWrapper | null {
12+
logDebug("SQS Extractor Being Used")
13+
logDebug("Line 13 - event", { event });
1214
try {
1315
// First try to extract trace context from message attributes
1416
let headers = event?.Records?.[0]?.messageAttributes?._datadog?.stringValue;
1517

18+
logDebug("Line 18 - headers", { headers });
19+
1620
if (!headers) {
1721
// Then try to get from binary value. This happens when SNS->SQS, but SNS has raw message delivery enabled.
1822
// In this case, SNS maps any messageAttributes to the SQS messageAttributes.
@@ -23,8 +27,13 @@ export class SQSEventTraceExtractor implements EventTraceExtractor {
2327
}
2428
}
2529

30+
logDebug("Line 30 - headers", { headers });
31+
2632
if (headers) {
2733
const parsedHeaders = JSON.parse(headers);
34+
35+
logDebug("Line 35 - parsedHeaders", { parsedHeaders });
36+
2837
const traceContext = extractTraceContext(parsedHeaders, this.tracerWrapper);
2938
if (traceContext) {
3039
return traceContext;

src/trace/context/extractors/step-function.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { StepFunctionContextService } from "../../step-function-service";
22
import { StepFunctionEventTraceExtractor } from "./step-function";
3+
import { TracerWrapper } from "../../tracer-wrapper";
34

45
describe("StepFunctionEventTraceExtractor", () => {
56
beforeEach(() => {

src/trace/context/extractors/step-function.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@ import { EventTraceExtractor } from "../extractor";
55
export class StepFunctionEventTraceExtractor implements EventTraceExtractor {
66
extract(event: any): SpanContextWrapper | null {
77
// Probably StepFunctionContextService hasn't been called
8-
const instance = StepFunctionContextService.instance(event);
9-
const context = instance.context;
8+
const stepFunctionInstance = StepFunctionContextService.instance(event);
9+
const stepFunctionContext = stepFunctionInstance.context;
1010

11-
if (context === undefined) return null;
11+
if (stepFunctionContext !== undefined) {
12+
const spanContext = stepFunctionInstance.spanContext;
13+
if (spanContext !== null) {
14+
return spanContext;
15+
}
16+
}
1217

13-
return instance.spanContext;
18+
return null;
1419
}
1520
}

0 commit comments

Comments
 (0)