From 3169aaca3fa03c721559c8345a391b669d7ae704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Tue, 4 Mar 2025 15:42:58 -0500 Subject: [PATCH 1/7] add `CODEOWNERS` (#631) --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..e53b2646 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @DataDog/serverless-aws From 04f429d8c90afde3e2f33951cfd0036be607b2a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Tue, 4 Mar 2025 16:54:15 -0500 Subject: [PATCH 2/7] update `CODEOWNERS` (#632) --- .github/CODEOWNERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e53b2646..be488219 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1,2 @@ -* @DataDog/serverless-aws +* @DataDog/serverless-aws +src/trace/* @DataDog/apm-serverless From ccf67c79359c9be10106cbf44f7f5cd28a3a3b9a Mon Sep 17 00:00:00 2001 From: Nicholas Hulston Date: Tue, 11 Mar 2025 10:35:08 -0400 Subject: [PATCH 3/7] Use FIPs endpoint for SecretManager when in Govcloud region (#634) --- src/metrics/listener.spec.ts | 31 +++++++++++++++++++++++++++++++ src/metrics/listener.ts | 7 ++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/metrics/listener.spec.ts b/src/metrics/listener.spec.ts index fdd92251..d37061e6 100644 --- a/src/metrics/listener.spec.ts +++ b/src/metrics/listener.spec.ts @@ -118,6 +118,37 @@ describe("MetricsListener", () => { await expect(listener.onCompleteInvocation()).resolves.toEqual(undefined); }); + it("configures FIPS endpoint for GovCloud regions", async () => { + try { + process.env.AWS_REGION = "us-gov-west-1"; + const secretsManagerModule = require("@aws-sdk/client-secrets-manager"); + const secretsManagerSpy = jest.spyOn(secretsManagerModule, "SecretsManager"); + + const kms = new MockKMS("kms-api-key-decrypted"); + const listener = new MetricsListener(kms as any, { + apiKey: "", + apiKeyKMS: "", + apiKeySecretARN: "api-key-secret-arn", + enhancedMetrics: false, + logForwarding: false, + shouldRetryMetrics: false, + localTesting: false, + siteURL, + }); + + await listener.onStartInvocation({}); + await listener.onCompleteInvocation(); + + expect(secretsManagerSpy).toHaveBeenCalledWith({ + useFipsEndpoint: true, + }); + + secretsManagerSpy.mockRestore(); + } finally { + process.env.AWS_REGION = "us-east-1"; + } + }); + it("logs metrics when logForwarding is enabled", async () => { const spy = jest.spyOn(process.stdout, "write"); jest.spyOn(Date, "now").mockImplementation(() => 1487076708000); diff --git a/src/metrics/listener.ts b/src/metrics/listener.ts index 0a000e03..b4c6525f 100644 --- a/src/metrics/listener.ts +++ b/src/metrics/listener.ts @@ -7,6 +7,7 @@ import { writeMetricToStdout } from "./metric-log"; import { Distribution } from "./model"; import { Context } from "aws-lambda"; import { getEnhancedMetricTags } from "./enhanced-metrics"; +import { SecretsManagerClientConfig } from "@aws-sdk/client-secrets-manager"; const METRICS_BATCH_SEND_INTERVAL = 10000; // 10 seconds const HISTORICAL_METRICS_THRESHOLD_HOURS = 4 * 60 * 60 * 1000; // 4 hours @@ -223,7 +224,11 @@ export class MetricsListener { if (config.apiKeySecretARN !== "") { try { const { SecretsManager } = await import("@aws-sdk/client-secrets-manager"); - const secretsManager = new SecretsManager(); + const region = process.env.AWS_REGION; + const isGovRegion = region !== undefined && region.startsWith("us-gov-"); + const secretsManager = new SecretsManager({ + useFipsEndpoint: isGovRegion, + }); const secret = await secretsManager.getSecretValue({ SecretId: config.apiKeySecretARN }); return secret?.SecretString ?? ""; } catch (error) { From 579407e7a4f4bdc4dbb1d24a2c27f743ac651b51 Mon Sep 17 00:00:00 2001 From: Nicholas Hulston Date: Wed, 12 Mar 2025 10:27:08 -0400 Subject: [PATCH 4/7] Use FIPs endpoint for KMS when in Govcloud region (#635) --- src/metrics/kms-service.spec.ts | 30 ++++++++++++++++++++++++++++-- src/metrics/kms-service.ts | 25 +++++++++++++++++++++---- 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/src/metrics/kms-service.spec.ts b/src/metrics/kms-service.spec.ts index a12e6106..6892884e 100644 --- a/src/metrics/kms-service.spec.ts +++ b/src/metrics/kms-service.spec.ts @@ -100,7 +100,7 @@ describe("KMSService", () => { }); const kmsService = new KMSService(); - const result = await kmsService.decryptV3(Buffer.from(ENCRYPTED_KEY, "base64")); + const result = await kmsService.decryptV3(Buffer.from(ENCRYPTED_KEY, "base64"), {}); expect(Buffer.from(result).toString("ascii")).toEqual(EXPECTED_RESULT); fakeKmsCall.done(); }); @@ -116,8 +116,34 @@ describe("KMSService", () => { }); const kmsService = new KMSService(); - const result = await kmsService.decryptV3(Buffer.from(ENCRYPTED_KEY, "base64")); + const result = await kmsService.decryptV3(Buffer.from(ENCRYPTED_KEY, "base64"), {}); expect(Buffer.from(result).toString("ascii")).toEqual(EXPECTED_RESULT); fakeKmsCall.done(); }); + + it("configures FIPS endpoint for GovCloud regions", async () => { + try { + process.env.AWS_REGION = "us-gov-west-1"; + + const mockKmsConstructor = jest.fn(); + jest.mock("aws-sdk/clients/kms", () => mockKmsConstructor); + mockKmsConstructor.mockImplementation(() => ({ + decrypt: () => ({ + promise: () => Promise.resolve({ Plaintext: Buffer.from(EXPECTED_RESULT) }), + }), + })); + + // Create service and call decrypt + const kmsService = new KMSService(); + await kmsService.decrypt(ENCRYPTED_KEY); + + // Verify FIPS endpoint was used + expect(mockKmsConstructor).toHaveBeenCalledWith({ + endpoint: "https://kms-fips.us-gov-west-1.amazonaws.com", + }); + } finally { + process.env.AWS_REGION = "us-east-1"; + jest.restoreAllMocks(); + } + }); }); diff --git a/src/metrics/kms-service.ts b/src/metrics/kms-service.ts index f4aab9b4..d10950f4 100644 --- a/src/metrics/kms-service.ts +++ b/src/metrics/kms-service.ts @@ -1,6 +1,8 @@ // In order to avoid the layer adding the 40mb aws-sdk to a deployment, (which is always available // in the Lambda environment anyway), we use require to import the SDK. +import { logDebug } from "../utils"; + export class KMSService { private encryptionContext; @@ -12,6 +14,19 @@ export class KMSService { const buffer = Buffer.from(ciphertext, "base64"); let kms; + const region = process.env.AWS_REGION; + const isGovRegion = region !== undefined && region.startsWith("us-gov-"); + if (isGovRegion) { + logDebug("Govcloud region detected. Using FIPs endpoints for secrets management."); + } + let kmsClientParams = {}; + if (isGovRegion) { + // Endpoints: https://docs.aws.amazon.com/general/latest/gr/kms.html + kmsClientParams = { + endpoint: `https://kms-fips.${region}.amazonaws.com`, + }; + } + // Explicitly try/catch this require to appease esbuild and ts compiler // otherwise users would need to mark this as `external` // see https://github.com/DataDog/datadog-lambda-js/pull/409 @@ -20,11 +35,12 @@ export class KMSService { } catch (err) { if ((err as any).code === "MODULE_NOT_FOUND") { // Node 18 - return this.decryptV3(buffer); + return this.decryptV3(buffer, kmsClientParams); } } try { - const kmsClient = new kms(); + // Configure KMS client to use FIPS endpoint + const kmsClient = new kms(kmsClientParams); // When the API key is encrypted using the AWS console, the function name is added as an encryption context. // When the API key is encrypted using the AWS CLI, no encryption context is added. @@ -50,7 +66,7 @@ export class KMSService { } // Node 18 or AWS SDK V3 - public async decryptV3(buffer: Buffer): Promise { + public async decryptV3(buffer: Buffer, kmsClientParams: any): Promise { // tslint:disable-next-line: variable-name one-variable-per-declaration let KMSClient, DecryptCommand; // Explicitly try/catch this require to appease esbuild and ts compiler @@ -61,7 +77,8 @@ export class KMSService { } catch (e) { throw Error("Can't load AWS SDK v2 or v3 to decrypt KMS key, custom metrics may not be sent"); } - const kmsClient = new KMSClient(); + + const kmsClient = new KMSClient(kmsClientParams); let result; try { const decryptCommand = new DecryptCommand({ CiphertextBlob: buffer }); From 288043a92874d2311baed001840d0d9452a6b19c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Wed, 12 Mar 2025 15:23:09 -0400 Subject: [PATCH 5/7] chore: upgrade tracer to `v5.41.1` (#637) * update tracer to `v5.41.1` * update snapshots --- .../logs/process-input-traced_node18.log | 22 ++++++++--- .../logs/process-input-traced_node20.log | 22 ++++++++--- .../logs/process-input-traced_node22.log | 22 ++++++++--- .../logs/status-code-500s_node18.log | 22 ++++++++--- .../logs/status-code-500s_node20.log | 22 ++++++++--- .../logs/status-code-500s_node22.log | 22 ++++++++--- package.json | 2 +- yarn.lock | 37 +++++++++++-------- 8 files changed, 118 insertions(+), 53 deletions(-) diff --git a/integration_tests/snapshots/logs/process-input-traced_node18.log b/integration_tests/snapshots/logs/process-input-traced_node18.log index ebcd1313..1c9bdc9e 100644 --- a/integration_tests/snapshots/logs/process-input-traced_node18.log +++ b/integration_tests/snapshots/logs/process-input-traced_node18.log @@ -48,6 +48,7 @@ START "_inferred_span.synchronicity": "sync", "http.method": "GET", "stage": "test", + "domain_name": "", "http.status_code": "200", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node18", "language": "javascript" @@ -81,6 +82,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", @@ -191,6 +193,7 @@ START "resource": "MODIFY someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -230,7 +233,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -240,6 +242,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node18", @@ -343,6 +346,7 @@ START "resource": "REMOVE someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -382,7 +386,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -392,6 +395,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node18", @@ -495,6 +499,7 @@ START "resource": "INSERT someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -534,7 +539,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -544,6 +548,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node18", @@ -647,6 +652,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -685,7 +691,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -695,6 +700,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -778,6 +784,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -816,7 +823,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -826,6 +832,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -909,6 +916,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -947,7 +955,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -957,6 +964,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -1087,6 +1095,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", "event_type": "SNS", @@ -1216,6 +1225,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node18", "functionname": "integration-tests-js-XXXX-process-input-traced_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", "event_type": "SQS", diff --git a/integration_tests/snapshots/logs/process-input-traced_node20.log b/integration_tests/snapshots/logs/process-input-traced_node20.log index e890bb4f..cb7cf040 100644 --- a/integration_tests/snapshots/logs/process-input-traced_node20.log +++ b/integration_tests/snapshots/logs/process-input-traced_node20.log @@ -48,6 +48,7 @@ START "_inferred_span.synchronicity": "sync", "http.method": "GET", "stage": "test", + "domain_name": "", "http.status_code": "200", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node20", "language": "javascript" @@ -81,6 +82,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", @@ -191,6 +193,7 @@ START "resource": "MODIFY someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -230,7 +233,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -240,6 +242,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node20", @@ -343,6 +346,7 @@ START "resource": "REMOVE someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -382,7 +386,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -392,6 +395,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node20", @@ -495,6 +499,7 @@ START "resource": "INSERT someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -534,7 +539,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -544,6 +548,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node20", @@ -647,6 +652,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -685,7 +691,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -695,6 +700,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -778,6 +784,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -816,7 +823,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -826,6 +832,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -909,6 +916,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -947,7 +955,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -957,6 +964,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -1087,6 +1095,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", "event_type": "SNS", @@ -1216,6 +1225,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node20", "functionname": "integration-tests-js-XXXX-process-input-traced_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", "event_type": "SQS", diff --git a/integration_tests/snapshots/logs/process-input-traced_node22.log b/integration_tests/snapshots/logs/process-input-traced_node22.log index e5a4d2de..dec8b049 100644 --- a/integration_tests/snapshots/logs/process-input-traced_node22.log +++ b/integration_tests/snapshots/logs/process-input-traced_node22.log @@ -48,6 +48,7 @@ START "_inferred_span.synchronicity": "sync", "http.method": "GET", "stage": "test", + "domain_name": "", "http.status_code": "200", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", "language": "javascript" @@ -81,6 +82,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", @@ -191,6 +193,7 @@ START "resource": "MODIFY someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -230,7 +233,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -240,6 +242,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", @@ -343,6 +346,7 @@ START "resource": "REMOVE someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -382,7 +386,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -392,6 +395,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", @@ -495,6 +499,7 @@ START "resource": "INSERT someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -534,7 +539,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -544,6 +548,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", @@ -647,6 +652,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -685,7 +691,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -695,6 +700,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -778,6 +784,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -816,7 +823,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -826,6 +832,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -909,6 +916,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -947,7 +955,6 @@ START "resource": "integration-tests-js-XXXX-process-input-traced_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-process-input-traced_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -957,6 +964,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "event_type": "S3", @@ -1087,6 +1095,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", "event_type": "SNS", @@ -1216,6 +1225,7 @@ START "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", "functionname": "integration-tests-js-XXXX-process-input-traced_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", "event_type": "SQS", diff --git a/integration_tests/snapshots/logs/status-code-500s_node18.log b/integration_tests/snapshots/logs/status-code-500s_node18.log index ac75f6c0..1c4803a0 100644 --- a/integration_tests/snapshots/logs/status-code-500s_node18.log +++ b/integration_tests/snapshots/logs/status-code-500s_node18.log @@ -54,6 +54,7 @@ START "_inferred_span.synchronicity": "sync", "http.method": "GET", "stage": "test", + "domain_name": "", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", "language": "javascript" @@ -87,6 +88,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", @@ -138,6 +140,7 @@ START "resource": "MODIFY someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -177,7 +180,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -187,6 +189,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", @@ -235,6 +238,7 @@ START "resource": "REMOVE someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -274,7 +278,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -284,6 +287,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", @@ -332,6 +336,7 @@ START "resource": "INSERT someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -371,7 +376,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -381,6 +385,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", @@ -429,6 +434,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -467,7 +473,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -477,6 +482,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", @@ -525,6 +531,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -563,7 +570,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -573,6 +579,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", @@ -621,6 +628,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -659,7 +667,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node18", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node18", "version": "1.0.0", "runtime-id":"XXXX", @@ -669,6 +676,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", @@ -764,6 +772,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", @@ -858,6 +867,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node18", "functionname": "integration-tests-js-XXXX-status-code-500s_node18", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", diff --git a/integration_tests/snapshots/logs/status-code-500s_node20.log b/integration_tests/snapshots/logs/status-code-500s_node20.log index a2f1574d..14b5e19d 100644 --- a/integration_tests/snapshots/logs/status-code-500s_node20.log +++ b/integration_tests/snapshots/logs/status-code-500s_node20.log @@ -54,6 +54,7 @@ START "_inferred_span.synchronicity": "sync", "http.method": "GET", "stage": "test", + "domain_name": "", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", "language": "javascript" @@ -87,6 +88,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", @@ -138,6 +140,7 @@ START "resource": "MODIFY someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -177,7 +180,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -187,6 +189,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", @@ -235,6 +238,7 @@ START "resource": "REMOVE someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -274,7 +278,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -284,6 +287,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", @@ -332,6 +336,7 @@ START "resource": "INSERT someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -371,7 +376,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -381,6 +385,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", @@ -429,6 +434,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -467,7 +473,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -477,6 +482,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", @@ -525,6 +531,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -563,7 +570,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -573,6 +579,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", @@ -621,6 +628,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -659,7 +667,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node20", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node20", "version": "1.0.0", "runtime-id":"XXXX", @@ -669,6 +676,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", @@ -764,6 +772,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", @@ -858,6 +867,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node20", "functionname": "integration-tests-js-XXXX-status-code-500s_node20", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", diff --git a/integration_tests/snapshots/logs/status-code-500s_node22.log b/integration_tests/snapshots/logs/status-code-500s_node22.log index 3546519b..fa665993 100644 --- a/integration_tests/snapshots/logs/status-code-500s_node22.log +++ b/integration_tests/snapshots/logs/status-code-500s_node22.log @@ -54,6 +54,7 @@ START "_inferred_span.synchronicity": "sync", "http.method": "GET", "stage": "test", + "domain_name": "", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", "language": "javascript" @@ -87,6 +88,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", @@ -138,6 +140,7 @@ START "resource": "MODIFY someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -177,7 +180,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -187,6 +189,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", @@ -235,6 +238,7 @@ START "resource": "REMOVE someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -274,7 +278,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"a23821b540813527937fbe833d70a005\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -284,6 +287,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", @@ -332,6 +336,7 @@ START "resource": "INSERT someTableName", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedDynamoDbServiceName", @@ -371,7 +376,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.dynamodb.item\",\"ptr.dir\":\"u\",\"ptr.hash\":\"843472b4a65c45fcc3f14939c6cae6d1\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -381,6 +385,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "arn:aws:dynamodb:us-east-1:1234567890:table/someTableName/stream/2024-12-11T20:00:00.000", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", @@ -429,6 +434,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -467,7 +473,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"5e945cd2009d743bdef019835b237969\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -477,6 +482,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", @@ -525,6 +531,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -563,7 +570,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"9b03fa9d6a34c7b40a2a2907eb0db1f6\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -573,6 +579,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", @@ -621,6 +628,7 @@ START "resource": "my-bucket-name", "error": 0, "meta": { + "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedS3ServiceName", @@ -659,7 +667,6 @@ START "resource": "integration-tests-js-XXXX-status-code-500s_node22", "error": 0, "meta": { - "_dd.span_links": "[{\"trace_id\":\"00000000000000000000000000000000\",\"span_id\":\"0000000000000000\",\"attributes\":{\"ptr.kind\":\"aws.s3.object\",\"ptr.dir\":\"u\",\"ptr.hash\":\"b2229b8289f3e49de4f01af8d228ebd8\",\"link.kind\":\"span-pointer\"}}]", "service": "integration-tests-js-XXXX-status-code-500s_node22", "version": "1.0.0", "runtime-id":"XXXX", @@ -669,6 +676,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "arn:aws:s3:::my-bucket-name", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", @@ -764,6 +772,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", @@ -858,6 +867,7 @@ START "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", "functionname": "integration-tests-js-XXXX-status-code-500s_node22", "datadog_lambda":"XXXX", + "dd_trace": "", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", diff --git a/package.json b/package.json index 224842da..3275a823 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@types/node": "^20.12.10", "@types/promise-retry": "^1.1.3", "@types/shimmer": "^1.0.1", - "dd-trace": "^5.40.0", + "dd-trace": "^5.41.1", "jest": "^27.0.1", "mock-fs": "4.14.0", "nock": "13.5.4", diff --git a/yarn.lock b/yarn.lock index 5a83a388..b276999e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1144,10 +1144,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@datadog/libdatadog@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@datadog/libdatadog/-/libdatadog-0.4.0.tgz#aeeea02973f663b555ad9ac30c4015a31d561598" - integrity sha512-kGZfFVmQInzt6J4FFGrqMbrDvOxqwk3WqhAreS6n9b/De+iMVy/NMu3V7uKsY5zAvz+uQw0liDJm3ZDVH/MVVw== +"@datadog/libdatadog@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@datadog/libdatadog/-/libdatadog-0.5.0.tgz#0ef2a2a76bb9505a0e7e5bc9be1415b467dbf368" + integrity sha512-YvLUVOhYVjJssm0f22/RnDQMc7ZZt/w1bA0nty1vvjyaDz5EWaHfWaaV4GYpCt5MRvnGjCBxIwwbRivmGseKeQ== "@datadog/native-appsec@8.4.0": version "8.4.0" @@ -2403,7 +2403,12 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.8.2: +acorn@^8.14.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" + integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== + +acorn@^8.2.4: version "8.13.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== @@ -2816,12 +2821,12 @@ dc-polyfill@^0.1.3, dc-polyfill@^0.1.4: resolved "https://registry.yarnpkg.com/dc-polyfill/-/dc-polyfill-0.1.6.tgz#c2940fa68ffb24a7bf127cc6cfdd15b39f0e7f02" integrity sha512-UV33cugmCC49a5uWAApM+6Ev9ZdvIUMTrtCO9fj96TPGOQiea54oeO3tiEVdVeo3J9N2UdJEmbS4zOkkEA35uQ== -dd-trace@^5.40.0: - version "5.40.0" - resolved "https://registry.yarnpkg.com/dd-trace/-/dd-trace-5.40.0.tgz#42633550bb015a8cf752587f8829fa0c7ae0be15" - integrity sha512-/UYVCcgpZ9LnnUvIJcNfd1Hj51i8HhqLOn9PCj5gK3wJUn6MY/ie/5da2ZaFtoK2DKQ9OZmFBITLV3+KDl4pjA== +dd-trace@^5.41.1: + version "5.41.1" + resolved "https://registry.yarnpkg.com/dd-trace/-/dd-trace-5.41.1.tgz#86c97ba2b0f22b7edb729e7feea32ee95a601ebf" + integrity sha512-rotpjjUBrqyqWBQMa3YlqeJ0v9Iq95XFdUMGtoTRKtth7OMNZXQ48/GSOi5Cdqi1Ci8+RhYAmusX/GCfZ24R7A== dependencies: - "@datadog/libdatadog" "^0.4.0" + "@datadog/libdatadog" "^0.5.0" "@datadog/native-appsec" "8.4.0" "@datadog/native-iast-rewriter" "2.8.0" "@datadog/native-iast-taint-tracking" "3.3.0" @@ -2834,7 +2839,7 @@ dd-trace@^5.40.0: crypto-randomuuid "^1.0.0" dc-polyfill "^0.1.4" ignore "^5.2.4" - import-in-the-middle "1.11.2" + import-in-the-middle "1.13.1" istanbul-lib-coverage "3.2.0" jest-docblock "^29.7.0" koalas "^1.0.2" @@ -3276,12 +3281,12 @@ ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -import-in-the-middle@1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz#dd848e72b63ca6cd7c34df8b8d97fc9baee6174f" - integrity sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA== +import-in-the-middle@1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.13.1.tgz#789651f9e93dd902a5a306f499ab51eb72b03a12" + integrity sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA== dependencies: - acorn "^8.8.2" + acorn "^8.14.0" acorn-import-attributes "^1.9.5" cjs-module-lexer "^1.2.2" module-details-from-path "^1.0.3" From 566faaaaa356b5ccb27a7f977c38bd960c62a18c Mon Sep 17 00:00:00 2001 From: Nicholas Hulston Date: Thu, 13 Mar 2025 17:04:14 -0400 Subject: [PATCH 6/7] Use correct SecretsManager region (#639) --- src/metrics/listener.spec.ts | 35 ++++++++++++++++++++++++++++++++++- src/metrics/listener.ts | 6 ++++-- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/metrics/listener.spec.ts b/src/metrics/listener.spec.ts index d37061e6..bcbc2deb 100644 --- a/src/metrics/listener.spec.ts +++ b/src/metrics/listener.spec.ts @@ -128,7 +128,7 @@ describe("MetricsListener", () => { const listener = new MetricsListener(kms as any, { apiKey: "", apiKeyKMS: "", - apiKeySecretARN: "api-key-secret-arn", + apiKeySecretARN: "arn:aws:secretsmanager:us-gov-west-1:1234567890:secret:key-name-123ABC", enhancedMetrics: false, logForwarding: false, shouldRetryMetrics: false, @@ -141,6 +141,39 @@ describe("MetricsListener", () => { expect(secretsManagerSpy).toHaveBeenCalledWith({ useFipsEndpoint: true, + region: "us-gov-west-1", + }); + + secretsManagerSpy.mockRestore(); + } finally { + process.env.AWS_REGION = "us-east-1"; + } + }); + + it("uses correct secrets region", async () => { + try { + process.env.AWS_REGION = "us-east-1"; + const secretsManagerModule = require("@aws-sdk/client-secrets-manager"); + const secretsManagerSpy = jest.spyOn(secretsManagerModule, "SecretsManager"); + + const kms = new MockKMS("kms-api-key-decrypted"); + const listener = new MetricsListener(kms as any, { + apiKey: "", + apiKeyKMS: "", + apiKeySecretARN: "arn:aws:secretsmanager:ap-west-1:1234567890:secret:key-name-123ABC", + enhancedMetrics: false, + logForwarding: false, + shouldRetryMetrics: false, + localTesting: false, + siteURL, + }); + + await listener.onStartInvocation({}); + await listener.onCompleteInvocation(); + + expect(secretsManagerSpy).toHaveBeenCalledWith({ + useFipsEndpoint: false, + region: "ap-west-1", }); secretsManagerSpy.mockRestore(); diff --git a/src/metrics/listener.ts b/src/metrics/listener.ts index b4c6525f..a73a35e9 100644 --- a/src/metrics/listener.ts +++ b/src/metrics/listener.ts @@ -224,10 +224,12 @@ export class MetricsListener { if (config.apiKeySecretARN !== "") { try { const { SecretsManager } = await import("@aws-sdk/client-secrets-manager"); - const region = process.env.AWS_REGION; - const isGovRegion = region !== undefined && region.startsWith("us-gov-"); + const secretRegion = config.apiKeySecretARN.split(":")[3]; + const lambdaRegion = process.env.AWS_REGION; + const isGovRegion = lambdaRegion !== undefined && lambdaRegion.startsWith("us-gov-"); const secretsManager = new SecretsManager({ useFipsEndpoint: isGovRegion, + region: secretRegion, }); const secret = await secretsManager.getSecretValue({ SecretId: config.apiKeySecretARN }); return secret?.SecretString ?? ""; From 5f4bd1949db2cd0737f0c9760680f7fa6090271c Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Fri, 14 Mar 2025 10:47:58 -0400 Subject: [PATCH 7/7] chore: upgrade version to `10.123.0` (#633) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * release 10.123.0 with dd-trace 5.41.1 * update yarn.lock --------- Co-authored-by: jordan gonzález <30836115+duncanista@users.noreply.github.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3275a823..bf1e375e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "datadog-lambda-js", - "version": "10.122.0", + "version": "10.123.0", "description": "Lambda client library that supports hybrid tracing in node js", "main": "dist/index.js", "types": "dist/index.d.ts",