From b6131e5c7a052d8e08727c9196d1a83b50be1b68 Mon Sep 17 00:00:00 2001 From: Christian Wygoda <103508637+c-wygoda@users.noreply.github.com> Date: Wed, 1 Oct 2025 18:44:39 +0200 Subject: [PATCH 001/107] fix: support ddtrace 3.x.x, including >=3.15 (#661) --- datadog_lambda/wrapper.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 51e5bcfa..de24d71d 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -65,7 +65,11 @@ if config.exception_replay_enabled: from ddtrace.debugging._exception.replay import SpanExceptionHandler - from ddtrace.debugging._uploader import LogsIntakeUploaderV1 + + try: + from ddtrace.debugging._uploader import SignalUploader + except ImportError: + from ddtrace.debugging._uploader import LogsIntakeUploaderV1 as SignalUploader logger = logging.getLogger(__name__) @@ -370,7 +374,7 @@ def _after(self, event, context): # Flush exception replay if config.exception_replay_enabled: - LogsIntakeUploaderV1._instance.periodic() + SignalUploader._instance.periodic() if config.encode_authorizer_context and is_authorizer_response( self.response From 09143fe76ba033c698fc63bd90495155d36a47f1 Mon Sep 17 00:00:00 2001 From: Rey Abolofia Date: Fri, 3 Oct 2025 11:04:27 -0700 Subject: [PATCH 002/107] Improve testing for ddtrace imports. (#662) --- .github/workflows/build.yml | 2 + datadog_lambda/wrapper.py | 4 ++ scripts/check_layer_size.sh | 2 +- tests/test_wrapper.py | 110 ++++++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d218bdef..05062447 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,6 +5,8 @@ on: branches: - "main" pull_request: + schedule: + - cron: '0 0,12 * * *' # Runs every day at midnight and noon utc jobs: lint: diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index de24d71d..0cbedd9f 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -46,6 +46,10 @@ extract_http_status_code_tag, ) +# ddtrace imports are also tested in +# dd-trace-py/tests/internal/test_serverless.py please update those tests when +# making changes to any ddtrace import. + if config.appsec_enabled: from datadog_lambda.asm import ( asm_set_context, diff --git a/scripts/check_layer_size.sh b/scripts/check_layer_size.sh index b074d74e..ce67d92d 100755 --- a/scripts/check_layer_size.sh +++ b/scripts/check_layer_size.sh @@ -8,7 +8,7 @@ # Compares layer size to threshold, and fails if below that threshold set -e -MAX_LAYER_COMPRESSED_SIZE_KB=$(expr 17 \* 1024 / 2) # 8704 KB +MAX_LAYER_COMPRESSED_SIZE_KB=$(expr 9 \* 1024) # 9216 KB MAX_LAYER_UNCOMPRESSED_SIZE_KB=$(expr 25 \* 1024) # 25600 KB diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 0083b3fa..fe7678ac 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -789,3 +789,113 @@ def lambda_handler(event, context): self.mock_asm_start_response.assert_not_called() assert lambda_handler.span.get_tag("http.status_code") == "200" + + +@patch("datadog_lambda.config.Config.exception_replay_enabled", True) +def test_exception_replay_enabled(monkeypatch): + importlib.reload(wrapper) + + original_SpanExceptionHandler_enable = wrapper.SpanExceptionHandler.enable + SpanExceptionHandler_enable_calls = [] + + def SpanExceptionHandler_enable(*args, **kwargs): + SpanExceptionHandler_enable_calls.append((args, kwargs)) + return original_SpanExceptionHandler_enable(*args, **kwargs) + + original_SignalUploader_periodic = wrapper.SignalUploader.periodic + SignalUploader_periodic_calls = [] + + def SignalUploader_periodic(*args, **kwargs): + SignalUploader_periodic_calls.append((args, kwargs)) + return original_SignalUploader_periodic(*args, **kwargs) + + monkeypatch.setattr( + "datadog_lambda.wrapper.SpanExceptionHandler.enable", + SpanExceptionHandler_enable, + ) + monkeypatch.setattr( + "datadog_lambda.wrapper.SignalUploader.periodic", SignalUploader_periodic + ) + + expected_response = { + "statusCode": 200, + "body": "This should be returned", + } + + @wrapper.datadog_lambda_wrapper + def lambda_handler(event, context): + return expected_response + + response = lambda_handler({}, get_mock_context()) + + assert response == expected_response + assert len(SpanExceptionHandler_enable_calls) == 1 + assert len(SignalUploader_periodic_calls) == 1 + + +@patch("datadog_lambda.config.Config.profiling_enabled", True) +def test_profiling_enabled(monkeypatch): + importlib.reload(wrapper) + + original_Profiler_start = wrapper.profiler.Profiler.start + Profiler_start_calls = [] + + def Profiler_start(*args, **kwargs): + Profiler_start_calls.append((args, kwargs)) + return original_Profiler_start(*args, **kwargs) + + monkeypatch.setattr("datadog_lambda.wrapper.is_new_sandbox", lambda: True) + monkeypatch.setattr( + "datadog_lambda.wrapper.profiler.Profiler.start", Profiler_start + ) + + expected_response = { + "statusCode": 200, + "body": "This should be returned", + } + + @wrapper.datadog_lambda_wrapper + def lambda_handler(event, context): + return expected_response + + response = lambda_handler({}, get_mock_context()) + + assert response == expected_response + assert len(Profiler_start_calls) == 1 + + +@patch("datadog_lambda.config.Config.llmobs_enabled", True) +def test_llmobs_enabled(monkeypatch): + importlib.reload(wrapper) + + original_LLMObs_enable = wrapper.LLMObs.enable + LLMObs_enable_calls = [] + + def LLMObs_enable(*args, **kwargs): + LLMObs_enable_calls.append((args, kwargs)) + return original_LLMObs_enable(*args, **kwargs) + + original_LLMObs_flush = wrapper.LLMObs.flush + LLMObs_flush_calls = [] + + def LLMObs_flush(*args, **kwargs): + LLMObs_flush_calls.append((args, kwargs)) + return original_LLMObs_flush(*args, **kwargs) + + monkeypatch.setattr("datadog_lambda.wrapper.LLMObs.enable", LLMObs_enable) + monkeypatch.setattr("datadog_lambda.wrapper.LLMObs.flush", LLMObs_flush) + + expected_response = { + "statusCode": 200, + "body": "This should be returned", + } + + @wrapper.datadog_lambda_wrapper + def lambda_handler(event, context): + return expected_response + + response = lambda_handler({}, get_mock_context()) + + assert response == expected_response + assert len(LLMObs_enable_calls) == 1 + assert len(LLMObs_flush_calls) == 1 From 93d4a07fa61a4d4d2feec08e722505a9e0cc8657 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Wed, 8 Oct 2025 13:21:43 -0400 Subject: [PATCH 003/107] APMSVLS-65 Extract Trace Context For AppSync Events (#657) APMSVLS-65 first draft of extractor helper function and inclusion in extract_dd_trace_context Second draft of implementation for extracting trace context from event['request']['headers'] Merge branch 'main' into rithika.narayan/APMSVLS-65/extract-context-from-appsync Removing unnecessary allocations from header extraction Added unit tests for extracting context from event['request']['headers'] Refactoring change to use extract_context_from_http_event_or_context Removing extra testing file linting Merge branch 'main' into rithika.narayan/APMSVLS-65/extract-context-from-appsync Cleaned up repeated get calls Checking for request header field without raising exception Removing extraneous file Refactored code, added more unit tests More comprehensive unit testing for coverage Removing imported files Removing more unnecessary files WIP testing whether decode_authorizer_context is set Cleanup More cleanup Testing refactoring for size Removed comments removing changes in tracer Restoring implementation Bump zipped layer size Integer layer size Merge branch 'main' into rithika.narayan/APMSVLS-65/extract-context-from-appsync Fixing layer size calculation Adding unit test for using extract_context_from_lambda_context linting Merge branch 'main' into rithika.narayan/APMSVLS-65/extract-context-from-appsync --- datadog_lambda/tracing.py | 18 + .../event_samples/rum-appsync-no-headers.json | 14 + .../rum-appsync-request-not-dict.json | 12 + tests/event_samples/rum-appsync.json | 53 + tests/integration/input_events/appsync.json | 49 + tests/integration/package-lock.json | 1119 +++++++++++++++++ tests/integration/package.json | 2 +- .../logs/async-metrics_python310.log | 128 ++ .../logs/async-metrics_python311.log | 128 ++ .../logs/async-metrics_python312.log | 128 ++ .../logs/async-metrics_python313.log | 128 ++ .../snapshots/logs/async-metrics_python38.log | 128 ++ .../snapshots/logs/async-metrics_python39.log | 128 ++ .../snapshots/logs/sync-metrics_python310.log | 147 +++ .../snapshots/logs/sync-metrics_python311.log | 147 +++ .../snapshots/logs/sync-metrics_python312.log | 147 +++ .../snapshots/logs/sync-metrics_python313.log | 147 +++ .../snapshots/logs/sync-metrics_python38.log | 147 +++ .../snapshots/logs/sync-metrics_python39.log | 147 +++ .../return_values/async-metrics_appsync.json | 8 + .../return_values/sync-metrics_appsync.json | 8 + tests/integration/yarn.lock | 38 +- tests/test_tracing.py | 48 +- 23 files changed, 2998 insertions(+), 21 deletions(-) create mode 100644 tests/event_samples/rum-appsync-no-headers.json create mode 100644 tests/event_samples/rum-appsync-request-not-dict.json create mode 100644 tests/event_samples/rum-appsync.json create mode 100644 tests/integration/input_events/appsync.json create mode 100644 tests/integration/package-lock.json create mode 100644 tests/integration/snapshots/return_values/async-metrics_appsync.json create mode 100644 tests/integration/snapshots/return_values/sync-metrics_appsync.json diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index 51157f6a..4faaed2d 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -209,6 +209,20 @@ def extract_context_from_http_event_or_context( return context +def extract_context_from_request_header_or_context(event, lambda_context, event_source): + request = event.get("request") + if isinstance(request, (set, dict)) and "headers" in request: + context = extract_context_from_http_event_or_context( + request, + lambda_context, + event_source, + decode_authorizer_context=False, + ) + else: + context = extract_context_from_lambda_context(lambda_context) + return context + + def create_sns_event(message): return { "Records": [ @@ -627,6 +641,10 @@ def extract_dd_trace_context( if extractor is not None: context = extract_context_custom_extractor(extractor, event, lambda_context) + elif isinstance(event, (set, dict)) and "request" in event: + context = extract_context_from_request_header_or_context( + event, lambda_context, event_source + ) elif isinstance(event, (set, dict)) and "headers" in event: context = extract_context_from_http_event_or_context( event, lambda_context, event_source, decode_authorizer_context diff --git a/tests/event_samples/rum-appsync-no-headers.json b/tests/event_samples/rum-appsync-no-headers.json new file mode 100644 index 00000000..ce42c972 --- /dev/null +++ b/tests/event_samples/rum-appsync-no-headers.json @@ -0,0 +1,14 @@ +{ + "identity": "None", + "info": { + "fieldName": "getItems", + "parentTypeName": "Query", + "selectionSetGraphQL": "{\n id\n}", + "selectionSetList":["id"] + }, + "prev": "None", + "request": { + "domainName": "None" + }, + "source": "None" +} \ No newline at end of file diff --git a/tests/event_samples/rum-appsync-request-not-dict.json b/tests/event_samples/rum-appsync-request-not-dict.json new file mode 100644 index 00000000..1ab6dba8 --- /dev/null +++ b/tests/event_samples/rum-appsync-request-not-dict.json @@ -0,0 +1,12 @@ +{ + "identity": "None", + "info": { + "fieldName": "getItems", + "parentTypeName": "Query", + "selectionSetGraphQL": "{\n id\n}", + "selectionSetList":["id"] + }, + "prev": "None", + "request": "hello", + "source": "None" +} \ No newline at end of file diff --git a/tests/event_samples/rum-appsync.json b/tests/event_samples/rum-appsync.json new file mode 100644 index 00000000..ae085359 --- /dev/null +++ b/tests/event_samples/rum-appsync.json @@ -0,0 +1,53 @@ +{ + "identity": "None", + "info": { + "fieldName": "getItems", + "parentTypeName": "Query", + "selectionSetGraphQL": "{\n id\n}", + "selectionSetList":["id"] + }, + "prev": "None", + "request": { + "domainName": "None", + "headers": { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br, zstd", + "accept-language": "en-US,en;q=0.9", + "cloudfront-forwarded-proto": "https", + "cloudfront-is-desktop-viewer": "True", + "cloudfront-is-mobile-viewer": "False", + "cloudfront-is-smarttv-viewer":"False", + "cloudfront-is-tablet-viewer":" False", + "cloudfront-viewer-asn": "6461", + "cloudfront-viewer-country": "US", + "content-length": "47", + "content-type": "application/graphql", + "host": "4aowrg2uhvbw5mn7osu6searqi.appsync-api.us-east-1.amazonaws.com", + "origin": "http://localhost:5173", + "priority": "u=1, i", + "referer": "http://localhost:5173/", + "sec-ch-ua": "\"Chromium\";v=\"140\", \"Not=A?Brand\";v=\"24\", \"Google Chrome\";v=\"140\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "traceparent": "00-0000000000000000d9f454c80b9a529a-73ac6ca3427073a3-01", + "tracestate": "dd=s:1;o:rum", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36","via":"2.0 62f9f3967e93a923f21c8acb20cf10b6.cloudfront.net (CloudFront)", + "x-amz-cf-id": "Femhicb_Vbva-J8qWjdI4hKMmqusCeQSp207UGyY3u8VOUrdE8BBvg==", + "x-amzn-appsync-is-vpce-request": "False", + "x-amzn-remote-ip": "64.124.12.19", + "x-amzn-requestid": "1ee1669a-eda3-4d4f-911c-35f74ebef31d", + "x-amzn-trace-id": "Root=1-68cdb7e9-438bf88259d7ce3535723bdd", + "x-datadog-origin": "rum", + "x-datadog-parent-id": "67890", + "x-datadog-sampling-priority": "1", + "x-datadog-trace-id": "12345", + "x-forwarded-for": "64.124.12.19,15.158.225.229", + "x-forwarded-port": "443", + "x-forwarded-proto": "https" + } + }, + "source": "None" +} \ No newline at end of file diff --git a/tests/integration/input_events/appsync.json b/tests/integration/input_events/appsync.json new file mode 100644 index 00000000..dacf24e7 --- /dev/null +++ b/tests/integration/input_events/appsync.json @@ -0,0 +1,49 @@ +{ + "identity": "None", + "info": { + "fieldName": "getItems", + "parentTypeName": "Query", + "selectionSetGraphQL": "{\n id\n}", + "selectionSetList":["id"] + }, + "prev": "None", + "request": { + "domainName": "None", + "headers": { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br, zstd", + "accept-language": "en-US,en;q=0.9", + "cloudfront-forwarded-proto": "https", + "cloudfront-is-desktop-viewer": "True", + "cloudfront-is-mobile-viewer": "False", + "cloudfront-is-smarttv-viewer":"False", + "cloudfront-is-tablet-viewer":" False", + "cloudfront-viewer-asn": "6461", + "cloudfront-viewer-country": "US", + "content-length": "47", + "content-type": "application/graphql", + "host": "4aowrg2uhvbw5mn7osu6searqi.appsync-api.us-east-1.amazonaws.com", + "origin": "http://localhost:5173", + "priority": "u=1, i", + "referer": "http://localhost:5173/", + "sec-ch-ua": "\"Chromium\";v=\"140\", \"Not=A?Brand\";v=\"24\", \"Google Chrome\";v=\"140\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "traceparent": "00-0000000000000000d9f454c80b9a529a-73ac6ca3427073a3-01", + "tracestate": "dd=s:1;o:rum", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36","via":"2.0 62f9f3967e93a923f21c8acb20cf10b6.cloudfront.net (CloudFront)", + "x-amz-cf-id": "Femhicb_Vbva-J8qWjdI4hKMmqusCeQSp207UGyY3u8VOUrdE8BBvg==", + "x-amzn-appsync-is-vpce-request": "False", + "x-amzn-remote-ip": "64.124.12.19", + "x-amzn-requestid": "1ee1669a-eda3-4d4f-911c-35f74ebef31d", + "x-amzn-trace-id": "Root=1-68cdb7e9-438bf88259d7ce3535723bdd", + "x-forwarded-for": "64.124.12.19,15.158.225.229", + "x-forwarded-port": "443", + "x-forwarded-proto": "https" + } + }, + "source": "None" +} \ No newline at end of file diff --git a/tests/integration/package-lock.json b/tests/integration/package-lock.json new file mode 100644 index 00000000..5990cc8d --- /dev/null +++ b/tests/integration/package-lock.json @@ -0,0 +1,1119 @@ +{ + "name": "integration", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "serverless-plugin-datadog": "^2.18.0", + "serverless-python-requirements": "^6.1.2" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true, + "license": "ISC" + }, + "node_modules/2-thenable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/2-thenable/-/2-thenable-1.0.0.tgz", + "integrity": "sha512-HqiDzaLDFCXkcCO/SwoyhRwqYtINFHF7t9BDRq4x90TOKNAJpiqUt9X5lQ08bwxYzc067HUywDjGySpebHcUpw==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.47" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/appdirectory": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/appdirectory/-/appdirectory-0.1.0.tgz", + "integrity": "sha512-DJ5DV8vZXBbusyiyPlH28xppwS8eAMRuuyMo88xeEcf4bV64lbLtbxRxqixZuJBXsZzLtXFmA13GwVjJc7vdQw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/child-process-ext": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/child-process-ext/-/child-process-ext-2.1.1.tgz", + "integrity": "sha512-0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^6.0.5", + "es5-ext": "^0.10.53", + "log": "^6.0.0", + "split2": "^3.1.1", + "stream-promise": "^3.2.0" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/duration": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz", + "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.46" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-all": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.3.1.tgz", + "integrity": "sha512-Y+ESjdI7ZgMwfzanHZYQ87C59jOO0i+Hd+QYtVt9PhLi6d8wlOpzQnfBxWUlaTuAoR3TkybLqqbIoWveU4Ji7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^7.2.3", + "yargs": "^15.3.1" + }, + "bin": { + "glob-all": "bin/glob-all" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-primitive": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz", + "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/log": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/log/-/log-6.3.2.tgz", + "integrity": "sha512-ek8NRg/OPvS9ISOJNWNAz5vZcpYacWNFDWNJjj5OXsc6YuKacfey6wF04cXz/tOJIVrZ2nGSkHpAY5qKtF6ISg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "duration": "^0.2.2", + "es5-ext": "^0.10.64", + "event-emitter": "^0.3.5", + "sprintf-kit": "^2.0.2", + "type": "^2.7.3", + "uni-global": "^1.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true, + "license": "(MIT AND Zlib)" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "license": "ISC" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serverless-plugin-datadog": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/serverless-plugin-datadog/-/serverless-plugin-datadog-2.18.0.tgz", + "integrity": "sha512-RUdCNjUk+uUKQYgQBjK0WNeYJ7lM2/RScqg/LjVSfv5EACeJ3iIUPz1c4bS2jtiH05al8qXudNb6QDkv9zxG7w==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/serverless-python-requirements": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/serverless-python-requirements/-/serverless-python-requirements-6.1.2.tgz", + "integrity": "sha512-pas27CBxxaLTU5XMYnCVPJc+LVdm65Ys5olNvRWRqfUaZwTfD/7KSSt2XPSRme8BeJubroslaiOtWPP+IrxTVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iarna/toml": "^2.2.5", + "appdirectory": "^0.1.0", + "bluebird": "^3.7.2", + "child-process-ext": "^2.1.1", + "fs-extra": "^10.1.0", + "glob-all": "^3.3.1", + "is-wsl": "^2.2.0", + "jszip": "^3.10.1", + "lodash.get": "^4.4.2", + "lodash.uniqby": "^4.7.0", + "lodash.values": "^4.3.0", + "rimraf": "^3.0.2", + "semver": "^7.6.0", + "set-value": "^4.1.0", + "sha256-file": "1.0.0", + "shell-quote": "^1.8.1" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/set-value": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz", + "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/jonschlinkert", + "https://paypal.me/jonathanschlinkert", + "https://jonschlinkert.dev/sponsor" + ], + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "is-primitive": "^3.0.1" + }, + "engines": { + "node": ">=11.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/sha256-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sha256-file/-/sha256-file-1.0.0.tgz", + "integrity": "sha512-nqf+g0veqgQAkDx0U2y2Tn2KWyADuuludZTw9A7J3D+61rKlIIl9V5TS4mfnwKuXZOH9B7fQyjYJ9pKRHIsAyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-kit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sprintf-kit/-/sprintf-kit-2.0.2.tgz", + "integrity": "sha512-lnapdj6W4LflHZGKvl9eVkz5YF0xaTrqpRWVA4cNVOTedwqifIP8ooGImldzT/4IAN5KXFQAyXTdLidYVQdyag==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/stream-promise": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-promise/-/stream-promise-3.2.0.tgz", + "integrity": "sha512-P+7muTGs2C8yRcgJw/PPt61q7O517tDHiwYEzMWo1GSBCcZedUMT/clz7vUNsSxFphIlJ6QUL4GexQKlfJoVtA==", + "dev": true, + "license": "ISC", + "dependencies": { + "2-thenable": "^1.0.0", + "es5-ext": "^0.10.49", + "is-stream": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/uni-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uni-global/-/uni-global-1.0.0.tgz", + "integrity": "sha512-WWM3HP+siTxzIWPNUg7hZ4XO8clKi6NoCAJJWnuRL+BAqyFXF8gC03WNyTefGoUXYc47uYgXxpKLIEvo65PEHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.5.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + } + } +} diff --git a/tests/integration/package.json b/tests/integration/package.json index 1a178462..8dae6aca 100644 --- a/tests/integration/package.json +++ b/tests/integration/package.json @@ -1,6 +1,6 @@ { "devDependencies": { "serverless-plugin-datadog": "^2.18.0", - "serverless-python-requirements": "^6.1.1" + "serverless-python-requirements": "^6.1.2" } } diff --git a/tests/integration/snapshots/logs/async-metrics_python310.log b/tests/integration/snapshots/logs/async-metrics_python310.log index d72afba3..ea8bf42f 100644 --- a/tests/integration/snapshots/logs/async-metrics_python310.log +++ b/tests/integration/snapshots/logs/async-metrics_python310.log @@ -189,6 +189,134 @@ START "dd_lambda_layer:datadog-python310_X.X.X" ] } +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python310_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python310_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python310", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python310", + "resource:integration-tests-python-XXXX-async-metrics_python310", + "memorysize:1024", + "cold_start:false", + "runtime:python3.10", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python310_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/async-metrics_python311.log b/tests/integration/snapshots/logs/async-metrics_python311.log index dac9c427..5aa9c554 100644 --- a/tests/integration/snapshots/logs/async-metrics_python311.log +++ b/tests/integration/snapshots/logs/async-metrics_python311.log @@ -189,6 +189,134 @@ START "dd_lambda_layer:datadog-python311_X.X.X" ] } +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python311_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python311_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python311", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python311", + "resource:integration-tests-python-XXXX-async-metrics_python311", + "memorysize:1024", + "cold_start:false", + "runtime:python3.11", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python311_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/async-metrics_python312.log b/tests/integration/snapshots/logs/async-metrics_python312.log index c2b624ff..67732da6 100644 --- a/tests/integration/snapshots/logs/async-metrics_python312.log +++ b/tests/integration/snapshots/logs/async-metrics_python312.log @@ -189,6 +189,134 @@ START "dd_lambda_layer:datadog-python312_X.X.X" ] } +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python312_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python312_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python312", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python312", + "resource:integration-tests-python-XXXX-async-metrics_python312", + "memorysize:1024", + "cold_start:false", + "runtime:python3.12", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python312_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/async-metrics_python313.log b/tests/integration/snapshots/logs/async-metrics_python313.log index 9a5e763f..18b3109e 100644 --- a/tests/integration/snapshots/logs/async-metrics_python313.log +++ b/tests/integration/snapshots/logs/async-metrics_python313.log @@ -189,6 +189,134 @@ START "dd_lambda_layer:datadog-python313_X.X.X" ] } +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python313_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python313_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python313", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python313", + "resource:integration-tests-python-XXXX-async-metrics_python313", + "memorysize:1024", + "cold_start:false", + "runtime:python3.13", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python313_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/async-metrics_python38.log b/tests/integration/snapshots/logs/async-metrics_python38.log index 9e6370b5..c9fe147f 100644 --- a/tests/integration/snapshots/logs/async-metrics_python38.log +++ b/tests/integration/snapshots/logs/async-metrics_python38.log @@ -189,6 +189,134 @@ START "dd_lambda_layer:datadog-python38_X.X.X" ] } +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python38_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python38_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python38", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python38", + "resource:integration-tests-python-XXXX-async-metrics_python38", + "memorysize:1024", + "cold_start:false", + "runtime:python3.8", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python38_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/async-metrics_python39.log b/tests/integration/snapshots/logs/async-metrics_python39.log index 70f7a59f..47fd9c87 100644 --- a/tests/integration/snapshots/logs/async-metrics_python39.log +++ b/tests/integration/snapshots/logs/async-metrics_python39.log @@ -189,6 +189,134 @@ START "dd_lambda_layer:datadog-python39_X.X.X" ] } +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python39_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python39_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python39", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python39", + "resource:integration-tests-python-XXXX-async-metrics_python39", + "memorysize:1024", + "cold_start:false", + "runtime:python3.9", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python39_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/sync-metrics_python310.log b/tests/integration/snapshots/logs/sync-metrics_python310.log index 7d504bdc..1e1b8a7b 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python310.log +++ b/tests/integration/snapshots/logs/sync-metrics_python310.log @@ -208,6 +208,153 @@ START "dd_lambda_layer:datadog-python310_X.X.X" ] } +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python310", + "resource:integration-tests-python-XXXX-sync-metrics_python310", + "memorysize:1024", + "cold_start:false", + "runtime:python3.10", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python310_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/sync-metrics_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index aa242652..adc6d215 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python311.log +++ b/tests/integration/snapshots/logs/sync-metrics_python311.log @@ -208,6 +208,153 @@ START "dd_lambda_layer:datadog-python311_X.X.X" ] } +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python311", + "resource:integration-tests-python-XXXX-sync-metrics_python311", + "memorysize:1024", + "cold_start:false", + "runtime:python3.11", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python311_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/sync-metrics_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index 99471eaf..a7934c86 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python312.log +++ b/tests/integration/snapshots/logs/sync-metrics_python312.log @@ -208,6 +208,153 @@ START "dd_lambda_layer:datadog-python312_X.X.X" ] } +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python312", + "resource:integration-tests-python-XXXX-sync-metrics_python312", + "memorysize:1024", + "cold_start:false", + "runtime:python3.12", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python312_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/sync-metrics_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index e53aae50..a5516973 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python313.log +++ b/tests/integration/snapshots/logs/sync-metrics_python313.log @@ -208,6 +208,153 @@ START "dd_lambda_layer:datadog-python313_X.X.X" ] } +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python313", + "resource:integration-tests-python-XXXX-sync-metrics_python313", + "memorysize:1024", + "cold_start:false", + "runtime:python3.13", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python313_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log index 9cbf4564..8cd4eb2c 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python38.log +++ b/tests/integration/snapshots/logs/sync-metrics_python38.log @@ -208,6 +208,153 @@ START "dd_lambda_layer:datadog-python38_X.X.X" ] } +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python38", + "resource:integration-tests-python-XXXX-sync-metrics_python38", + "memorysize:1024", + "cold_start:false", + "runtime:python3.8", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python38_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/logs/sync-metrics_python39.log b/tests/integration/snapshots/logs/sync-metrics_python39.log index cc0407c1..5e5e9cf3 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python39.log +++ b/tests/integration/snapshots/logs/sync-metrics_python39.log @@ -208,6 +208,153 @@ START "dd_lambda_layer:datadog-python39_X.X.X" ] } +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python39", + "resource:integration-tests-python-XXXX-sync-metrics_python39", + "memorysize:1024", + "cold_start:false", + "runtime:python3.9", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python39_X.X.X" + ] +} { "m": "datadog.serverless.dynamodb.stream.type", "v": 1, diff --git a/tests/integration/snapshots/return_values/async-metrics_appsync.json b/tests/integration/snapshots/return_values/async-metrics_appsync.json new file mode 100644 index 00000000..1ad668ec --- /dev/null +++ b/tests/integration/snapshots/return_values/async-metrics_appsync.json @@ -0,0 +1,8 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [] + } +} diff --git a/tests/integration/snapshots/return_values/sync-metrics_appsync.json b/tests/integration/snapshots/return_values/sync-metrics_appsync.json new file mode 100644 index 00000000..1ad668ec --- /dev/null +++ b/tests/integration/snapshots/return_values/sync-metrics_appsync.json @@ -0,0 +1,8 @@ +{ + "statusCode": 200, + "body": { + "message": "hello, dog!", + "request_id": null, + "event_record_ids": [] + } +} diff --git a/tests/integration/yarn.lock b/tests/integration/yarn.lock index 37cb357d..7477e8da 100644 --- a/tests/integration/yarn.lock +++ b/tests/integration/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@iarna/toml@^2.2.5": + version "2.2.5" + resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz" + integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== + "2-thenable@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/2-thenable/-/2-thenable-1.0.0.tgz" @@ -10,11 +15,6 @@ d "1" es5-ext "^0.10.47" -"@iarna/toml@^2.2.5": - version "2.2.5" - resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz" - integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" @@ -44,7 +44,7 @@ bluebird@^3.7.2: brace-expansion@^1.1.7: version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz" integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" @@ -108,7 +108,7 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -d@1, d@^1.0.1, d@^1.0.2: +d@^1.0.1, d@^1.0.2, d@1: version "1.0.2" resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== @@ -251,7 +251,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@^2.0.3, inherits@~2.0.3, inherits@2: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -493,10 +493,10 @@ serverless-plugin-datadog@^2.18.0: resolved "https://registry.npmjs.org/serverless-plugin-datadog/-/serverless-plugin-datadog-2.18.0.tgz" integrity sha512-RUdCNjUk+uUKQYgQBjK0WNeYJ7lM2/RScqg/LjVSfv5EACeJ3iIUPz1c4bS2jtiH05al8qXudNb6QDkv9zxG7w== -serverless-python-requirements@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/serverless-python-requirements/-/serverless-python-requirements-6.1.1.tgz" - integrity sha512-SQsDKjoZXWvRJNsKL7NvHiMM+B6kG0a4RkVexhPCxId/rVMLVyz0UHg7v34kzaklfsXTQIkez+9x7HP3FwdRVQ== +serverless-python-requirements@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/serverless-python-requirements/-/serverless-python-requirements-6.1.2.tgz" + integrity sha512-pas27CBxxaLTU5XMYnCVPJc+LVdm65Ys5olNvRWRqfUaZwTfD/7KSSt2XPSRme8BeJubroslaiOtWPP+IrxTVA== dependencies: "@iarna/toml" "^2.2.5" appdirectory "^0.1.0" @@ -578,6 +578,13 @@ stream-promise@^3.2.0: es5-ext "^0.10.49" is-stream "^1.1.0" +string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -587,13 +594,6 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string_decoder@^1.1.1, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" diff --git a/tests/test_tracing.py b/tests/test_tracing.py index c87a0971..0fddd52b 100644 --- a/tests/test_tracing.py +++ b/tests/test_tracing.py @@ -48,7 +48,7 @@ ) from datadog_lambda.trigger import parse_event_source -from tests.utils import get_mock_context +from tests.utils import get_mock_context, ClientContext function_arn = "arn:aws:lambda:us-west-1:123457598159:function:python-layer-test" @@ -179,6 +179,16 @@ def _wrap(*args, **kwargs): ), ), ("lambda-url", None), + ( + "rum-appsync", + Context( + trace_id=12345, + span_id=67890, + sampling_priority=1, + ), + ), + ("rum-appsync-no-headers", None), + ("rum-appsync-request-not-dict", None), ("s3", None), ( "sns-b64-msg-attribute", @@ -611,6 +621,42 @@ def test_with_complete_datadog_trace_headers_with_trigger_tags(self): ] ) + def test_request_header_malformed(self): + """Testing that if a RUM AppSync event is malformed, the tracer will attempt + to get the trace context from the lambda context in the + extract_context_from_request_header_or_context function.""" + lambda_ctx = get_mock_context() + lambda_ctx.client_context = ClientContext( + custom={ + "_datadog": { + "x-datadog-parent-id": "67890", + "x-datadog-sampling-priority": "1", + "x-datadog-trace-id": "12345", + } + } + ) + request_header_event = { + "identity": "None", + "info": { + "fieldName": "getItems", + "parentTypeName": "Query", + "selectionSetGraphQL": "{\n id\n}", + "selectionSetList": ["id"], + }, + "prev": "None", + "request": "hello", + "source": "None", + } + ctx, source, _ = extract_dd_trace_context(request_header_event, lambda_ctx) + expected_context = Context( + trace_id=12345, + span_id=67890, + sampling_priority=1, + ) + + self.assertEqual(ctx, expected_context) + self.assertEqual(source, "event") + def _test_step_function_trace_data_common( self, event, expected_trace_id, expected_span_id, expected_tid ): From d7763789f262b2da228f8210509e302e6e510d0a Mon Sep 17 00:00:00 2001 From: AJ Stuyvenberg Date: Fri, 10 Oct 2025 08:46:32 -0400 Subject: [PATCH 004/107] feat: Add batchItemFailures metric (#664) * feat: Add batchItemFailures metric * fmt --- datadog_lambda/metric.py | 27 ++++++++++++++ datadog_lambda/wrapper.py | 4 ++ tests/test_metric.py | 78 +++++++++++++++++++++++++++++++++++++++ tests/test_wrapper.py | 58 +++++++++++++++++++++++++++++ 4 files changed, 167 insertions(+) diff --git a/datadog_lambda/metric.py b/datadog_lambda/metric.py index 73bbeca3..5df0812f 100644 --- a/datadog_lambda/metric.py +++ b/datadog_lambda/metric.py @@ -214,6 +214,33 @@ def submit_errors_metric(lambda_context): submit_enhanced_metric("errors", lambda_context) +def submit_batch_item_failures_metric(response, lambda_context): + """Submit aws.lambda.enhanced.batch_item_failures metric with the count of batch item failures + + Args: + response (dict): Lambda function response object + lambda_context (object): Lambda context dict passed to the function by AWS + """ + if not config.enhanced_metrics_enabled: + logger.debug( + "Not submitting batch_item_failures metric because enhanced metrics are disabled" + ) + return + + if not isinstance(response, dict): + return + + batch_item_failures = response.get("batchItemFailures") + if batch_item_failures is not None and isinstance(batch_item_failures, list): + lambda_metric( + "aws.lambda.enhanced.batch_item_failures", + len(batch_item_failures), + timestamp=None, + tags=get_enhanced_metrics_tags(lambda_context), + force_async=True, + ) + + def submit_dynamodb_stream_type_metric(event): stream_view_type = ( event.get("Records", [{}])[0].get("dynamodb", {}).get("StreamViewType") diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 0cbedd9f..8dbd7e35 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -291,6 +291,10 @@ def _before(self, event, context): def _after(self, event, context): try: + from datadog_lambda.metric import submit_batch_item_failures_metric + + submit_batch_item_failures_metric(self.response, context) + status_code = extract_http_status_code_tag(self.trigger_tags, self.response) if self.span: diff --git a/tests/test_metric.py b/tests/test_metric.py index aa537d34..fe3df247 100644 --- a/tests/test_metric.py +++ b/tests/test_metric.py @@ -12,6 +12,7 @@ _select_metrics_handler, flush_stats, lambda_metric, + submit_batch_item_failures_metric, ) from datadog_lambda.tags import dd_lambda_layer_tag from datadog_lambda.thread_stats_writer import ThreadStatsWriter @@ -324,3 +325,80 @@ def decrypt(self, CiphertextBlob=None, EncryptionContext={}): mock_kms_client, MOCK_ENCRYPTED_API_KEY_BASE64 ) self.assertEqual(decrypted_key, EXPECTED_DECRYPTED_API_KEY) + + +class TestBatchItemFailuresMetric(unittest.TestCase): + def setUp(self): + patcher = patch("datadog_lambda.metric.lambda_metric") + self.mock_lambda_metric = patcher.start() + self.addCleanup(patcher.stop) + + patcher = patch("datadog_lambda.config.Config.enhanced_metrics_enabled", True) + self.mock_enhanced_metrics_enabled = patcher.start() + self.addCleanup(patcher.stop) + + def test_submit_batch_item_failures_with_failures(self): + response = { + "batchItemFailures": [ + {"itemIdentifier": "msg-1"}, + {"itemIdentifier": "msg-2"}, + {"itemIdentifier": "msg-3"}, + ] + } + context = unittest.mock.Mock() + + with patch("datadog_lambda.metric.get_enhanced_metrics_tags") as mock_get_tags: + mock_get_tags.return_value = ["tag1:value1"] + submit_batch_item_failures_metric(response, context) + + self.mock_lambda_metric.assert_called_once_with( + "aws.lambda.enhanced.batch_item_failures", + 3, + timestamp=None, + tags=["tag1:value1"], + force_async=True, + ) + + def test_submit_batch_item_failures_with_no_failures(self): + response = {"batchItemFailures": []} + context = unittest.mock.Mock() + + with patch("datadog_lambda.metric.get_enhanced_metrics_tags") as mock_get_tags: + mock_get_tags.return_value = ["tag1:value1"] + submit_batch_item_failures_metric(response, context) + self.mock_lambda_metric.assert_called_once_with( + "aws.lambda.enhanced.batch_item_failures", + 0, + timestamp=None, + tags=["tag1:value1"], + force_async=True, + ) + + def test_submit_batch_item_failures_with_no_field(self): + response = {"statusCode": 200} + context = unittest.mock.Mock() + submit_batch_item_failures_metric(response, context) + self.mock_lambda_metric.assert_not_called() + + def test_submit_batch_item_failures_with_none_response(self): + response = None + context = unittest.mock.Mock() + submit_batch_item_failures_metric(response, context) + self.mock_lambda_metric.assert_not_called() + + def test_submit_batch_item_failures_with_non_list_value(self): + response = {"batchItemFailures": "invalid"} + context = unittest.mock.Mock() + submit_batch_item_failures_metric(response, context) + self.mock_lambda_metric.assert_not_called() + + @patch("datadog_lambda.config.Config.enhanced_metrics_enabled", False) + def test_submit_batch_item_failures_enhanced_metrics_disabled(self): + response = { + "batchItemFailures": [ + {"itemIdentifier": "msg-1"}, + ] + } + context = unittest.mock.Mock() + submit_batch_item_failures_metric(response, context) + self.mock_lambda_metric.assert_not_called() diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index fe7678ac..512a51f8 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -899,3 +899,61 @@ def lambda_handler(event, context): assert response == expected_response assert len(LLMObs_enable_calls) == 1 assert len(LLMObs_flush_calls) == 1 + + +@patch("datadog_lambda.config.Config.trace_enabled", False) +def test_batch_item_failures_metric(): + with patch( + "datadog_lambda.metric.submit_batch_item_failures_metric" + ) as mock_submit: + + @wrapper.datadog_lambda_wrapper + def lambda_handler(event, context): + return { + "batchItemFailures": [ + {"itemIdentifier": "msg-1"}, + {"itemIdentifier": "msg-2"}, + ] + } + + lambda_handler({}, get_mock_context()) + mock_submit.assert_called_once() + call_args = mock_submit.call_args[0] + assert call_args[0] == { + "batchItemFailures": [ + {"itemIdentifier": "msg-1"}, + {"itemIdentifier": "msg-2"}, + ] + } + + +@patch("datadog_lambda.config.Config.trace_enabled", False) +def test_batch_item_failures_metric_no_failures(): + with patch( + "datadog_lambda.metric.submit_batch_item_failures_metric" + ) as mock_submit: + + @wrapper.datadog_lambda_wrapper + def lambda_handler(event, context): + return {"batchItemFailures": []} + + lambda_handler({}, get_mock_context()) + mock_submit.assert_called_once() + call_args = mock_submit.call_args[0] + assert call_args[0] == {"batchItemFailures": []} + + +@patch("datadog_lambda.config.Config.trace_enabled", False) +def test_batch_item_failures_metric_no_response(): + with patch( + "datadog_lambda.metric.submit_batch_item_failures_metric" + ) as mock_submit: + + @wrapper.datadog_lambda_wrapper + def lambda_handler(event, context): + return None + + lambda_handler({}, get_mock_context()) + mock_submit.assert_called_once() + call_args = mock_submit.call_args[0] + assert call_args[0] is None From 968710ec40cf32e70acbaf1d6eb47d733a603c2c Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Fri, 10 Oct 2025 14:55:33 -0400 Subject: [PATCH 005/107] release v8.115.0 (#665) --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 653b589b..0149c284 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.115.0.dev0" +__version__ = "8.115.0" diff --git a/pyproject.toml b/pyproject.toml index aebd15b4..43e88b36 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.115.0.dev0" +version = "8.115.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From a55cac58806d7c9a4e79cba18c8077e862c39123 Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Fri, 10 Oct 2025 16:09:53 -0400 Subject: [PATCH 006/107] 8.116.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 0149c284..05a11f2b 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.115.0" +__version__ = "8.116.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index 43e88b36..02939748 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.115.0" +version = "8.116.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 56152da97569d2ee3e9770c4da346e2fb3df0edf Mon Sep 17 00:00:00 2001 From: Florentin Labelle Date: Tue, 14 Oct 2025 17:23:11 +0200 Subject: [PATCH 007/107] fix(http): http.url tag should contain the path (#663) --- datadog_lambda/trigger.py | 3 ++- .../snapshots/logs/async-metrics_python310.log | 6 ++---- .../snapshots/logs/async-metrics_python311.log | 6 ++---- .../snapshots/logs/async-metrics_python312.log | 6 ++---- .../snapshots/logs/async-metrics_python313.log | 6 ++---- .../snapshots/logs/async-metrics_python38.log | 6 ++---- .../snapshots/logs/async-metrics_python39.log | 6 ++---- .../snapshots/logs/sync-metrics_python310.log | 6 ++---- .../snapshots/logs/sync-metrics_python311.log | 6 ++---- .../snapshots/logs/sync-metrics_python312.log | 6 ++---- .../snapshots/logs/sync-metrics_python313.log | 6 ++---- .../snapshots/logs/sync-metrics_python38.log | 6 ++---- .../snapshots/logs/sync-metrics_python39.log | 6 ++---- tests/test_trigger.py | 11 +++-------- 14 files changed, 29 insertions(+), 57 deletions(-) diff --git a/datadog_lambda/trigger.py b/datadog_lambda/trigger.py index e0c3c4fa..e60de8f0 100644 --- a/datadog_lambda/trigger.py +++ b/datadog_lambda/trigger.py @@ -325,7 +325,8 @@ def extract_http_tags(event): method = apigateway_v2_http.get("method") if path: - http_tags["http.url_details.path"] = path + if http_tags.get("http.url"): + http_tags["http.url"] += path if method: http_tags["http.method"] = method diff --git a/tests/integration/snapshots/logs/async-metrics_python310.log b/tests/integration/snapshots/logs/async-metrics_python310.log index ea8bf42f..6779d7dd 100644 --- a/tests/integration/snapshots/logs/async-metrics_python310.log +++ b/tests/integration/snapshots/logs/async-metrics_python310.log @@ -105,8 +105,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -772,8 +771,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/async-metrics_python311.log b/tests/integration/snapshots/logs/async-metrics_python311.log index 5aa9c554..9f14ff15 100644 --- a/tests/integration/snapshots/logs/async-metrics_python311.log +++ b/tests/integration/snapshots/logs/async-metrics_python311.log @@ -105,8 +105,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -772,8 +771,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/async-metrics_python312.log b/tests/integration/snapshots/logs/async-metrics_python312.log index 67732da6..789a3955 100644 --- a/tests/integration/snapshots/logs/async-metrics_python312.log +++ b/tests/integration/snapshots/logs/async-metrics_python312.log @@ -105,8 +105,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -772,8 +771,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/async-metrics_python313.log b/tests/integration/snapshots/logs/async-metrics_python313.log index 18b3109e..78ade6a7 100644 --- a/tests/integration/snapshots/logs/async-metrics_python313.log +++ b/tests/integration/snapshots/logs/async-metrics_python313.log @@ -105,8 +105,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -772,8 +771,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/async-metrics_python38.log b/tests/integration/snapshots/logs/async-metrics_python38.log index c9fe147f..5375fafe 100644 --- a/tests/integration/snapshots/logs/async-metrics_python38.log +++ b/tests/integration/snapshots/logs/async-metrics_python38.log @@ -105,8 +105,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -772,8 +771,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/async-metrics_python39.log b/tests/integration/snapshots/logs/async-metrics_python39.log index 47fd9c87..f16e9e2d 100644 --- a/tests/integration/snapshots/logs/async-metrics_python39.log +++ b/tests/integration/snapshots/logs/async-metrics_python39.log @@ -105,8 +105,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -772,8 +771,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/sync-metrics_python310.log b/tests/integration/snapshots/logs/sync-metrics_python310.log index 1e1b8a7b..1cbd91dd 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python310.log +++ b/tests/integration/snapshots/logs/sync-metrics_python310.log @@ -85,8 +85,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -828,8 +827,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/sync-metrics_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index adc6d215..b043a8f4 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python311.log +++ b/tests/integration/snapshots/logs/sync-metrics_python311.log @@ -85,8 +85,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -828,8 +827,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/sync-metrics_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index a7934c86..ff9bbdb7 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python312.log +++ b/tests/integration/snapshots/logs/sync-metrics_python312.log @@ -85,8 +85,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -828,8 +827,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/sync-metrics_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index a5516973..87352f25 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python313.log +++ b/tests/integration/snapshots/logs/sync-metrics_python313.log @@ -85,8 +85,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -828,8 +827,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log index 8cd4eb2c..ae41bc18 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python38.log +++ b/tests/integration/snapshots/logs/sync-metrics_python38.log @@ -85,8 +85,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -828,8 +827,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/integration/snapshots/logs/sync-metrics_python39.log b/tests/integration/snapshots/logs/sync-metrics_python39.log index 5e5e9cf3..1acb7f0d 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python39.log +++ b/tests/integration/snapshots/logs/sync-metrics_python39.log @@ -85,8 +85,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/Prod/", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", "http.status_code": "200" @@ -828,8 +827,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", "http.status_code": "200" diff --git a/tests/test_trigger.py b/tests/test_trigger.py index 182e61d8..f10fcbbf 100644 --- a/tests/test_trigger.py +++ b/tests/test_trigger.py @@ -318,8 +318,7 @@ def test_extract_trigger_tags_api_gateway(self): { "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:us-west-1::/restapis/1234567890/stages/prod", - "http.url": "https://70ixmpl4fl.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/prod/path/to/resource", + "http.url": "https://70ixmpl4fl.execute-api.us-east-2.amazonaws.com/prod/path/to/resource", "http.method": "POST", "http.route": "/{proxy+}", "span.kind": "server", @@ -338,8 +337,7 @@ def test_extract_trigger_tags_api_gateway_non_proxy(self): { "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:us-west-1::/restapis/lgxbo6a518/stages/dev", - "http.url": "https://lgxbo6a518.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/dev/http/get", + "http.url": "https://lgxbo6a518.execute-api.eu-west-1.amazonaws.com/dev/http/get", "http.method": "GET", "http.route": "/http/get", "span.kind": "server", @@ -409,8 +407,7 @@ def test_extract_trigger_tags_api_gateway_http_api(self): { "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:us-west-1::/restapis/x02yirxc7a/stages/$default", - "http.url": "https://x02yirxc7a.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/httpapi/get", + "http.url": "https://x02yirxc7a.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "span.kind": "server", "http.route": "/httpapi/get", @@ -429,7 +426,6 @@ def test_extract_trigger_tags_application_load_balancer(self): { "function_trigger.event_source": "application-load-balancer", "function_trigger.event_source_arn": "arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/lambda-xyz/123abc", - "http.url_details.path": "/lambda", "http.method": "GET", "span.kind": "server", }, @@ -596,7 +592,6 @@ def test_extract_http_tags_with_invalid_request_context(self): http_tags, { "span.kind": "server", - "http.url_details.path": "/test", "http.method": "GET", }, ) From fba070d59d57818d62c89f39b179d72932f1a0d5 Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Wed, 22 Oct 2025 12:42:48 -0400 Subject: [PATCH 008/107] chore: do not use Span.set_tag_str (#669) * chore: do not use Span.set_tag_str Use Span.set_tag instead. Span.set_tag_str is being deprecated and removed * update to use node 20 for ci --------- Co-authored-by: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> --- ci/input_files/build.yaml.tpl | 4 ++-- datadog_lambda/asm.py | 4 ++-- tests/test_asm.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 8624a806..599160fb 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -27,8 +27,8 @@ default: - apt-get install -y ca-certificates curl gnupg xxd - mkdir -p /etc/apt/keyrings - curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg - # We are explicitly setting the node_18.x version for the installation - - echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list + # We are explicitly setting the node_20.x version for the installation + - echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list - apt-get update - apt-get install nodejs -y - npm install --global yarn diff --git a/datadog_lambda/asm.py b/datadog_lambda/asm.py index 7bd8272f..6c65a946 100644 --- a/datadog_lambda/asm.py +++ b/datadog_lambda/asm.py @@ -126,8 +126,8 @@ def asm_start_request( request_ip = _get_request_header_client_ip(request_headers, peer_ip, True) if request_ip is not None: - span.set_tag_str("http.client_ip", request_ip) - span.set_tag_str("network.client.ip", request_ip) + span.set_tag("http.client_ip", request_ip) + span.set_tag("network.client.ip", request_ip) # Encode the parsed query and append it to reconstruct the original raw URI expected by AppSec. if parsed_query: diff --git a/tests/test_asm.py b/tests/test_asm.py index 1e11b102..3aab8dd7 100644 --- a/tests/test_asm.py +++ b/tests/test_asm.py @@ -331,8 +331,8 @@ def test_asm_start_request_parametrized( # Check IP tags were set if IP is present if expected_ip: - mock_span.set_tag_str.assert_any_call("http.client_ip", expected_ip) - mock_span.set_tag_str.assert_any_call("network.client.ip", expected_ip) + mock_span.set_tag.assert_any_call("http.client_ip", expected_ip) + mock_span.set_tag.assert_any_call("network.client.ip", expected_ip) @pytest.mark.parametrize( From b8779f89d3cf0faaac4fa58502459ee8bae4e822 Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Thu, 23 Oct 2025 10:25:59 -0400 Subject: [PATCH 009/107] release v8.116.0 with ddtrace@3.16.2 (#671) --- datadog_lambda/version.py | 2 +- pyproject.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 05a11f2b..2e2e781a 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.116.0.dev0" +__version__ = "8.116.0" diff --git a/pyproject.toml b/pyproject.toml index 02939748..cf7d1805 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.116.0.dev0" +version = "8.116.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" @@ -28,7 +28,7 @@ classifiers = [ python = ">=3.8.0,<4" datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" -ddtrace = ">=3.11.0,<4" +ddtrace = ">=3.16.2,<4" ujson = ">=5.9.0" botocore = { version = "^1.34.0", optional = true } requests = { version ="^2.22.0", optional = true } From 1fac67c442ae0b4521c31e9d2269497e14dd34d6 Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Thu, 23 Oct 2025 13:51:31 -0400 Subject: [PATCH 010/107] v8.117.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 2e2e781a..373eef7d 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.116.0" +__version__ = "8.117.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index cf7d1805..d135e085 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.116.0" +version = "8.117.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From af3d0e2ac6e57a895df839f7226b985a58017b77 Mon Sep 17 00:00:00 2001 From: Florentin Labelle Date: Fri, 31 Oct 2025 09:32:28 +0100 Subject: [PATCH 011/107] feat(config): enable telemetry when SCA is on independently from appsec (#672) --- datadog_lambda/__init__.py | 9 +-------- datadog_lambda/config.py | 15 +++++++++------ datadog_lambda/tracing.py | 5 ----- tests/test_config.py | 34 ++++++++++++++++++++++++++++------ 4 files changed, 38 insertions(+), 25 deletions(-) diff --git a/datadog_lambda/__init__.py b/datadog_lambda/__init__.py index 2034d3cb..059cead9 100644 --- a/datadog_lambda/__init__.py +++ b/datadog_lambda/__init__.py @@ -1,12 +1,5 @@ +import datadog_lambda.config # noqa: F401 needs to be imported before `ddtrace` from datadog_lambda.cold_start import initialize_cold_start_tracing -import os - - -if os.environ.get("DD_INSTRUMENTATION_TELEMETRY_ENABLED") is None: - # Telemetry is required for Appsec Software Composition Analysis - os.environ["DD_INSTRUMENTATION_TELEMETRY_ENABLED"] = os.environ.get( - "DD_APPSEC_ENABLED", "false" - ) initialize_cold_start_tracing() diff --git a/datadog_lambda/config.py b/datadog_lambda/config.py index aaa1af5e..eda6b582 100644 --- a/datadog_lambda/config.py +++ b/datadog_lambda/config.py @@ -82,12 +82,6 @@ def _resolve_env(self, key, default=None, cast=None, depends_on_tracing=False): logs_injection = _get_env("DD_LOGS_INJECTION", "true", as_bool) merge_xray_traces = _get_env("DD_MERGE_XRAY_TRACES", "false", as_bool) - telemetry_enabled = _get_env( - "DD_INSTRUMENTATION_TELEMETRY_ENABLED", - "false", - as_bool, - depends_on_tracing=True, - ) otel_enabled = _get_env("DD_TRACE_OTEL_ENABLED", "false", as_bool) profiling_enabled = _get_env("DD_PROFILING_ENABLED", "false", as_bool) llmobs_enabled = _get_env("DD_LLMOBS_ENABLED", "false", as_bool) @@ -96,6 +90,7 @@ def _resolve_env(self, key, default=None, cast=None, depends_on_tracing=False): "DD_DATA_STREAMS_ENABLED", "false", as_bool, depends_on_tracing=True ) appsec_enabled = _get_env("DD_APPSEC_ENABLED", "false", as_bool) + sca_enabled = _get_env("DD_APPSEC_SCA_ENABLED", "false", as_bool) is_gov_region = _get_env("AWS_REGION", "", lambda x: x.startswith("us-gov-")) @@ -144,3 +139,11 @@ def _reset(self): "Python Lambda Layer FIPS mode is %s.", "enabled" if config.fips_mode_enabled else "not enabled", ) + + +if ( + "DD_INSTRUMENTATION_TELEMETRY_ENABLED" not in os.environ + and not config.sca_enabled + and not config.appsec_enabled +): + os.environ["DD_INSTRUMENTATION_TELEMETRY_ENABLED"] = "false" diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index 4faaed2d..225f5dd8 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -55,11 +55,6 @@ logger = logging.getLogger(__name__) dd_trace_context = None -if config.telemetry_enabled: - # Enable the telemetry client if the user has opted in - from ddtrace.internal.telemetry import telemetry_writer - - telemetry_writer.enable() propagator = HTTPPropagator() diff --git a/tests/test_config.py b/tests/test_config.py index 92002439..9c5da63a 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1,3 +1,6 @@ +import importlib +import sys + import pytest from datadog_lambda.config import config, _get_env, Config @@ -14,6 +17,29 @@ def set_env(key, value): return set_env +def test_config_import_does_not_import_ddtrace(monkeypatch): + import datadog_lambda + + with monkeypatch.context() as mp: + for name in list(sys.modules): + if name == "ddtrace" or name.startswith("ddtrace."): + mp.delitem(sys.modules, name, raising=False) + + class _BlockDdtrace(importlib.abc.MetaPathFinder): + def find_spec(self, fullname, path=None, target=None): + if fullname == "ddtrace" or fullname.startswith("ddtrace."): + raise ImportError("ddtrace must not be imported during this test") + return None + + blocker = _BlockDdtrace() + mp.setattr(sys, "meta_path", [blocker] + sys.meta_path, raising=False) + + mp.delattr(datadog_lambda, "config", raising=False) + mp.delitem(sys.modules, "datadog_lambda.config", raising=False) + importlib.invalidate_caches() + importlib.import_module("datadog_lambda.config") + + def _test_as_bool(env_key, conf_key, default): return ( (env_key, conf_key, None, default), @@ -72,9 +98,6 @@ def _test_as_list(env_key, conf_key, default): *_test_as_bool("DD_INTEGRATION_TEST", "integration_test", default=False), *_test_as_bool("DD_BOTOCORE_ADD_SPAN_POINTERS", "add_span_pointers", default=True), *_test_as_bool("DD_TRACE_OTEL_ENABLED", "otel_enabled", default=False), - *_test_as_bool( - "DD_INSTRUMENTATION_TELEMETRY_ENABLED", "telemetry_enabled", default=False - ), *_test_as_bool("DD_MERGE_XRAY_TRACES", "merge_xray_traces", default=False), *_test_as_bool("DD_PROFILING_ENABLED", "profiling_enabled", default=False), *_test_as_bool("DD_LLMOBS_ENABLED", "llmobs_enabled", default=False), @@ -86,6 +109,8 @@ def _test_as_list(env_key, conf_key, default): ), *_test_as_bool("DD_LOCAL_TEST", "local_test", default=False), *_test_as_bool("DD_DATA_STREAMS_ENABLED", "data_streams_enabled", default=False), + *_test_as_bool("DD_APPSEC_ENABLED", "appsec_enabled", default=False), + *_test_as_bool("DD_APPSEC_SCA_ENABLED", "sca_enabled", default=False), *_test_int( "DD_CAPTURE_LAMBDA_PAYLOAD_MAX_DEPTH", "capture_payload_max_depth", default=10 ), @@ -143,9 +168,6 @@ def test_config_from_environ(env_key, conf_key, env_val, conf_val, setenv): "DD_DECODE_AUTHORIZER_CONTEXT", "decode_authorizer_context", default=True ), *_test_as_bool("DD_DATA_STREAMS_ENABLED", "data_streams_enabled", default=False), - *_test_as_bool( - "DD_INSTRUMENTATION_TELEMETRY_ENABLED", "telemetry_enabled", default=False - ), ) From d2ca8240bd86c6facc28be053dd79eaabb0790a2 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Fri, 31 Oct 2025 10:20:08 -0400 Subject: [PATCH 012/107] APMSVLS-212 Reducing Python Lambda Layer Size (#667) strip -g original dockerfile typo No node version Node v 20 strip debug all strip unneeded discard all Merged main removing unnecessary files fixing diff Strip unneeded, cleaned up dockerfile update comment Co-authored-by: rithika.narayan --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8da968fb..cc9e9d70 100644 --- a/Dockerfile +++ b/Dockerfile @@ -73,11 +73,12 @@ RUN find ./python/lib/$runtime/site-packages/ddtrace -name \*.h -delete RUN find ./python/lib/$runtime/site-packages/ddtrace -name \*.hpp -delete RUN find ./python/lib/$runtime/site-packages/ddtrace -name \*.pyx -delete -# Strip debug symbols using strip -g for all .so files in ddtrace. This is to +# Strip debug symbols and symbols that are not needed for relocation +# processing using strip --strip-unneeded for all .so files. This is to # reduce the size when ddtrace is built from sources. The release wheels are # already stripped of debug symbols. We should revisit this when serverless # benchmark uses pre-built wheels instead of building from sources. -RUN find ./python/lib/$runtime/site-packages/ddtrace -name "*.so" -exec strip -g {} \; +RUN find ./python/lib/$runtime/site-packages -name "*.so" -exec strip --strip-unneeded {} \; FROM scratch COPY --from=builder /build/python / From 92a4e837c244306bca6b31d7b183c449ec63506d Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:24:17 -0500 Subject: [PATCH 013/107] v8.117.0 (#673) --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 373eef7d..bb21a06a 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.117.0.dev0" +__version__ = "8.117.0" diff --git a/pyproject.toml b/pyproject.toml index d135e085..be100026 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.117.0.dev0" +version = "8.117.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 3a1e0d347494f98ec38e9cd0615f24c6356a6f33 Mon Sep 17 00:00:00 2001 From: Rithika Narayan Date: Mon, 10 Nov 2025 15:26:59 -0500 Subject: [PATCH 014/107] Updating to v8.118.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index bb21a06a..26394e22 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.117.0" +__version__ = "8.118.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index be100026..2c59df99 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.117.0" +version = "8.118.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From e303ad186cc84b218bbdc4c70507f2551c9ac3ec Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:14:52 -0500 Subject: [PATCH 015/107] Keeping stack v2 for profiling (#674) --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index cc9e9d70..d3ba70da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,8 +34,6 @@ RUN rm -rf ./python/lib/$runtime/site-packages/jsonschema/tests RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_ast/iastpatch*.so RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_taint_tracking/*.so RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_stacktrace*.so -# _stack_v2 may not exist for some versions of ddtrace (e.g. under python 3.13) -RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/internal/datadog/profiling/stack_v2/_stack_v2.*.so # remove *.dist-info directories except any entry_points.txt files and METADATA files required for Appsec Software Composition Analysis RUN find ./python/lib/$runtime/site-packages/*.dist-info \ -type f \ From 5f0ad54779a286a877bfb05aa7fa4ae1553ac09e Mon Sep 17 00:00:00 2001 From: Charles de Beauchesne Date: Fri, 14 Nov 2025 17:35:13 +0100 Subject: [PATCH 016/107] remove python 3.8 build (#675) --- .github/workflows/build_layer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index 789868ed..76a65bfa 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: arch: [arm64, amd64] - python_version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] + python_version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - name: Checkout From 25515314295427cef4aac2e64a857fa5b1943ec7 Mon Sep 17 00:00:00 2001 From: Charles de Beauchesne Date: Wed, 19 Nov 2025 19:14:22 +0100 Subject: [PATCH 017/107] Adds fail-fast on build job (#678) * Remove useless build for system-tests * Use fail-fast with the complete list * Removes Pr event --- .github/workflows/build_layer.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index 76a65bfa..7368a517 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -1,6 +1,7 @@ name: Build Layers for system-Tests on: + workflow_dispatch: push: branches: - "main" @@ -10,6 +11,7 @@ jobs: runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} strategy: + fail-fast: false matrix: arch: [arm64, amd64] python_version: ["3.9", "3.10", "3.11", "3.12", "3.13"] From 61373e5963813ab2a4666d06493d1e0cfba35e96 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:07:30 -0500 Subject: [PATCH 018/107] exclude ddtrace v3.19.0 (#684) * exclude ddtrace v3.19.0 * Exclude below 3.16.2 Co-authored-by: Rey Abolofia --------- Co-authored-by: Rey Abolofia --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2c59df99..02b61733 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ classifiers = [ python = ">=3.8.0,<4" datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" -ddtrace = ">=3.16.2,<4" +ddtrace = ">=3.16.2,!=3.19.0,<4" ujson = ">=5.9.0" botocore = { version = "^1.34.0", optional = true } requests = { version ="^2.22.0", optional = true } From 8c28b41a6ec88d58f1140047d5ee2203c64d45aa Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Tue, 25 Nov 2025 15:01:21 -0500 Subject: [PATCH 019/107] ddtrace version less than 3.19.0 (#686) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 02b61733..abb5f405 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ classifiers = [ python = ">=3.8.0,<4" datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" -ddtrace = ">=3.16.2,!=3.19.0,<4" +ddtrace = ">=3.16.2,<3.19.0" ujson = ">=5.9.0" botocore = { version = "^1.34.0", optional = true } requests = { version ="^2.22.0", optional = true } From ea7ad6ec0b28951d5d1f5905c2e28c673ece5d12 Mon Sep 17 00:00:00 2001 From: AJ Stuyvenberg Date: Tue, 25 Nov 2025 15:40:40 -0500 Subject: [PATCH 020/107] Fix case-insensitive header redaction (#685) * Normalize header redaction keys Co-authored-by: astuyve * feat: fmt * less than 3.19.0 --------- Co-authored-by: datadog-official[bot] <214633350+datadog-official[bot]@users.noreply.github.com> Co-authored-by: Rithika Narayan --- datadog_lambda/tag_object.py | 2 +- tests/test_tag_object.py | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/tag_object.py b/datadog_lambda/tag_object.py index 744e4893..67f6a14d 100644 --- a/datadog_lambda/tag_object.py +++ b/datadog_lambda/tag_object.py @@ -62,6 +62,6 @@ def _should_try_string(obj): def _redact_val(k, v): split_key = k.split(".").pop() or k - if split_key in redactable_keys: + if split_key.lower() in redactable_keys: return "redacted" return v diff --git a/tests/test_tag_object.py b/tests/test_tag_object.py index 574bb331..bd04bf4c 100644 --- a/tests/test_tag_object.py +++ b/tests/test_tag_object.py @@ -73,13 +73,14 @@ def test_tag_object_max_depth_0(self): "vals": [{"thingOne": 1}, {"thingTwo": 2}], } spanMock = MagicMock() + expected_value = str(payload) tag_object(spanMock, "function.request", payload) spanMock.set_tag.assert_has_calls( [ call( "function.request", - "{'hello': 'world', 'level1': {'level2_dict': {'level3': 3}, 'level2_list': [None, True, 'nice', {'l3': 'v3'}], 'level2_bool': True, 'level2_int': 2}, 'vals': [{'thingOne': 1}, {'thingTwo': 2}]}", + expected_value, ), ], True, @@ -105,6 +106,18 @@ def test_redacted_tag_object(self): True, ) + def test_redacted_tag_object_case_insensitive(self): + payload = { + "Authorization": "secret", + "headers": {"X-AUTHORIZATION": "another"}, + } + spanMock = MagicMock() + tag_object(spanMock, "function.request", payload) + spanMock.set_tag.assert_any_call("function.request.Authorization", "redacted") + spanMock.set_tag.assert_any_call( + "function.request.headers.X-AUTHORIZATION", "redacted" + ) + def test_json_tag_object(self): payload = { "token": "world", From c678c09491d065a435a17de0ae15f0ac3dfdafd9 Mon Sep 17 00:00:00 2001 From: Florentin Labelle Date: Mon, 1 Dec 2025 17:54:05 +0100 Subject: [PATCH 021/107] ci(system-tests): fix ddtrace py build from source (#690) * ci(system-tests): fix ddtrace py build from source * ci(system-tests): run on pull requests --- .github/workflows/build_layer.yml | 1 + Dockerfile | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index 7368a517..e146ee0f 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -2,6 +2,7 @@ name: Build Layers for system-Tests on: workflow_dispatch: + pull_request: push: branches: - "main" diff --git a/Dockerfile b/Dockerfile index d3ba70da..ce59438d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,7 @@ RUN set -eux; \ rm gcc && ln -s gcc10-gcc gcc; \ rm g++ && ln -s gcc10-g++ g++; \ rm cc && ln -s gcc10-cc cc; \ + rm c++ && ln -s gcc10-c++ c++; \ fi # Add Rust compiler which is needed to build dd-trace-py from source From fc56ce1f086e63427b121dbedea64f45069eb255 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:54:26 -0500 Subject: [PATCH 022/107] Adding Python 3.14 (#677) * first pass of adding runtime 3.14, checked against uses of 3.12 * snapshots * removing comma * Skip testing profiling for 3.14 runtime * Updating asm to reflect dd-tract-py changes to http_utils._get_blocked_template * pinning to older ddtrace * Use pytest to skip profiling test * Update version of black which supports python3.14 * Update linting to newest version of black. --------- Co-authored-by: Rey Abolofia --- .github/workflows/build.yml | 2 +- .github/workflows/build_layer.yml | 2 +- README.md | 2 +- ci/datasources/runtimes.yaml | 8 + ci/publish_layers.sh | 8 + pyproject.toml | 1 + scripts/add_new_region.sh | 4 + scripts/build_layers.sh | 2 +- scripts/check_format.sh | 2 +- scripts/list_layers.sh | 2 + scripts/publish_govcloud.sh | 2 +- scripts/publish_layers.sh | 6 + scripts/run_integration_tests.sh | 3 +- scripts/run_tests.sh | 2 +- scripts/sign_layers.sh | 2 + .../logs/async-metrics_python314.log | 1674 +++++++++++++++ .../snapshots/logs/sync-metrics_python314.log | 1864 +++++++++++++++++ tests/test_api.py | 24 +- tests/test_wrapper.py | 5 + tests/test_xray.py | 12 +- 20 files changed, 3601 insertions(+), 26 deletions(-) create mode 100644 tests/integration/snapshots/logs/async-metrics_python314.log create mode 100644 tests/integration/snapshots/logs/sync-metrics_python314.log diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 05062447..787b5da3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - name: Checkout diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index e146ee0f..8eef0c66 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -15,7 +15,7 @@ jobs: fail-fast: false matrix: arch: [arm64, amd64] - python_version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python_version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout diff --git a/README.md b/README.md index 658babc2..a1199e8e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Slack](https://chat.datadoghq.com/badge.svg?bg=632CA6)](https://chat.datadoghq.com/) [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/DataDog/datadog-lambda-python/blob/main/LICENSE) -Datadog Lambda Library for Python (3.8, 3.9, 3.10, 3.11, 3.12, and 3.13) enables [enhanced Lambda metrics](https://docs.datadoghq.com/serverless/enhanced_lambda_metrics), [distributed tracing](https://docs.datadoghq.com/serverless/distributed_tracing), and [custom metric submission](https://docs.datadoghq.com/serverless/custom_metrics) from AWS Lambda functions. +Datadog Lambda Library for Python (3.8, 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14) enables [enhanced Lambda metrics](https://docs.datadoghq.com/serverless/enhanced_lambda_metrics), [distributed tracing](https://docs.datadoghq.com/serverless/distributed_tracing), and [custom metric submission](https://docs.datadoghq.com/serverless/custom_metrics) from AWS Lambda functions. ## Installation diff --git a/ci/datasources/runtimes.yaml b/ci/datasources/runtimes.yaml index f9456d39..2b19cf1c 100644 --- a/ci/datasources/runtimes.yaml +++ b/ci/datasources/runtimes.yaml @@ -47,3 +47,11 @@ runtimes: python_version: "3.13" arch: "arm64" image: "3.13.0" + - name: "python314" + python_version: "3.14" + arch: "amd64" + image: "3.14.0" + - name: "python314" + python_version: "3.14" + arch: "arm64" + image: "3.14.0" diff --git a/ci/publish_layers.sh b/ci/publish_layers.sh index 9654582a..d15931ac 100755 --- a/ci/publish_layers.sh +++ b/ci/publish_layers.sh @@ -23,6 +23,8 @@ AWS_CLI_PYTHON_VERSIONS=( "python3.12" "python3.13" "python3.13" + "python3.14" + "python3.14" ) PYTHON_VERSIONS=( "3.8-amd64" @@ -37,6 +39,8 @@ PYTHON_VERSIONS=( "3.12-arm64" "3.13-amd64" "3.13-arm64" + "3.14-amd64" + "3.14-arm64" ) LAYER_PATHS=( ".layers/datadog_lambda_py-amd64-3.8.zip" @@ -51,6 +55,8 @@ LAYER_PATHS=( ".layers/datadog_lambda_py-arm64-3.12.zip" ".layers/datadog_lambda_py-amd64-3.13.zip" ".layers/datadog_lambda_py-arm64-3.13.zip" + ".layers/datadog_lambda_py-amd64-3.14.zip" + ".layers/datadog_lambda_py-arm64-3.14.zip" ) LAYERS=( "Datadog-Python38" @@ -65,6 +71,8 @@ LAYERS=( "Datadog-Python312-ARM" "Datadog-Python313" "Datadog-Python313-ARM" + "Datadog-Python314" + "Datadog-Python314-ARM" ) STAGES=('prod', 'sandbox', 'staging', 'gov-staging', 'gov-prod') diff --git a/pyproject.toml b/pyproject.toml index abb5f405..5f91a97d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] [tool.poetry.dependencies] diff --git a/scripts/add_new_region.sh b/scripts/add_new_region.sh index 576d13e7..21043629 100755 --- a/scripts/add_new_region.sh +++ b/scripts/add_new_region.sh @@ -25,6 +25,8 @@ LAYER_NAMES=( "Datadog-Python312-ARM" "Datadog-Python313" "Datadog-Python313-ARM" + "Datadog-Python314" + "Datadog-Python314-ARM" ) PYTHON_VERSIONS_FOR_AWS_CLI=( "python3.8" @@ -39,6 +41,8 @@ PYTHON_VERSIONS_FOR_AWS_CLI=( "python3.12" "python3.13" "python3.13" + "python3.14" + "python3.14" ) NEW_REGION=$1 diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 23941b7a..b78ca9ab 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -14,7 +14,7 @@ set -e LAYER_DIR=".layers" LAYER_FILES_PREFIX="datadog_lambda_py" -AVAILABLE_PYTHON_VERSIONS=("3.8" "3.9" "3.10" "3.11" "3.12" "3.13") +AVAILABLE_PYTHON_VERSIONS=("3.8" "3.9" "3.10" "3.11" "3.12" "3.13" "3.14") AVAILABLE_ARCHS=("arm64" "amd64") if [ -z "$ARCH" ]; then diff --git a/scripts/check_format.sh b/scripts/check_format.sh index df5a6718..783a17d6 100755 --- a/scripts/check_format.sh +++ b/scripts/check_format.sh @@ -2,7 +2,7 @@ set -e PYTHON_VERSION=$(python -c 'import sys; print(sys.version_info.major)') -pip install -Iv black==22.3.0 +pip install -Iv black==25.11.0 python -m black --check datadog_lambda/ --diff python -m black --check tests --diff diff --git a/scripts/list_layers.sh b/scripts/list_layers.sh index 6449e511..d2710a7e 100755 --- a/scripts/list_layers.sh +++ b/scripts/list_layers.sh @@ -23,6 +23,8 @@ LAYER_NAMES=( "Datadog-Python312-ARM" "Datadog-Python313" "Datadog-Python313-ARM" + "Datadog-Python314" + "Datadog-Python314-ARM" ) AVAILABLE_REGIONS=$(aws ec2 describe-regions | jq -r '.[] | .[] | .RegionName') LAYERS_MISSING_REGIONS=() diff --git a/scripts/publish_govcloud.sh b/scripts/publish_govcloud.sh index 5fd107b0..5edd3b08 100755 --- a/scripts/publish_govcloud.sh +++ b/scripts/publish_govcloud.sh @@ -88,7 +88,7 @@ do export REGION=$region - for python_version in "3.8" "3.9" "3.10" "3.11" "3.12" "3.13"; do + for python_version in "3.8" "3.9" "3.10" "3.11" "3.12" "3.13" "3.14"; do for arch in "amd64" "arm64"; do export PYTHON_VERSION=$python_version export ARCH=$arch diff --git a/scripts/publish_layers.sh b/scripts/publish_layers.sh index 8c78093f..31a514d1 100755 --- a/scripts/publish_layers.sh +++ b/scripts/publish_layers.sh @@ -26,6 +26,8 @@ PYTHON_VERSIONS_FOR_AWS_CLI=( "python3.12" "python3.13" "python3.13" + "python3.14" + "python3.14" ) LAYER_PATHS=( ".layers/datadog_lambda_py-amd64-3.8.zip" @@ -40,6 +42,8 @@ LAYER_PATHS=( ".layers/datadog_lambda_py-arm64-3.12.zip" ".layers/datadog_lambda_py-amd64-3.13.zip" ".layers/datadog_lambda_py-arm64-3.13.zip" + ".layers/datadog_lambda_py-amd64-3.14.zip" + ".layers/datadog_lambda_py-arm64-3.14.zip" ) AVAILABLE_LAYERS=( "Datadog-Python38" @@ -54,6 +58,8 @@ AVAILABLE_LAYERS=( "Datadog-Python312-ARM" "Datadog-Python313" "Datadog-Python313-ARM" + "Datadog-Python314" + "Datadog-Python314-ARM" ) AVAILABLE_REGIONS=$(aws ec2 describe-regions | jq -r '.[] | .[] | .RegionName') diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index f6e4f537..1dfa72b6 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -33,8 +33,9 @@ python310=("python3.10" "3.10" $(xxd -l 4 -c 4 -p < /dev/random)) python311=("python3.11" "3.11" $(xxd -l 4 -c 4 -p < /dev/random)) python312=("python3.12" "3.12" $(xxd -l 4 -c 4 -p < /dev/random)) python313=("python3.13" "3.13" $(xxd -l 4 -c 4 -p < /dev/random)) +python314=("python3.14" "3.14" $(xxd -l 4 -c 4 -p < /dev/random)) -PARAMETERS_SETS=("python38" "python39" "python310" "python311" "python312" "python313") +PARAMETERS_SETS=("python38" "python39" "python310" "python311" "python312" "python313" "python314") if [ -z "$RUNTIME_PARAM" ]; then echo "Python version not specified, running for all python versions." diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index 26f4e215..59d57218 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -8,7 +8,7 @@ # Run unit tests in Docker set -e -PYTHON_VERSIONS=("3.8" "3.9" "3.10" "3.11" "3.12" "3.13") +PYTHON_VERSIONS=("3.8" "3.9" "3.10" "3.11" "3.12" "3.13" "3.14") for python_version in "${PYTHON_VERSIONS[@]}" do diff --git a/scripts/sign_layers.sh b/scripts/sign_layers.sh index eb40062f..d3c890d3 100755 --- a/scripts/sign_layers.sh +++ b/scripts/sign_layers.sh @@ -21,6 +21,8 @@ LAYER_FILES=( "datadog_lambda_py-arm64-3.12.zip" "datadog_lambda_py-amd64-3.13.zip" "datadog_lambda_py-arm64-3.13.zip" + "datadog_lambda_py-amd64-3.14.zip" + "datadog_lambda_py-arm64-3.14.zip" ) SIGNING_PROFILE_NAME="DatadogLambdaSigningProfile" diff --git a/tests/integration/snapshots/logs/async-metrics_python314.log b/tests/integration/snapshots/logs/async-metrics_python314.log new file mode 100644 index 00000000..8983a83c --- /dev/null +++ b/tests/integration/snapshots/logs/async-metrics_python314.log @@ -0,0 +1,1674 @@ +INIT_START Runtime Version: python:3.14.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:true", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", + "resource": "GET /", + "name": "aws.apigateway", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.apigateway.rest", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "endpoint": "/", + "http.method": "GET", + "resource_names": "GET /", + "span.kind": "server", + "apiid": "XXXX", + "apiname": "XXXX", + "stage": "Prod", + "request_id": "XXXX", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "http.status_code": "200", + "http.route": "/", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "true", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "api-gateway", + "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "datadog.serverless.dynamodb.stream.type", + "v": 1, + "e": XXXX, + "t": [ + "streamtype:NEW_AND_OLD_IMAGES", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "ExampleTableWithStream", + "resource": "ExampleTableWithStream", + "name": "aws.dynamodb", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.dynamodb", + "resource_names": "ExampleTableWithStream", + "span.kind": "server", + "tablename": "ExampleTableWithStream", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_id": "XXXX", + "event_name": "INSERT", + "event_version": "1.1", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "size_bytes": "26", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web", + "span_links": [ + { + "trace_id": "XXXX", + "span_id": "XXXX", + "attributes": { + "ptr.kind": "aws.dynamodb.item", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "link.kind": "span-pointer" + } + }, + { + "trace_id": "XXXX", + "span_id": "XXXX", + "attributes": { + "ptr.kind": "aws.dynamodb.item", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "link.kind": "span-pointer" + } + }, + { + "trace_id": "XXXX", + "span_id": "XXXX", + "attributes": { + "ptr.kind": "aws.dynamodb.item", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "link.kind": "span-pointer" + } + } + ] + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "eventbridge.custom.event.sender", + "resource": "eventbridge.custom.event.sender", + "name": "aws.eventbridge", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.eventbridge", + "resource_names": "eventbridge.custom.event.sender", + "span.kind": "server", + "detail_type": "testdetail", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "eventbridge" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", + "resource": "GET /httpapi/get", + "name": "aws.httpapi", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.httpapi", + "endpoint": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.method": "GET", + "http.protocol": "HTTP/1.1", + "http.source_ip": "XXXX", + "http.user_agent": "XXXX/7.64.1", + "resource_names": "GET /httpapi/get", + "request_id": "XXXX", + "apiid": "XXXX", + "apiname": "XXXX", + "stage": "$default", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "http.status_code": "200", + "http.route": "/httpapi/get", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "api-gateway", + "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.method": "GET", + "http.route": "/httpapi/get", + "http.status_code": "200" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "EXAMPLE", + "resource": "EXAMPLE", + "name": "aws.kinesis", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.kinesis", + "resource_names": "EXAMPLE", + "span.kind": "server", + "streamname": "EXAMPLE", + "shardid": "shardId-XXXX", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "event_id": "XXXX", + "event_name": "aws:kinesis:record", + "event_version": "1.0", + "partition_key": "XXXX", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "example-bucket", + "resource": "example-bucket", + "name": "aws.s3", + "error": 0, + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.s3", + "resource_names": "example-bucket", + "span.kind": "server", + "event_name": "ObjectCreated:Put", + "bucketname": "example-bucket", + "bucket_arn": "arn:aws:s3:::example-bucket", + "object_key": "test/key", + "object_size": "1024", + "object_etag": "XXXX", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web", + "span_links": [ + { + "trace_id": "XXXX", + "span_id": "XXXX", + "attributes": { + "ptr.kind": "aws.s3.object", + "ptr.dir": "u", + "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", + "link.kind": "span-pointer" + } + } + ] + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "sns-lambda", + "resource": "sns-lambda", + "name": "aws.sns", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.sns", + "resource_names": "sns-lambda", + "span.kind": "server", + "topicname": "sns-lambda", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "message_id": "XXXX", + "type": "Notification", + "subject": "TestInvoke", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "my-queue", + "resource": "my-queue", + "name": "aws.sqs", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.sqs", + "resource_names": "my-queue", + "span.kind": "server", + "queuename": "my-queue", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-async-metrics_python314", + "resource:integration-tests-python-XXXX-async-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "hello.dog", + "v": 1, + "e": XXXX, + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "tests.integration.count", + "v": 21, + "e": XXXX, + "t": [ + "test:integration", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", + "resource": "$default", + "name": "aws.apigateway.websocket", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.apigateway.websocket", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", + "endpoint": "$default", + "resource_names": "$default", + "span.kind": "server", + "apiid": "XXXX", + "apiname": "XXXX", + "stage": "dev", + "request_id": "XXXX", + "connection_id": "XXXX=", + "event_type": "MESSAGE", + "message_direction": "IN", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "http.status_code": "200", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "api-gateway", + "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", + "http.status_code": "200" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/tests/integration/snapshots/logs/sync-metrics_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log new file mode 100644 index 00000000..442d83b4 --- /dev/null +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -0,0 +1,1864 @@ +INIT_START Runtime Version: python:3.14.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:true", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", + "resource": "GET /", + "name": "aws.apigateway", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.apigateway.rest", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "endpoint": "/", + "http.method": "GET", + "resource_names": "GET /", + "span.kind": "server", + "apiid": "XXXX", + "apiname": "XXXX", + "stage": "Prod", + "request_id": "XXXX", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "http.status_code": "200", + "http.route": "/", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "true", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "api-gateway", + "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +{ + "m": "datadog.serverless.dynamodb.stream.type", + "v": 1, + "e": XXXX, + "t": [ + "streamtype:NEW_AND_OLD_IMAGES", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "ExampleTableWithStream", + "resource": "ExampleTableWithStream", + "name": "aws.dynamodb", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.dynamodb", + "resource_names": "ExampleTableWithStream", + "span.kind": "server", + "tablename": "ExampleTableWithStream", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_id": "XXXX", + "event_name": "INSERT", + "event_version": "1.1", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "size_bytes": "26", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web", + "span_links": [ + { + "trace_id": "XXXX", + "span_id": "XXXX", + "attributes": { + "ptr.kind": "aws.dynamodb.item", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "link.kind": "span-pointer" + } + }, + { + "trace_id": "XXXX", + "span_id": "XXXX", + "attributes": { + "ptr.kind": "aws.dynamodb.item", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "link.kind": "span-pointer" + } + }, + { + "trace_id": "XXXX", + "span_id": "XXXX", + "attributes": { + "ptr.kind": "aws.dynamodb.item", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "link.kind": "span-pointer" + } + } + ] + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "eventbridge.custom.event.sender", + "resource": "eventbridge.custom.event.sender", + "name": "aws.eventbridge", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.eventbridge", + "resource_names": "eventbridge.custom.event.sender", + "span.kind": "server", + "detail_type": "testdetail", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "eventbridge" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", + "resource": "GET /httpapi/get", + "name": "aws.httpapi", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.httpapi", + "endpoint": "/httpapi/get", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.method": "GET", + "http.protocol": "HTTP/1.1", + "http.source_ip": "XXXX", + "http.user_agent": "XXXX/7.64.1", + "resource_names": "GET /httpapi/get", + "request_id": "XXXX", + "apiid": "XXXX", + "apiname": "XXXX", + "stage": "$default", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "http.status_code": "200", + "http.route": "/httpapi/get", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "api-gateway", + "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.method": "GET", + "http.route": "/httpapi/get", + "http.status_code": "200" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "EXAMPLE", + "resource": "EXAMPLE", + "name": "aws.kinesis", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.kinesis", + "resource_names": "EXAMPLE", + "span.kind": "server", + "streamname": "EXAMPLE", + "shardid": "shardId-XXXX", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "event_id": "XXXX", + "event_name": "aws:kinesis:record", + "event_version": "1.0", + "partition_key": "XXXX", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "example-bucket", + "resource": "example-bucket", + "name": "aws.s3", + "error": 0, + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.s3", + "resource_names": "example-bucket", + "span.kind": "server", + "event_name": "ObjectCreated:Put", + "bucketname": "example-bucket", + "bucket_arn": "arn:aws:s3:::example-bucket", + "object_key": "test/key", + "object_size": "1024", + "object_etag": "XXXX", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web", + "span_links": [ + { + "trace_id": "XXXX", + "span_id": "XXXX", + "attributes": { + "ptr.kind": "aws.s3.object", + "ptr.dir": "u", + "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", + "link.kind": "span-pointer" + } + } + ] + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "sns-lambda", + "resource": "sns-lambda", + "name": "aws.sns", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.sns", + "resource_names": "sns-lambda", + "span.kind": "server", + "topicname": "sns-lambda", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "message_id": "XXXX", + "type": "Notification", + "subject": "TestInvoke", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "my-queue", + "resource": "my-queue", + "name": "aws.sqs", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.sqs", + "resource_names": "my-queue", + "span.kind": "server", + "queuename": "my-queue", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "m": "aws.lambda.enhanced.invocations", + "v": 1, + "e": XXXX, + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-python-XXXX-sync-metrics_python314", + "resource:integration-tests-python-XXXX-sync-metrics_python314", + "memorysize:1024", + "cold_start:false", + "runtime:python3.14", + "datadog_lambda:vXX", + "dd_lambda_layer:datadog-python314_X.X.X" + ] +} +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", + "resource": "$default", + "name": "aws.apigateway.websocket", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "operation_name": "aws.apigateway.websocket", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", + "endpoint": "$default", + "resource_names": "$default", + "span.kind": "server", + "apiid": "XXXX", + "apiname": "XXXX", + "stage": "dev", + "request_id": "XXXX", + "connection_id": "XXXX=", + "event_type": "MESSAGE", + "message_direction": "IN", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "http.status_code": "200", + "peer.service": "integration-tests-python", + "_dd.peer.service.source": "peer.service", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "web" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "integration-tests-python", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "name": "aws.lambda", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "cold_start": "false", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_version": "$LATEST", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", + "span.name": "aws.lambda", + "function_trigger.event_source": "api-gateway", + "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", + "http.status_code": "200" + }, + "metrics": { + "_dd.top_level": 1 + }, + "type": "serverless" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://datadoghq.com/", + "out.host": "datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 1 + }, + "type": "http" + }, + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "GET /", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "_dd.p.tid": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "GET", + "http.url": "https://www.datadoghq.com/", + "out.host": "www.datadoghq.com", + "http.status_code": "200", + "http.useragent": "python-requests/X.X.X" + }, + "metrics": { + "_dd.measured": 1 + }, + "type": "http" + } + ] + ] +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +{ + "traces": [ + [ + { + "trace_id": "XXXX", + "parent_id": "XXXX", + "span_id": "XXXX", + "service": "requests", + "resource": "POST /api/v1/distribution_points", + "name": "requests.request", + "error": 0, + "start": "XXXX", + "duration": "XXXX", + "meta": { + "runtime-id": "XXXX", + "_dd.origin": "lambda", + "component": "requests", + "span.kind": "client", + "http.method": "POST", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "out.host": "api.datadoghq.com", + "http.status_code": "202", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "language": "python" + }, + "metrics": { + "process_id": XXXX, + "_dd.measured": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1 + }, + "type": "http" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/tests/test_api.py b/tests/test_api.py index 7fcc3c22..35a179b1 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -33,9 +33,9 @@ def test_secrets_manager_fips_endpoint(self, mock_boto3_client): mock_boto3_client.return_value = mock_client os.environ["AWS_REGION"] = "us-gov-east-1" - os.environ[ - "DD_API_KEY_SECRET_ARN" - ] = "arn:aws:secretsmanager:us-gov-east-1:1234567890:secret:key-name-123ABC" + os.environ["DD_API_KEY_SECRET_ARN"] = ( + "arn:aws:secretsmanager:us-gov-east-1:1234567890:secret:key-name-123ABC" + ) api_key = api.get_api_key() @@ -53,9 +53,9 @@ def test_secrets_manager_different_region(self, mock_boto3_client): mock_boto3_client.return_value = mock_client os.environ["AWS_REGION"] = "us-east-1" - os.environ[ - "DD_API_KEY_SECRET_ARN" - ] = "arn:aws:secretsmanager:us-west-1:1234567890:secret:key-name-123ABC" + os.environ["DD_API_KEY_SECRET_ARN"] = ( + "arn:aws:secretsmanager:us-west-1:1234567890:secret:key-name-123ABC" + ) api_key = api.get_api_key() @@ -74,9 +74,9 @@ def test_secrets_manager_different_region_but_still_fips(self, mock_boto3_client mock_boto3_client.return_value = mock_client os.environ["AWS_REGION"] = "us-east-1" - os.environ[ - "DD_API_KEY_SECRET_ARN" - ] = "arn:aws:secretsmanager:us-west-1:1234567890:secret:key-name-123ABC" + os.environ["DD_API_KEY_SECRET_ARN"] = ( + "arn:aws:secretsmanager:us-west-1:1234567890:secret:key-name-123ABC" + ) api_key = api.get_api_key() @@ -132,9 +132,9 @@ def test_no_fips_for_standard_regions(self, mock_boto3_client): os.environ.clear() os.environ["AWS_REGION"] = "us-west-2" - os.environ[ - "DD_API_KEY_SECRET_ARN" - ] = "arn:aws:secretsmanager:us-west-2:1234567890:secret:key-name-123ABC" + os.environ["DD_API_KEY_SECRET_ARN"] = ( + "arn:aws:secretsmanager:us-west-2:1234567890:secret:key-name-123ABC" + ) api.get_api_key() diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 512a51f8..1a5edfc5 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -3,6 +3,8 @@ import os import unittest import importlib +import sys +import pytest from unittest.mock import MagicMock, patch, call, ANY from datadog_lambda.constants import TraceHeader @@ -834,6 +836,9 @@ def lambda_handler(event, context): @patch("datadog_lambda.config.Config.profiling_enabled", True) +@pytest.mark.skipif( + sys.version_info >= (3, 14), reason="profiling not yet supported in python 3.14" +) def test_profiling_enabled(monkeypatch): importlib.reload(wrapper) diff --git a/tests/test_xray.py b/tests/test_xray.py index 7f33f891..8177e46e 100644 --- a/tests/test_xray.py +++ b/tests/test_xray.py @@ -34,9 +34,9 @@ def test_get_xray_host_port_success(self): def test_send_segment_sampled_out(self): os.environ["AWS_XRAY_DAEMON_ADDRESS"] = "fake-agent.com:8080" - os.environ[ - "_X_AMZN_TRACE_ID" - ] = "Root=1-5e272390-8c398be037738dc042009320;Parent=94ae789b969f1cc5;Sampled=0;Lineage=c6c5b1b9:0" + os.environ["_X_AMZN_TRACE_ID"] = ( + "Root=1-5e272390-8c398be037738dc042009320;Parent=94ae789b969f1cc5;Sampled=0;Lineage=c6c5b1b9:0" + ) with patch( "datadog_lambda.xray.sock.send", MagicMock(return_value=None) @@ -47,9 +47,9 @@ def test_send_segment_sampled_out(self): def test_send_segment_sampled(self): os.environ["AWS_XRAY_DAEMON_ADDRESS"] = "fake-agent.com:8080" - os.environ[ - "_X_AMZN_TRACE_ID" - ] = "Root=1-5e272390-8c398be037738dc042009320;Parent=94ae789b969f1cc5;Sampled=1;Lineage=c6c5b1b9:0" + os.environ["_X_AMZN_TRACE_ID"] = ( + "Root=1-5e272390-8c398be037738dc042009320;Parent=94ae789b969f1cc5;Sampled=1;Lineage=c6c5b1b9:0" + ) with patch( "datadog_lambda.xray.sock.send", MagicMock(return_value=None) ) as mock_send: From f74f9ca9d10f8153d7bd4fcd726540bd903845ba Mon Sep 17 00:00:00 2001 From: Rey Abolofia Date: Mon, 1 Dec 2025 12:53:35 -0500 Subject: [PATCH 023/107] Stop running update-snapshots nightly. (#692) --- .github/workflows/update-snapshots.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-snapshots.yml b/.github/workflows/update-snapshots.yml index ed7097ae..81e0c539 100644 --- a/.github/workflows/update-snapshots.yml +++ b/.github/workflows/update-snapshots.yml @@ -1,8 +1,7 @@ name: update-snapshots on: - schedule: - - cron: "0 15 * * *" # every day 11am EST + workflow_dispatch: jobs: check: @@ -47,8 +46,19 @@ jobs: working-directory: tests/integration run: yarn install - - name: Update Snapshots + - name: Update Snapshots (amd64) env: + ARCH: amd64 + UPDATE_SNAPSHOTS: true + BUILD_LAYERS: true + DD_API_KEY: ${{ secrets.DD_API_KEY }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + run: ./scripts/run_integration_tests.sh + + - name: Update Snapshots (arm64) + env: + ARCH: arm64 UPDATE_SNAPSHOTS: true BUILD_LAYERS: true DD_API_KEY: ${{ secrets.DD_API_KEY }} From 36d7df23b802ab41639498e049727160dcd3033a Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:03:58 -0500 Subject: [PATCH 024/107] chore: release v8.118.0 (#691) * v8.118.0 * remove build for 3.8 for system tests (3.8 is no longer supported after https://github.com/DataDog/dd-trace-py/commit/469a7b8f2543b9a0efc79669c395de65cf046921) --- .github/workflows/build_layer.yml | 2 +- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index 8eef0c66..d5d65ec4 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -15,7 +15,7 @@ jobs: fail-fast: false matrix: arch: [arm64, amd64] - python_version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python_version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 26394e22..a23e0df6 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.118.0.dev0" +__version__ = "8.118.0" diff --git a/pyproject.toml b/pyproject.toml index 5f91a97d..0d08814f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.118.0.dev0" +version = "8.118.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From eba810afe9f0b46ccfb68ce5aa77c989b349e5a8 Mon Sep 17 00:00:00 2001 From: Florentin Labelle Date: Mon, 1 Dec 2025 19:27:40 +0100 Subject: [PATCH 025/107] ci(system-tests): reuse dd-trace-py artifacts instead of building (#689) --- .github/workflows/build_layer.yml | 55 +++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index d5d65ec4..fc22e9ce 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -8,9 +8,32 @@ on: - "main" jobs: + get-ddtrace-run-id: + runs-on: ubuntu-latest + outputs: + run-id: ${{ steps.get-ddtrace-run-id.outputs.run_id }} + steps: + - name: Resolve Run ID of latest dd-trace-py build + id: get-ddtrace-run-id + env: + GH_TOKEN: ${{ github.token }} + run: | + RUN_ID=$(gh run list \ + --repo DataDog/dd-trace-py \ + --workflow build_deploy.yml \ + --branch main \ + --status success \ + --limit 1 \ + --json databaseId \ + --jq '.[0].databaseId') + + echo "run_id=$RUN_ID" >> $GITHUB_OUTPUT + build: runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} + needs: get-ddtrace-run-id + strategy: fail-fast: false matrix: @@ -21,10 +44,38 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Build artifact name + id: build-artifact-name + run: | + if [ "${{ matrix.arch }}" == "amd64" ]; then + ARCH="x86_64" + else + ARCH="aarch64" + fi + + VER="${{ matrix.python_version }}" + PY_VERSION_NO_DOT="${VER//./}" + + echo "artifact_name=wheels-cp${PY_VERSION_NO_DOT}-manylinux_${ARCH}" >> $GITHUB_OUTPUT + + - name: Download ddtrace Wheel + uses: actions/download-artifact@v4 + with: + name: ${{ steps.build-artifact-name.outputs.artifact_name }} + repository: DataDog/dd-trace-py + run-id: ${{ needs.get-ddtrace-run-id.outputs.run-id }} + github-token: ${{ secrets.GITHUB_TOKEN }} + path: ./artifacts + + - name: Find ddtrace Wheel + id: find-ddtrace-wheel + run: | + echo "wheel_path=$(find ./artifacts -name "*.whl" | head -n 1)" >> $GITHUB_OUTPUT + - name: Patch pyproject.toml run: | - echo "Patching pyproject.toml to use main branch of dd-trace-py" - sed -i 's|^ddtrace =.*$|ddtrace = { git = "https://github.com/DataDog/dd-trace-py.git" }|' pyproject.toml + echo "Patching pyproject.toml to use latest build of dd-trace-py" + sed -i 's|^ddtrace =.*$|ddtrace = { file = "${{ steps.find-ddtrace-wheel.outputs.wheel_path }}" }|' pyproject.toml - name: Build layer for Python ${{ matrix.python_version }} on ${{ matrix.arch }} run: | From 31df03d95965c834fe7e455a2e5e52cd6ef392c7 Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Tue, 2 Dec 2025 11:47:43 -0500 Subject: [PATCH 026/107] v8.119.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index a23e0df6..b3c11170 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.118.0" +__version__ = "8.119.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index 0d08814f..c0046097 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.118.0" +version = "8.119.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 58d0e3496d73b50f0fac3f45c62a4797ac3094c1 Mon Sep 17 00:00:00 2001 From: Rey Abolofia Date: Wed, 3 Dec 2025 15:37:30 -0500 Subject: [PATCH 027/107] Catch errors when importing profiler. (#695) * Catch errors when importing profiler. * Test import of profiler catches error and disables profiling. * Update linting. --- datadog_lambda/wrapper.py | 14 +++++++++----- tests/test_wrapper.py | 10 ++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 8dbd7e35..ee740221 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -46,6 +46,8 @@ extract_http_status_code_tag, ) +logger = logging.getLogger(__name__) + # ddtrace imports are also tested in # dd-trace-py/tests/internal/test_serverless.py please update those tests when # making changes to any ddtrace import. @@ -61,8 +63,12 @@ start() +profiler = None if config.profiling_enabled: - from ddtrace.profiling import profiler + try: + from ddtrace.profiling import profiler + except Exception as e: + logger.error(f"Failed to initialize profiler: [{e.__class__.__name__})] {e}") if config.llmobs_enabled: from ddtrace.llmobs import LLMObs @@ -75,8 +81,6 @@ except ImportError: from ddtrace.debugging._uploader import LogsIntakeUploaderV1 as SignalUploader -logger = logging.getLogger(__name__) - DD_REQUESTS_SERVICE_NAME = "DD_REQUESTS_SERVICE_NAME" DD_SERVICE = "DD_SERVICE" @@ -141,7 +145,7 @@ def __init__(self, func): self.response = None self.blocking_response = None - if config.profiling_enabled: + if config.profiling_enabled and profiler: self.prof = profiler.Profiler(env=config.env, service=config.service) if config.trace_extractor: @@ -283,7 +287,7 @@ def _before(self, event, context): self.blocking_response = get_asm_blocked_response(self.event_source) else: set_correlation_ids() - if config.profiling_enabled and is_new_sandbox(): + if config.profiling_enabled and profiler and is_new_sandbox(): self.prof.start(stop_on_exit=False, profile_children=True) logger.debug("datadog_lambda_wrapper _before() done") except Exception as e: diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 1a5edfc5..95dfc304 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -962,3 +962,13 @@ def lambda_handler(event, context): mock_submit.assert_called_once() call_args = mock_submit.call_args[0] assert call_args[0] is None + + +@patch("datadog_lambda.config.Config.profiling_enabled", True) +def test_profiling_import_errors_caught(monkeypatch): + # when importing profiler fails, disable profiling instead of crashing app + monkeypatch.setitem( + sys.modules, "ddtrace.profiling", None + ) # force ModuleNotFoundError + importlib.reload(wrapper) + assert not hasattr(wrapper.datadog_lambda_wrapper, "prof") From df6df8e20209ff07510165a5de3ceab5503e6c8c Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Thu, 4 Dec 2025 13:44:16 -0500 Subject: [PATCH 028/107] Updating to v119 (#696) --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index b3c11170..ce72d946 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.119.0.dev0" +__version__ = "8.119.0" diff --git a/pyproject.toml b/pyproject.toml index c0046097..3a2fb53b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.119.0.dev0" +version = "8.119.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From ed75966b952cf4c897f6535e8d3b88cb3818a21d Mon Sep 17 00:00:00 2001 From: shreyamalpani Date: Fri, 5 Dec 2025 16:27:14 -0500 Subject: [PATCH 029/107] Fix SSM endpoint for Gov regions (#693) * only override ssm endpoint url in commercial fips * lint * check ssm-fips supported regions * fix --- datadog_lambda/api.py | 25 +++++++++++++++++----- tests/test_api.py | 48 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 65 insertions(+), 8 deletions(-) diff --git a/datadog_lambda/api.py b/datadog_lambda/api.py index 4921dae9..88f2cbe2 100644 --- a/datadog_lambda/api.py +++ b/datadog_lambda/api.py @@ -5,6 +5,14 @@ logger = logging.getLogger(__name__) KMS_ENCRYPTION_CONTEXT_KEY = "LambdaFunctionName" +SSM_FIPS_SUPPORTED_REGIONS = { + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", + "ca-central-1", + "ca-west-1", +} api_key = None @@ -92,11 +100,18 @@ def get_api_key() -> str: )["SecretString"] elif DD_API_KEY_SSM_NAME: # SSM endpoints: https://docs.aws.amazon.com/general/latest/gr/ssm.html - fips_endpoint = ( - f"https://ssm-fips.{LAMBDA_REGION}.amazonaws.com" - if config.fips_mode_enabled - else None - ) + fips_endpoint = None + if config.fips_mode_enabled: + if LAMBDA_REGION in SSM_FIPS_SUPPORTED_REGIONS: + fips_endpoint = f"https://ssm-fips.{LAMBDA_REGION}.amazonaws.com" + else: + # Log warning if SSM FIPS endpoint is not supported for commercial region + if not config.is_gov_region: + logger.warning( + "FIPS mode is enabled, but '%s' does not support SSM FIPS endpoints. " + "Using standard SSM endpoint.", + LAMBDA_REGION, + ) ssm_client = _boto3_client("ssm", endpoint_url=fips_endpoint) api_key = ssm_client.get_parameter( Name=DD_API_KEY_SSM_NAME, WithDecryption=True diff --git a/tests/test_api.py b/tests/test_api.py index 35a179b1..3b42cfd7 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -89,23 +89,65 @@ def test_secrets_manager_different_region_but_still_fips(self, mock_boto3_client @patch("datadog_lambda.config.Config.fips_mode_enabled", True) @patch("botocore.session.Session.create_client") - def test_ssm_fips_endpoint(self, mock_boto3_client): + def test_ssm_fips_endpoint_supported_region(self, mock_boto3_client): mock_client = MagicMock() mock_client.get_parameter.return_value = { "Parameter": {"Value": "test-api-key"} } mock_boto3_client.return_value = mock_client - os.environ["AWS_REGION"] = "us-gov-west-1" + os.environ["AWS_REGION"] = "us-east-1" os.environ["DD_API_KEY_SSM_NAME"] = "test-ssm-param" api_key = api.get_api_key() mock_boto3_client.assert_called_with( - "ssm", endpoint_url="https://ssm-fips.us-gov-west-1.amazonaws.com" + "ssm", endpoint_url="https://ssm-fips.us-east-1.amazonaws.com" ) self.assertEqual(api_key, "test-api-key") + @patch("datadog_lambda.config.Config.fips_mode_enabled", True) + @patch("datadog_lambda.config.Config.is_gov_region", True) + @patch("botocore.session.Session.create_client") + def test_ssm_gov_endpoint(self, mock_boto3_client): + mock_client = MagicMock() + mock_client.get_parameter.return_value = { + "Parameter": {"Value": "test-api-key"} + } + mock_boto3_client.return_value = mock_client + + os.environ["AWS_REGION"] = "us-gov-west-1" + os.environ["DD_API_KEY_SSM_NAME"] = "test-ssm-param" + + api_key = api.get_api_key() + + mock_boto3_client.assert_called_with("ssm", endpoint_url=None) + self.assertEqual(api_key, "test-api-key") + + @patch("datadog_lambda.config.Config.fips_mode_enabled", True) + @patch("botocore.session.Session.create_client") + def test_ssm_fips_endpoint_unsupported_region(self, mock_boto3_client): + mock_client = MagicMock() + mock_client.get_parameter.return_value = { + "Parameter": {"Value": "test-api-key"} + } + mock_boto3_client.return_value = mock_client + + os.environ["AWS_REGION"] = "eu-west-1" + os.environ["DD_API_KEY_SSM_NAME"] = "test-ssm-param" + + with self.assertLogs("datadog_lambda.api", level="WARNING") as log_context: + api_key = api.get_api_key() + + mock_boto3_client.assert_called_with("ssm", endpoint_url=None) + self.assertEqual(api_key, "test-api-key") + self.assertTrue( + any( + "does not support SSM FIPS endpoints" in log_msg + for log_msg in log_context.output + ) + ) + @patch("datadog_lambda.config.Config.fips_mode_enabled", True) @patch("botocore.session.Session.create_client") @patch("datadog_lambda.api.decrypt_kms_api_key") From 82e7f701f1ca436d7892954742468d25e10a7931 Mon Sep 17 00:00:00 2001 From: Alberto Vara Date: Wed, 10 Dec 2025 16:59:26 +0100 Subject: [PATCH 030/107] Clean up unnecessary files in Dockerfile (#683) * Clean up unnecessary files in Dockerfile Removes files that are unnecessary for Lambda * Update Dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index ce59438d..974419ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,6 +33,7 @@ RUN rm -rf ./python/lib/$runtime/site-packages/botocore* RUN rm -rf ./python/lib/$runtime/site-packages/setuptools RUN rm -rf ./python/lib/$runtime/site-packages/jsonschema/tests RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_ast/iastpatch*.so +RUN rm -rf ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_taint_tracking/_vendor RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_taint_tracking/*.so RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_stacktrace*.so # remove *.dist-info directories except any entry_points.txt files and METADATA files required for Appsec Software Composition Analysis From 90140fbb24e51b9c76cbd05168adea894258cf24 Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Thu, 11 Dec 2025 14:21:10 -0500 Subject: [PATCH 031/107] v8.120.0 (#699) * v8.120.0 * update integration test snapshots --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- .../logs/async-metrics_python314.log | 40 ++++++------- .../snapshots/logs/sync-metrics_python314.log | 60 +++++++++---------- 4 files changed, 52 insertions(+), 52 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index ce72d946..aacab86a 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.119.0" +__version__ = "8.120.0" diff --git a/pyproject.toml b/pyproject.toml index 3a2fb53b..87c309f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.119.0" +version = "8.120.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" diff --git a/tests/integration/snapshots/logs/async-metrics_python314.log b/tests/integration/snapshots/logs/async-metrics_python314.log index 8983a83c..b14df308 100644 --- a/tests/integration/snapshots/logs/async-metrics_python314.log +++ b/tests/integration/snapshots/logs/async-metrics_python314.log @@ -36,8 +36,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -208,8 +208,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -345,8 +345,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -542,8 +542,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -700,8 +700,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -874,8 +874,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1039,8 +1039,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1213,8 +1213,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1376,8 +1376,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1538,8 +1538,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ diff --git a/tests/integration/snapshots/logs/sync-metrics_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log index 442d83b4..cab7fcbb 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python314.log +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -16,8 +16,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -150,7 +150,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -207,8 +207,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -297,7 +297,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -363,8 +363,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -522,7 +522,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -579,8 +579,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -699,7 +699,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -756,8 +756,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -892,7 +892,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -949,8 +949,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1076,7 +1076,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1133,8 +1133,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1269,7 +1269,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1326,8 +1326,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1451,7 +1451,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1508,8 +1508,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1632,7 +1632,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1689,8 +1689,8 @@ START "dd_lambda_layer:datadog-python314_X.X.X" ] } -HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX -HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX { "traces": [ [ @@ -1822,7 +1822,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A ] ] } -HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX +HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","Content-Encoding:deflate","Content-Length:XXXX","Content-Type:application/json","DD-API-KEY:XXXX","User-Agent:datadogpy/XX (python XX; os linux; arch XXXX)","traceparent:XXX","tracestate:XXX { "traces": [ [ From e1a0bac4bc73a40ab0edd1c3e024c9c4e337eb4a Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:15:55 -0500 Subject: [PATCH 032/107] v8.121.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index aacab86a..9ce3b4e7 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.120.0" +__version__ = "8.121.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index 87c309f7..29e9c7f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.120.0" +version = "8.121.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 49710e639f323d700f5b2f0f8514bcb2028d9e62 Mon Sep 17 00:00:00 2001 From: Florentin Labelle Date: Fri, 12 Dec 2025 10:02:01 +0100 Subject: [PATCH 033/107] feat(aap): update api gateway inferred span tags for better correlation (#697) --- datadog_lambda/tracing.py | 24 ++++++-- datadog_lambda/wrapper.py | 12 +++- .../logs/async-metrics_python310.log | 26 ++++++-- .../logs/async-metrics_python311.log | 26 ++++++-- .../logs/async-metrics_python312.log | 26 ++++++-- .../logs/async-metrics_python313.log | 26 ++++++-- .../logs/async-metrics_python314.log | 26 ++++++-- .../snapshots/logs/async-metrics_python38.log | 26 ++++++-- .../snapshots/logs/async-metrics_python39.log | 26 ++++++-- .../snapshots/logs/sync-metrics_python310.log | 26 ++++++-- .../snapshots/logs/sync-metrics_python311.log | 26 ++++++-- .../snapshots/logs/sync-metrics_python312.log | 26 ++++++-- .../snapshots/logs/sync-metrics_python313.log | 26 ++++++-- .../snapshots/logs/sync-metrics_python314.log | 26 ++++++-- .../snapshots/logs/sync-metrics_python38.log | 26 ++++++-- .../snapshots/logs/sync-metrics_python39.log | 26 ++++++-- tests/test_tracing.py | 59 ++++++++----------- 17 files changed, 348 insertions(+), 111 deletions(-) diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index 225f5dd8..e7dca1f3 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -927,6 +927,7 @@ def create_inferred_span_from_lambda_function_url_event(event, context): InferredSpanInfo.set_tags(tags, tag_source="self", synchronicity="sync") if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start_ns = int(request_time_epoch * 1e6) return span @@ -1047,6 +1048,7 @@ def create_inferred_span_from_api_gateway_websocket_event( span = tracer.trace("aws.apigateway.websocket", **args) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start_ns = int( finish_time_ns if finish_time_ns is not None @@ -1061,6 +1063,8 @@ def create_inferred_span_from_api_gateway_event( event, context, decode_authorizer_context: bool = True ): request_context = event.get("requestContext") + identity = request_context.get("identity") + domain = request_context.get("domainName", "") api_id = request_context.get("apiId") service_name = determine_service_name( @@ -1072,11 +1076,11 @@ def create_inferred_span_from_api_gateway_event( resource_path = _get_resource_path(event, request_context) resource = f"{method} {resource_path}" tags = { - "operation_name": "aws.apigateway.rest", "http.url": http_url, "endpoint": path, "http.method": method, "resource_names": resource, + "http.useragent": identity.get("userAgent"), "span.kind": "server", "apiid": api_id, "apiname": api_id, @@ -1091,7 +1095,7 @@ def create_inferred_span_from_api_gateway_event( args = { "service": service_name, "resource": resource, - "span_type": "http", + "span_type": "web", } tracer.set_tags(_dd_origin) upstream_authorizer_span = None @@ -1103,6 +1107,7 @@ def create_inferred_span_from_api_gateway_event( span = tracer.trace("aws.apigateway", **args) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) # start time pushed by the inserted authorizer span span.start_ns = int( finish_time_ns @@ -1140,13 +1145,12 @@ def create_inferred_span_from_http_api_event( resource_path = _get_resource_path(event, request_context) resource = f"{method} {resource_path}" tags = { - "operation_name": "aws.httpapi", "endpoint": path, "http.url": http_url, "http.method": http.get("method"), "http.protocol": http.get("protocol"), "http.source_ip": http.get("sourceIp"), - "http.user_agent": http.get("userAgent"), + "http.useragent": http.get("userAgent"), "resource_names": resource, "request_id": context.aws_request_id, "apiid": api_id, @@ -1167,10 +1171,11 @@ def create_inferred_span_from_http_api_event( Headers.Parent_Span_Finish_Time ) span = tracer.trace( - "aws.httpapi", service=service_name, resource=resource, span_type="http" + "aws.httpapi", service=service_name, resource=resource, span_type="web" ) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start_ns = int(inferred_span_start_ns) return span @@ -1237,6 +1242,7 @@ def create_inferred_span_from_sqs_event(event, context): ) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start = start_time if upstream_span: span.parent_id = upstream_span.span_id @@ -1278,6 +1284,7 @@ def create_inferred_span_from_sns_event(event, context): ) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start = dt.replace(tzinfo=timezone.utc).timestamp() return span @@ -1313,6 +1320,7 @@ def create_inferred_span_from_kinesis_event(event, context): ) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start = request_time_epoch return span @@ -1345,6 +1353,7 @@ def create_inferred_span_from_dynamodb_event(event, context): ) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start = int(request_time_epoch) return span @@ -1381,6 +1390,7 @@ def create_inferred_span_from_s3_event(event, context): ) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start = dt.replace(tzinfo=timezone.utc).timestamp() return span @@ -1421,10 +1431,11 @@ def create_inferred_span_from_eventbridge_event(event, context): ) if span: span.set_tags(tags) + span.set_metric(InferredSpanInfo.METRIC, 1.0) span.start = dt.replace(tzinfo=timezone.utc).timestamp() # Since inferred span will later parent Lambda, preserve Lambda's current parent - if dd_trace_context.span_id: + if dd_trace_context and getattr(dd_trace_context, "span_id", None): span.parent_id = dd_trace_context.span_id return span @@ -1512,6 +1523,7 @@ class InferredSpanInfo(object): BASE_NAME = "_inferred_span" SYNCHRONICITY = f"{BASE_NAME}.synchronicity" TAG_SOURCE = f"{BASE_NAME}.tag_source" + METRIC = f"_dd.{BASE_NAME}" @staticmethod def set_tags( diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index ee740221..5a32e2ff 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -346,8 +346,16 @@ def _after(self, event, context): if status_code: self.inferred_span.set_tag("http.status_code", status_code) - if self.trigger_tags and (route := self.trigger_tags.get("http.route")): - self.inferred_span.set_tag("http.route", route) + if self.trigger_tags: + route = self.trigger_tags.get("http.route") + if route: + self.inferred_span.set_tag("http.route", route) + + event_source_arn = self.trigger_tags.get( + "function_trigger.event_source_arn" + ) + if event_source_arn: + self.inferred_span.set_tag("dd_resource_key", event_source_arn) if config.service: self.inferred_span.set_tag("peer.service", config.service) diff --git a/tests/integration/snapshots/logs/async-metrics_python310.log b/tests/integration/snapshots/logs/async-metrics_python310.log index 6779d7dd..356d8243 100644 --- a/tests/integration/snapshots/logs/async-metrics_python310.log +++ b/tests/integration/snapshots/logs/async-metrics_python310.log @@ -54,11 +54,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -68,6 +68,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -76,10 +77,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -375,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -383,6 +386,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -574,6 +578,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -718,13 +723,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -734,6 +738,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -742,10 +747,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -904,6 +910,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -912,6 +919,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1066,6 +1074,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1074,6 +1083,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1241,6 +1251,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1249,6 +1260,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1403,6 +1415,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1411,6 +1424,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1571,6 +1585,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1579,6 +1594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/async-metrics_python311.log b/tests/integration/snapshots/logs/async-metrics_python311.log index 9f14ff15..fa140a85 100644 --- a/tests/integration/snapshots/logs/async-metrics_python311.log +++ b/tests/integration/snapshots/logs/async-metrics_python311.log @@ -54,11 +54,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -68,6 +68,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -76,10 +77,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -375,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -383,6 +386,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -574,6 +578,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -718,13 +723,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -734,6 +738,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -742,10 +747,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -904,6 +910,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -912,6 +919,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1066,6 +1074,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1074,6 +1083,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1241,6 +1251,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1249,6 +1260,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1403,6 +1415,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1411,6 +1424,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1571,6 +1585,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1579,6 +1594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/async-metrics_python312.log b/tests/integration/snapshots/logs/async-metrics_python312.log index 789a3955..c2ea0647 100644 --- a/tests/integration/snapshots/logs/async-metrics_python312.log +++ b/tests/integration/snapshots/logs/async-metrics_python312.log @@ -54,11 +54,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -68,6 +68,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -76,10 +77,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -375,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -383,6 +386,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -574,6 +578,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -718,13 +723,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -734,6 +738,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -742,10 +747,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -904,6 +910,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -912,6 +919,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1066,6 +1074,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1074,6 +1083,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1241,6 +1251,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1249,6 +1260,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1403,6 +1415,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1411,6 +1424,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1571,6 +1585,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1579,6 +1594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/async-metrics_python313.log b/tests/integration/snapshots/logs/async-metrics_python313.log index 78ade6a7..b6a4f68e 100644 --- a/tests/integration/snapshots/logs/async-metrics_python313.log +++ b/tests/integration/snapshots/logs/async-metrics_python313.log @@ -54,11 +54,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -68,6 +68,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -76,10 +77,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -375,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -383,6 +386,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -574,6 +578,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -718,13 +723,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -734,6 +738,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -742,10 +747,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -904,6 +910,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -912,6 +919,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1066,6 +1074,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1074,6 +1083,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1241,6 +1251,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1249,6 +1260,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1403,6 +1415,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1411,6 +1424,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1571,6 +1585,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1579,6 +1594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/async-metrics_python314.log b/tests/integration/snapshots/logs/async-metrics_python314.log index b14df308..a430b644 100644 --- a/tests/integration/snapshots/logs/async-metrics_python314.log +++ b/tests/integration/snapshots/logs/async-metrics_python314.log @@ -54,11 +54,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -68,6 +68,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -76,10 +77,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -375,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -383,6 +386,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -574,6 +578,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -718,13 +723,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -734,6 +738,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -742,10 +747,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -904,6 +910,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -912,6 +919,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1066,6 +1074,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1074,6 +1083,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1241,6 +1251,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1249,6 +1260,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1403,6 +1415,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1411,6 +1424,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1571,6 +1585,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1579,6 +1594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/async-metrics_python38.log b/tests/integration/snapshots/logs/async-metrics_python38.log index 5375fafe..e37090ff 100644 --- a/tests/integration/snapshots/logs/async-metrics_python38.log +++ b/tests/integration/snapshots/logs/async-metrics_python38.log @@ -54,11 +54,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -68,6 +68,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -76,10 +77,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -375,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -383,6 +386,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -574,6 +578,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -718,13 +723,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -734,6 +738,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -742,10 +747,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -904,6 +910,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -912,6 +919,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1066,6 +1074,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1074,6 +1083,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1241,6 +1251,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1249,6 +1260,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1403,6 +1415,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1411,6 +1424,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1571,6 +1585,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1579,6 +1594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/async-metrics_python39.log b/tests/integration/snapshots/logs/async-metrics_python39.log index f16e9e2d..46c36112 100644 --- a/tests/integration/snapshots/logs/async-metrics_python39.log +++ b/tests/integration/snapshots/logs/async-metrics_python39.log @@ -54,11 +54,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -68,6 +68,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -76,10 +77,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -375,6 +377,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -383,6 +386,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -574,6 +578,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -718,13 +723,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -734,6 +738,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -742,10 +747,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -904,6 +910,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -912,6 +919,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1066,6 +1074,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1074,6 +1083,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1241,6 +1251,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1249,6 +1260,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1403,6 +1415,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1411,6 +1424,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1571,6 +1585,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1579,6 +1594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python310.log b/tests/integration/snapshots/logs/sync-metrics_python310.log index 1cbd91dd..a9170abd 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python310.log +++ b/tests/integration/snapshots/logs/sync-metrics_python310.log @@ -34,11 +34,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -48,6 +48,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -56,10 +57,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -393,6 +395,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -401,6 +404,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -611,6 +615,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -774,13 +779,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -790,6 +794,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -798,10 +803,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -979,6 +985,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -987,6 +994,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1160,6 +1168,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1168,6 +1177,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1354,6 +1364,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1362,6 +1373,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1535,6 +1547,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1543,6 +1556,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1722,6 +1736,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1730,6 +1745,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index b043a8f4..490fcc63 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python311.log +++ b/tests/integration/snapshots/logs/sync-metrics_python311.log @@ -34,11 +34,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -48,6 +48,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -56,10 +57,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -393,6 +395,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -401,6 +404,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -611,6 +615,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -774,13 +779,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -790,6 +794,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -798,10 +803,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -979,6 +985,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -987,6 +994,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1160,6 +1168,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1168,6 +1177,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1354,6 +1364,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1362,6 +1373,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1535,6 +1547,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1543,6 +1556,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1722,6 +1736,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1730,6 +1745,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index ff9bbdb7..509d1bfe 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python312.log +++ b/tests/integration/snapshots/logs/sync-metrics_python312.log @@ -34,11 +34,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -48,6 +48,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -56,10 +57,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -393,6 +395,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -401,6 +404,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -611,6 +615,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -774,13 +779,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -790,6 +794,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -798,10 +803,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -979,6 +985,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -987,6 +994,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1160,6 +1168,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1168,6 +1177,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1354,6 +1364,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1362,6 +1373,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1535,6 +1547,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1543,6 +1556,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1722,6 +1736,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1730,6 +1745,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index 87352f25..03a8e8c2 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python313.log +++ b/tests/integration/snapshots/logs/sync-metrics_python313.log @@ -34,11 +34,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -48,6 +48,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -56,10 +57,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -393,6 +395,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -401,6 +404,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -611,6 +615,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -774,13 +779,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -790,6 +794,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -798,10 +803,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -979,6 +985,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -987,6 +994,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1160,6 +1168,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1168,6 +1177,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1354,6 +1364,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1362,6 +1373,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1535,6 +1547,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1543,6 +1556,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1722,6 +1736,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1730,6 +1745,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log index cab7fcbb..7261153e 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python314.log +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -34,11 +34,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -48,6 +48,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -56,10 +57,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -393,6 +395,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -401,6 +404,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -611,6 +615,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -774,13 +779,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -790,6 +794,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -798,10 +803,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -979,6 +985,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -987,6 +994,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1160,6 +1168,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1168,6 +1177,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1354,6 +1364,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1362,6 +1373,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1535,6 +1547,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1543,6 +1556,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1722,6 +1736,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1730,6 +1745,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log index ae41bc18..37bbff6e 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python38.log +++ b/tests/integration/snapshots/logs/sync-metrics_python38.log @@ -34,11 +34,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -48,6 +48,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -56,10 +57,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -393,6 +395,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -401,6 +404,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -611,6 +615,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -774,13 +779,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -790,6 +794,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -798,10 +803,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -979,6 +985,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -987,6 +994,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1160,6 +1168,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1168,6 +1177,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1354,6 +1364,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1362,6 +1373,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1535,6 +1547,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1543,6 +1556,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1722,6 +1736,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1730,6 +1745,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python39.log b/tests/integration/snapshots/logs/sync-metrics_python39.log index 1acb7f0d..cd2a74e0 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python39.log +++ b/tests/integration/snapshots/logs/sync-metrics_python39.log @@ -34,11 +34,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.rest", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", "endpoint": "/", "http.method": "GET", "resource_names": "GET /", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "span.kind": "server", "apiid": "XXXX", "apiname": "XXXX", @@ -48,6 +48,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -56,10 +57,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -393,6 +395,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "size_bytes": "26", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -401,6 +404,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -611,6 +615,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -774,13 +779,12 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.httpapi", "endpoint": "/httpapi/get", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", "http.source_ip": "XXXX", - "http.user_agent": "XXXX/7.64.1", + "http.useragent": "curl/7.64.1", "resource_names": "GET /httpapi/get", "request_id": "XXXX", "apiid": "XXXX", @@ -790,6 +794,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.tag_source": "self", "http.status_code": "200", "http.route": "/httpapi/get", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -798,10 +803,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, - "type": "http" + "type": "web" }, { "trace_id": "XXXX", @@ -979,6 +985,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "partition_key": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -987,6 +994,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1160,6 +1168,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "object_etag": "XXXX", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:s3:::example-bucket", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1168,6 +1177,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1354,6 +1364,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "subject": "TestInvoke", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1362,6 +1373,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1535,6 +1547,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "sender_id": "AIDAIENQZJOLO23YVJ4VO", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1543,6 +1556,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, @@ -1722,6 +1736,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", "http.status_code": "200", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", "peer.service": "integration-tests-python", "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", @@ -1730,6 +1745,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A }, "metrics": { "process_id": XXXX, + "_dd._inferred_span": 1, "_dd.top_level": 1, "_sampling_priority_v1": 1 }, diff --git a/tests/test_tracing.py b/tests/test_tracing.py index 0fddd52b..ec78265a 100644 --- a/tests/test_tracing.py +++ b/tests/test_tracing.py @@ -1380,7 +1380,6 @@ def test_remaps_all_inferred_span_service_names_from_api_gateway_event(self): ctx.aws_request_id = "123" span1 = create_inferred_span(original_event, ctx) - self.assertEqual(span1.get_tag("operation_name"), "aws.apigateway.rest") self.assertEqual(span1.service, "new-name") # Testing the second event @@ -1389,7 +1388,6 @@ def test_remaps_all_inferred_span_service_names_from_api_gateway_event(self): "domainName" ] = "different.execute-api.us-east-2.amazonaws.com" span2 = create_inferred_span(event2, ctx) - self.assertEqual(span2.get_tag("operation_name"), "aws.apigateway.rest") self.assertEqual(span2.service, "new-name") def test_remaps_specific_inferred_span_service_names_from_api_gateway_event( @@ -1406,14 +1404,12 @@ def test_remaps_specific_inferred_span_service_names_from_api_gateway_event( ctx.aws_request_id = "123" span1 = create_inferred_span(original_event, ctx) - self.assertEqual(span1.get_tag("operation_name"), "aws.apigateway.rest") self.assertEqual(span1.service, "new-name") # Testing the second event event2 = copy.deepcopy(original_event) event2["requestContext"]["apiId"] = "different" span2 = create_inferred_span(event2, ctx) - self.assertEqual(span2.get_tag("operation_name"), "aws.apigateway.rest") self.assertEqual( span2.service, "70ixmpl4fl.execute-api.us-east-2.amazonaws.com" ) @@ -1456,14 +1452,12 @@ def test_remaps_specific_inferred_span_service_names_from_api_gateway_http_event ctx.aws_request_id = "123" span1 = create_inferred_span(original_event, ctx) - self.assertEqual(span1.get_tag("operation_name"), "aws.httpapi") self.assertEqual(span1.service, "new-name") # Testing the second event event2 = copy.deepcopy(original_event) event2["requestContext"]["apiId"] = "different" span2 = create_inferred_span(event2, ctx) - self.assertEqual(span2.get_tag("operation_name"), "aws.httpapi") self.assertEqual( span2.service, "x02yirxc7a.execute-api.eu-west-1.amazonaws.com" ) @@ -1804,7 +1798,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="70ixmpl4fl.execute-api.us-east-2.amazonaws.com", start=1428582896.0, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -1814,7 +1808,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/path/to/resource", "http.method": "POST", "http.url": "https://70ixmpl4fl.execute-api.us-east-2.amazonaws.com/path/to/resource", - "operation_name": "aws.apigateway.rest", + "http.useragent": "Custom User Agent String", "request_id": "123", "resource_names": "POST /{proxy+}", "stage": "prod", @@ -1826,7 +1820,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="lgxbo6a518.execute-api.eu-west-1.amazonaws.com", start=1631210915.2510002, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "async", @@ -1836,7 +1830,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/http/get", "http.method": "GET", "http.url": "https://lgxbo6a518.execute-api.eu-west-1.amazonaws.com/http/get", - "operation_name": "aws.apigateway.rest", + "http.useragent": "curl/7.64.1", "request_id": "123", "resource_names": "GET /http/get", "stage": "dev", @@ -1848,7 +1842,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="lgxbo6a518.execute-api.eu-west-1.amazonaws.com", start=1631210915.2510002, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -1858,7 +1852,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/http/get", "http.method": "GET", "http.url": "https://lgxbo6a518.execute-api.eu-west-1.amazonaws.com/http/get", - "operation_name": "aws.apigateway.rest", + "http.useragent": "curl/7.64.1", "request_id": "123", "resource_names": "GET /http/get", "stage": "dev", @@ -1870,7 +1864,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="x02yirxc7a.execute-api.eu-west-1.amazonaws.com", start=1631212283.738, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -1882,8 +1876,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "http.protocol": "HTTP/1.1", "http.source_ip": "38.122.226.210", "http.url": "https://x02yirxc7a.execute-api.eu-west-1.amazonaws.com/httpapi/get", - "http.user_agent": "curl/7.64.1", - "operation_name": "aws.httpapi", + "http.useragent": "curl/7.64.1", "request_id": "123", "resource_names": "GET /httpapi/get", "stage": "$default", @@ -1895,7 +1888,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="mcwkra0ya4.execute-api.sa-east-1.amazonaws.com", start=1710529824.52, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -1905,7 +1898,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/user/42", "http.method": "GET", "http.url": "https://mcwkra0ya4.execute-api.sa-east-1.amazonaws.com/user/42", - "operation_name": "aws.apigateway.rest", + "http.useragent": "curl/8.1.2", "request_id": "123", "resource_names": "GET /user/{id}", "stage": "dev", @@ -1917,7 +1910,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="9vj54we5ih.execute-api.sa-east-1.amazonaws.com", start=1710529905.066, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -1927,7 +1920,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/user/42", "http.method": "GET", "http.url": "https://9vj54we5ih.execute-api.sa-east-1.amazonaws.com/user/42", - "operation_name": "aws.httpapi", + "http.useragent": "curl/8.1.2", "request_id": "123", "resource_names": "GET /user/{id}", "stage": "$default", @@ -2186,7 +2179,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="70ixmpl4fl.execute-api.us-east-2.amazonaws.com", start=1428582896.0, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -2196,7 +2189,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/path/to/resource", "http.method": "POST", "http.url": "https://70ixmpl4fl.execute-api.us-east-2.amazonaws.com/path/to/resource", - "operation_name": "aws.apigateway.rest", + "http.useragent": "Custom User Agent String", "request_id": "123", "resource_names": "POST /{proxy+}", "stage": "prod", @@ -2208,7 +2201,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="amddr1rix9.execute-api.eu-west-1.amazonaws.com", start=1663295021.832, - span_type="http", + span_type="web", parent_name="aws.apigateway.authorizer", tags={ "_dd.origin": "lambda", @@ -2219,7 +2212,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/hello", "http.method": "GET", "http.url": "https://amddr1rix9.execute-api.eu-west-1.amazonaws.com/hello", - "operation_name": "aws.apigateway.rest", + "http.useragent": "PostmanRuntime/7.29.2", "request_id": "123", "resource_names": "GET /hello", "stage": "dev", @@ -2231,7 +2224,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="amddr1rix9.execute-api.eu-west-1.amazonaws.com", start=1666714653.636, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -2241,7 +2234,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/hello", "http.method": "GET", "http.url": "https://amddr1rix9.execute-api.eu-west-1.amazonaws.com/hello", - "operation_name": "aws.apigateway.rest", + "http.useragent": "PostmanRuntime/7.29.2", "request_id": "123", "resource_names": "GET /hello", "stage": "dev", @@ -2253,7 +2246,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="amddr1rix9.execute-api.eu-west-1.amazonaws.com", start=1663295021.832, - span_type="http", + span_type="web", parent_name="aws.apigateway.authorizer", tags={ "_dd.origin": "lambda", @@ -2264,7 +2257,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/hello", "http.method": "GET", "http.url": "https://amddr1rix9.execute-api.eu-west-1.amazonaws.com/hello", - "operation_name": "aws.apigateway.rest", + "http.useragent": "PostmanRuntime/7.29.2", "request_id": "123", "resource_names": "GET /hello", "stage": "dev", @@ -2276,7 +2269,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="amddr1rix9.execute-api.eu-west-1.amazonaws.com", start=1666803622.99, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -2286,7 +2279,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/hello", "http.method": "GET", "http.url": "https://amddr1rix9.execute-api.eu-west-1.amazonaws.com/hello", - "operation_name": "aws.apigateway.rest", + "http.useragent": "PostmanRuntime/7.29.2", "request_id": "123", "resource_names": "GET /hello", "stage": "dev", @@ -2298,7 +2291,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="amddr1rix9.execute-api.eu-west-1.amazonaws.com", start=1664228639.5337753, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -2308,7 +2301,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/hello", "http.method": "GET", "http.url": "https://amddr1rix9.execute-api.eu-west-1.amazonaws.com/hello", - "operation_name": "aws.httpapi", + "http.useragent": "curl/7.64.1", "request_id": "123", "resource_names": "GET /hello", "stage": "dev", @@ -2320,7 +2313,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): _Span( service="amddr1rix9.execute-api.eu-west-1.amazonaws.com", start=1666715429.349, - span_type="http", + span_type="web", tags={ "_dd.origin": "lambda", "_inferred_span.synchronicity": "sync", @@ -2330,7 +2323,7 @@ def __init__(self, service, start, span_type, parent_name=None, tags=None): "endpoint": "/hello", "http.method": "GET", "http.url": "https://amddr1rix9.execute-api.eu-west-1.amazonaws.com/hello", - "operation_name": "aws.httpapi", + "http.useragent": "PostmanRuntime/7.29.2", "request_id": "123", "resource_names": "GET /hello", "stage": "dev", From f2a704c251cddbbbb644dc3f8bd6300763b6c97a Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Fri, 12 Dec 2025 11:39:38 -0500 Subject: [PATCH 034/107] Update Asm Blocked Response (#681) * use block config for block id * linting * Using existing block config * Update dd-trace-py version * update to ddtracepy v3.19.1 --- datadog_lambda/asm.py | 4 +++- pyproject.toml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/asm.py b/datadog_lambda/asm.py index 6c65a946..29648021 100644 --- a/datadog_lambda/asm.py +++ b/datadog_lambda/asm.py @@ -223,7 +223,9 @@ def get_asm_blocked_response( content = "" else: content_type = blocked.get("content-type", "application/json") - content = http_utils._get_blocked_template(content_type) + content = http_utils._get_blocked_template( + content_type, blocked.get("block_id", "default") + ) response = { "statusCode": blocked.get("status_code", 403), diff --git a/pyproject.toml b/pyproject.toml index 29e9c7f2..6ca4f147 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ classifiers = [ python = ">=3.8.0,<4" datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" -ddtrace = ">=3.16.2,<3.19.0" +ddtrace = ">=3.19.1,<4" ujson = ">=5.9.0" botocore = { version = "^1.34.0", optional = true } requests = { version ="^2.22.0", optional = true } From 73650f9a0a9ea667a060d7b63d2d41da039e8349 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Tue, 16 Dec 2025 14:56:11 -0500 Subject: [PATCH 035/107] Running Gitlab jobs based on skip_e2e_tests variable (#700) * Running Gitlab jobs based on upstream pipeline existence * check value of env var * more prints * removing gate on e2e tests * another print * print * using upstream project name variable * colons * when on success * Replace commit branch with project name * force fail * remove force fail * Use skip e2e tests global variable * check skip_e2e_test=true explicitly * make variable a string --- .gitlab-ci.yml | 7 ++++++- ci/input_files/build.yaml.tpl | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0f36a781..417398ec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,6 @@ +variables: + SKIP_E2E_TESTS: "false" + stages: - pre - build @@ -25,5 +28,7 @@ build-layers: - artifact: ci/build-pipeline.yaml job: generator strategy: depend + forward: + pipeline_variables: true rules: - - when: on_success + - when: on_success \ No newline at end of file diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 599160fb..10ff9984 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -142,6 +142,8 @@ publish-layer-{{ $environment_name }} ({{ $runtime.name }}-{{ $runtime.arch }}): tags: ["arch:amd64"] image: registry.ddbuild.io/images/docker:20.10-py3 rules: + - if: '$SKIP_E2E_TESTS == "true"' + when: never - if: '"{{ $environment_name }}" == "sandbox" && $REGION == "{{ $e2e_region }}" && "{{ $runtime.arch }}" == "amd64"' when: on_success - if: '"{{ $environment_name }}" == "sandbox"' @@ -247,6 +249,10 @@ e2e-test: trigger: project: DataDog/serverless-e2e-tests strategy: depend + rules: + - if: '$SKIP_E2E_TESTS == "true"' + when: never + - when: on_success variables: LANGUAGES_SUBSET: python # These env vars are inherited from the dotenv reports of the publish-layer jobs @@ -267,6 +273,10 @@ e2e-test-status: image: registry.ddbuild.io/images/docker:20.10-py3 tags: ["arch:amd64"] timeout: 3h + rules: + - if: '$SKIP_E2E_TESTS == "true"' + when: never + - when: on_success script: | GITLAB_API_TOKEN=$(aws ssm get-parameter --region us-east-1 --name "ci.${CI_PROJECT_NAME}.serverless-e2e-gitlab-token" --with-decryption --query "Parameter.Value" --out text) URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/pipelines/${CI_PIPELINE_ID}/bridges" From 8395f838ec1ecc98a6f2109184f1ec1c2b196a64 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Wed, 24 Dec 2025 12:38:34 -0500 Subject: [PATCH 036/107] Address flakiness of Gitlab jobs (#703) * Add retries to build, unit test, and integration test Gitlab jobs * Don't trigger integration tests from dd-trace-py * Add timeout to build jobs --- ci/input_files/build.yaml.tpl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 10ff9984..67f13706 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -54,6 +54,8 @@ build-layer ({{ $runtime.name }}-{{ $runtime.arch }}): CI_ENABLE_CONTAINER_IMAGE_BUILDS: "true" script: - PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} ./scripts/build_layers.sh + timeout: 15m + retry: 2 check-layer-size ({{ $runtime.name }}-{{ $runtime.arch }}): stage: test @@ -85,11 +87,16 @@ unit-test ({{ $runtime.name }}-{{ $runtime.arch }}): script: - source venv/bin/activate - pytest -vv + retry: 2 integration-test ({{ $runtime.name }}-{{ $runtime.arch }}): stage: test tags: ["arch:amd64"] image: registry.ddbuild.io/images/docker:20.10-py3 + rules: + - if: '$SKIP_E2E_TESTS == "true"' + when: never + - when: on_success needs: - build-layer ({{ $runtime.name }}-{{ $runtime.arch }}) dependencies: @@ -105,6 +112,7 @@ integration-test ({{ $runtime.name }}-{{ $runtime.arch }}): - cd integration_tests && yarn install && cd .. script: - RUNTIME_PARAM={{ $runtime.python_version }} ARCH={{ $runtime.arch }} ./scripts/run_integration_tests.sh + retry: 2 sign-layer ({{ $runtime.name }}-{{ $runtime.arch }}): stage: sign From 23dfcd2f740f5efb69f6f51a23f2ef7e586ced6b Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Fri, 26 Dec 2025 15:04:23 -0500 Subject: [PATCH 037/107] Support ddtrace v4 (#701) * Runtime dependent pyproject.toml * brackets * remove additional quotation marks * overwrote ddtrace value * refactoring pyproject.toml dependencies * rename to project * update authors * move python requirement * have tool.poetry and project * duplicate * fix python requires * have both tool.poetry.dependencies and project.dependencies * re-add tool.poetry.extras * optional dependencies in poetry * conditional ddtrace version * reducing diff * re-add python dependency in poetry * downgrade for python 3.9 * Use dd-trace-py v4.1.1 or above for runtime >= 3.10 * Removing duplicated sections --- pyproject.toml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 6ca4f147..a9eeca23 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,8 +3,12 @@ name = "datadog_lambda" version = "8.121.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] + +[project] +name = "datadog_lambda" license = "Apache-2.0" readme = "README.md" +requires-python = ">=3.8.0,<4" repository = "https://github.com/DataDog/datadog-lambda-python" keywords = [ "datadog", @@ -12,10 +16,18 @@ keywords = [ "lambda", "layer", ] +dependencies = [ + "datadog>=0.51.0,<1.0.0", + "wrapt>=1.11.2,<2", + "ddtrace>=3.19.1,<4; python_version>='3.9.0' and python_version < '3.10'", + "ddtrace>=4.1.1,<5; python_version>='3.10.0'", + "ujson>=5.9.0", +] packages = [ { include = "datadog_lambda" } ] classifiers = [ + "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", @@ -25,6 +37,8 @@ classifiers = [ "Programming Language :: Python :: 3.14", ] +# can remove tool.poetry.depencies and tool.poetry.extras +# after deprecation of Python 3.8 [tool.poetry.dependencies] python = ">=3.8.0,<4" datadog = ">=0.51.0,<1.0.0" @@ -46,6 +60,15 @@ dev = [ "requests", ] +[project.optional-dependencies] +dev = [ + "botocore>=1.34.0,<2", + "requests>=2.22.0,<3", + "pytest>=8.0.0,<9", + "pytest-benchmark>=4.0,<5", + "flake8>=5.0.4,<6", +] + [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" From 1f9a316263131ec8022e784855df34e6fba9a9e0 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Tue, 30 Dec 2025 12:05:13 -0500 Subject: [PATCH 038/107] Trigger layer version update in documentation (#704) * Trigger version update in documentation * typo * Move input to variables * Needs pypi package * both pypi and layers * testing trigger * Remove testing --- ci/input_files/build.yaml.tpl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 67f13706..6820057d 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -206,6 +206,22 @@ publish-pypi-package: script: - ./ci/publish_pypi.sh +update-layer-versions-docs: + stage: publish + trigger: + project: DataDog/serverless-ci + rules: + - if: '$CI_COMMIT_TAG =~ /^v.*/' + needs: {{ range $runtime := (ds "runtimes").runtimes }} + - publish-layer-prod ({{ $runtime.name }}-{{ $runtime.arch}}) + {{- end }} + - publish-pypi-package + variables: + RUN_LAMBDA_LAYER_DOCUMENTATION: "true" + RUN_LAMBDA_DATADOG_CI: "true" + RUN_LAMBDA_UI_LAYER_VERSIONS: "true" + RUN_LAMBDA_RUNTIMES: "true" + layer bundle: stage: build tags: ["arch:amd64"] From 8c6590128608bb616387d1965ecba59a4bb8daaf Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Tue, 6 Jan 2026 09:59:47 -0500 Subject: [PATCH 039/107] v121 (#705) --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 9ce3b4e7..537f13a7 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.121.0.dev0" +__version__ = "8.121.0" diff --git a/pyproject.toml b/pyproject.toml index a9eeca23..3f152b9d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.121.0.dev0" +version = "8.121.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] From f83c1c314347f947af45ea0579c2ede34fa735fd Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:46:54 -0500 Subject: [PATCH 040/107] Revert "v121 (#705)" (#706) This reverts commit 8c6590128608bb616387d1965ecba59a4bb8daaf. --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 537f13a7..9ce3b4e7 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.121.0" +__version__ = "8.121.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index 3f152b9d..a9eeca23 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.121.0" +version = "8.121.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] From cb34422f2c35435d46306adb2f26fb5c99f5ec97 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Tue, 6 Jan 2026 16:22:25 -0500 Subject: [PATCH 041/107] Revert "Trigger layer version update in documentation (#704)" (#708) This reverts commit 1f9a316263131ec8022e784855df34e6fba9a9e0. --- ci/input_files/build.yaml.tpl | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 6820057d..67f13706 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -206,22 +206,6 @@ publish-pypi-package: script: - ./ci/publish_pypi.sh -update-layer-versions-docs: - stage: publish - trigger: - project: DataDog/serverless-ci - rules: - - if: '$CI_COMMIT_TAG =~ /^v.*/' - needs: {{ range $runtime := (ds "runtimes").runtimes }} - - publish-layer-prod ({{ $runtime.name }}-{{ $runtime.arch}}) - {{- end }} - - publish-pypi-package - variables: - RUN_LAMBDA_LAYER_DOCUMENTATION: "true" - RUN_LAMBDA_DATADOG_CI: "true" - RUN_LAMBDA_UI_LAYER_VERSIONS: "true" - RUN_LAMBDA_RUNTIMES: "true" - layer bundle: stage: build tags: ["arch:amd64"] From 9951c3d49e1e97b4228a4a05ab26cd83d47cb4c2 Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Wed, 7 Jan 2026 10:54:25 -0500 Subject: [PATCH 042/107] ci: fix broken dd-trace-py wheel downloading (#710) * ci: fix broken dd-trace-py wheel downloading * debug * fix platform tag * add necessary --no-index --- .github/workflows/build_layer.yml | 54 +++++-------------------------- 1 file changed, 8 insertions(+), 46 deletions(-) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index fc22e9ce..1725975f 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -8,32 +8,9 @@ on: - "main" jobs: - get-ddtrace-run-id: - runs-on: ubuntu-latest - outputs: - run-id: ${{ steps.get-ddtrace-run-id.outputs.run_id }} - steps: - - name: Resolve Run ID of latest dd-trace-py build - id: get-ddtrace-run-id - env: - GH_TOKEN: ${{ github.token }} - run: | - RUN_ID=$(gh run list \ - --repo DataDog/dd-trace-py \ - --workflow build_deploy.yml \ - --branch main \ - --status success \ - --limit 1 \ - --json databaseId \ - --jq '.[0].databaseId') - - echo "run_id=$RUN_ID" >> $GITHUB_OUTPUT - build: runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} - needs: get-ddtrace-run-id - strategy: fail-fast: false matrix: @@ -44,33 +21,18 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Build artifact name - id: build-artifact-name + - name: Download ddtrace Wheel + id: find-ddtrace-wheel run: | - if [ "${{ matrix.arch }}" == "amd64" ]; then - ARCH="x86_64" + # Convert matrix.arch into pip platform tag + if [ "${{ matrix.arch }}" = "amd64" ]; then + PLATFORM_TAG="manylinux_2_17_x86_64" else - ARCH="aarch64" + PLATFORM_TAG="manylinux_2_17_aarch64" fi - VER="${{ matrix.python_version }}" - PY_VERSION_NO_DOT="${VER//./}" - - echo "artifact_name=wheels-cp${PY_VERSION_NO_DOT}-manylinux_${ARCH}" >> $GITHUB_OUTPUT - - - name: Download ddtrace Wheel - uses: actions/download-artifact@v4 - with: - name: ${{ steps.build-artifact-name.outputs.artifact_name }} - repository: DataDog/dd-trace-py - run-id: ${{ needs.get-ddtrace-run-id.outputs.run-id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - path: ./artifacts - - - name: Find ddtrace Wheel - id: find-ddtrace-wheel - run: | - echo "wheel_path=$(find ./artifacts -name "*.whl" | head -n 1)" >> $GITHUB_OUTPUT + pip download --no-index --no-deps --find-links https://dd-trace-py-builds.s3.amazonaws.com/main/index.html --pre --python-version "${{ matrix.python_version}}" --platform "${PLATFORM_TAG}" ddtrace + echo "wheel_path=$(find . -name "*.whl" | head -n 1)" >> $GITHUB_OUTPUT - name: Patch pyproject.toml run: | From b2a82fa8f0c5aefe6feb68c489b9e58282b93f6c Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 12 Jan 2026 10:32:59 -0500 Subject: [PATCH 043/107] Revert "Revert "v121 (#705)" (#706)" (#711) This reverts commit f83c1c314347f947af45ea0579c2ede34fa735fd. --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 9ce3b4e7..537f13a7 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.121.0.dev0" +__version__ = "8.121.0" diff --git a/pyproject.toml b/pyproject.toml index a9eeca23..3f152b9d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.121.0.dev0" +version = "8.121.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] From 3ece8ec868c9a6158d164bfb6cbce55d1b59c1a4 Mon Sep 17 00:00:00 2001 From: Rithika Narayan Date: Mon, 12 Jan 2026 12:44:49 -0500 Subject: [PATCH 044/107] v8.122.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 537f13a7..2c988bd8 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.121.0" +__version__ = "8.122.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index 3f152b9d..cf1b2507 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.121.0" +version = "8.122.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] From aee684256a0d97449320ed6c4af83c76d166398e Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 2 Feb 2026 12:42:02 -0500 Subject: [PATCH 045/107] Clean up pyproject.toml (#714) * Remove project sections * fixing github actions --- .github/workflows/build_layer.yml | 2 +- pyproject.toml | 30 +++++------------------------- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index 1725975f..db8329b5 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -37,7 +37,7 @@ jobs: - name: Patch pyproject.toml run: | echo "Patching pyproject.toml to use latest build of dd-trace-py" - sed -i 's|^ddtrace =.*$|ddtrace = { file = "${{ steps.find-ddtrace-wheel.outputs.wheel_path }}" }|' pyproject.toml + sed -zEi 's|^ddtrace =.*$|ddtrace = { file = "${{ steps.find-ddtrace-wheel.outputs.wheel_path }}" }|' pyproject.toml - name: Build layer for Python ${{ matrix.python_version }} on ${{ matrix.arch }} run: | diff --git a/pyproject.toml b/pyproject.toml index cf1b2507..355dee30 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,12 +3,8 @@ name = "datadog_lambda" version = "8.122.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] - -[project] -name = "datadog_lambda" license = "Apache-2.0" readme = "README.md" -requires-python = ">=3.8.0,<4" repository = "https://github.com/DataDog/datadog-lambda-python" keywords = [ "datadog", @@ -16,18 +12,10 @@ keywords = [ "lambda", "layer", ] -dependencies = [ - "datadog>=0.51.0,<1.0.0", - "wrapt>=1.11.2,<2", - "ddtrace>=3.19.1,<4; python_version>='3.9.0' and python_version < '3.10'", - "ddtrace>=4.1.1,<5; python_version>='3.10.0'", - "ujson>=5.9.0", -] packages = [ { include = "datadog_lambda" } ] classifiers = [ - "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", @@ -37,13 +25,14 @@ classifiers = [ "Programming Language :: Python :: 3.14", ] -# can remove tool.poetry.depencies and tool.poetry.extras -# after deprecation of Python 3.8 [tool.poetry.dependencies] python = ">=3.8.0,<4" datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" -ddtrace = ">=3.19.1,<4" +ddtrace = [ + {version = ">=3.19.1,<4", python = ">=3.8,<3.10"}, + {version = ">=4.1.1,<5", python = ">=3.10"} +] ujson = ">=5.9.0" botocore = { version = "^1.34.0", optional = true } requests = { version ="^2.22.0", optional = true } @@ -60,18 +49,9 @@ dev = [ "requests", ] -[project.optional-dependencies] -dev = [ - "botocore>=1.34.0,<2", - "requests>=2.22.0,<3", - "pytest>=8.0.0,<9", - "pytest-benchmark>=4.0,<5", - "flake8>=5.0.4,<6", -] - [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.pytest.ini_options] -addopts = "--benchmark-disable --benchmark-autosave" +addopts = "--benchmark-disable --benchmark-autosave" \ No newline at end of file From 0287c5de1299f5c6511b0e7088d94b30e700dd5d Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 2 Feb 2026 12:56:48 -0500 Subject: [PATCH 046/107] v8.122.0 (#715) --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 2c988bd8..09b00f32 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.122.0.dev0" +__version__ = "8.122.0" diff --git a/pyproject.toml b/pyproject.toml index 355dee30..ab95de19 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.122.0.dev0" +version = "8.122.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 7c36e9a97ed43eb919309d3853e027cd23eea1af Mon Sep 17 00:00:00 2001 From: Rithika Narayan Date: Mon, 2 Feb 2026 15:01:56 -0500 Subject: [PATCH 047/107] v8.123.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 09b00f32..a329cafa 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.122.0" +__version__ = "8.123.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index ab95de19..f5a49ead 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.122.0" +version = "8.123.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From aa9cbba18b15a579a4e9f4964fa725ff8abb09ca Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Tue, 3 Feb 2026 09:36:24 -0500 Subject: [PATCH 048/107] Revert "Clean up pyproject.toml (#714)" (#719) This reverts commit aee684256a0d97449320ed6c4af83c76d166398e. --- .github/workflows/build_layer.yml | 2 +- pyproject.toml | 30 +++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index db8329b5..1725975f 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -37,7 +37,7 @@ jobs: - name: Patch pyproject.toml run: | echo "Patching pyproject.toml to use latest build of dd-trace-py" - sed -zEi 's|^ddtrace =.*$|ddtrace = { file = "${{ steps.find-ddtrace-wheel.outputs.wheel_path }}" }|' pyproject.toml + sed -i 's|^ddtrace =.*$|ddtrace = { file = "${{ steps.find-ddtrace-wheel.outputs.wheel_path }}" }|' pyproject.toml - name: Build layer for Python ${{ matrix.python_version }} on ${{ matrix.arch }} run: | diff --git a/pyproject.toml b/pyproject.toml index f5a49ead..d8aa4201 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,8 +3,12 @@ name = "datadog_lambda" version = "8.123.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] + +[project] +name = "datadog_lambda" license = "Apache-2.0" readme = "README.md" +requires-python = ">=3.8.0,<4" repository = "https://github.com/DataDog/datadog-lambda-python" keywords = [ "datadog", @@ -12,10 +16,18 @@ keywords = [ "lambda", "layer", ] +dependencies = [ + "datadog>=0.51.0,<1.0.0", + "wrapt>=1.11.2,<2", + "ddtrace>=3.19.1,<4; python_version>='3.9.0' and python_version < '3.10'", + "ddtrace>=4.1.1,<5; python_version>='3.10.0'", + "ujson>=5.9.0", +] packages = [ { include = "datadog_lambda" } ] classifiers = [ + "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", @@ -25,14 +37,13 @@ classifiers = [ "Programming Language :: Python :: 3.14", ] +# can remove tool.poetry.depencies and tool.poetry.extras +# after deprecation of Python 3.8 [tool.poetry.dependencies] python = ">=3.8.0,<4" datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" -ddtrace = [ - {version = ">=3.19.1,<4", python = ">=3.8,<3.10"}, - {version = ">=4.1.1,<5", python = ">=3.10"} -] +ddtrace = ">=3.19.1,<4" ujson = ">=5.9.0" botocore = { version = "^1.34.0", optional = true } requests = { version ="^2.22.0", optional = true } @@ -49,9 +60,18 @@ dev = [ "requests", ] +[project.optional-dependencies] +dev = [ + "botocore>=1.34.0,<2", + "requests>=2.22.0,<3", + "pytest>=8.0.0,<9", + "pytest-benchmark>=4.0,<5", + "flake8>=5.0.4,<6", +] + [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.pytest.ini_options] -addopts = "--benchmark-disable --benchmark-autosave" \ No newline at end of file +addopts = "--benchmark-disable --benchmark-autosave" From 88bf2f2a5cae91396fff83a57ff2d950f7d2eade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 5 Feb 2026 12:00:50 -0800 Subject: [PATCH 049/107] fix: omit creating cold start on LMI (#716) * omit creating cold start on LMI * set env in config instead of using os to do it --- datadog_lambda/cold_start.py | 17 +++++++++++++ datadog_lambda/config.py | 1 + datadog_lambda/wrapper.py | 9 ++++++- tests/test_cold_start.py | 46 ++++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 1 deletion(-) diff --git a/datadog_lambda/cold_start.py b/datadog_lambda/cold_start.py index a40e2fcb..260d491b 100644 --- a/datadog_lambda/cold_start.py +++ b/datadog_lambda/cold_start.py @@ -63,6 +63,19 @@ def get_proactive_init_tag(): ) +def is_managed_instances_mode(): + """ + Checks if the Lambda function is running in managed instances mode. + In managed instances mode, we should not create cold start tracing spans + as the gap between the sandbox initialization and the first + invocation might not be be a great experience. + + Returns: + bool: True if running in managed instances mode, False otherwise + """ + return config.aws_lambda_initialization_type == "lambda-managed-instances" + + class ImportNode(object): def __init__(self, module_name, full_file_path, start_time_ns, end_time_ns=None): self.module_name = module_name @@ -145,6 +158,10 @@ def wrapped_find_spec(*args, **kwargs): def initialize_cold_start_tracing(): + # Skip cold start tracing initialization in managed instances mode + if is_managed_instances_mode(): + return + if is_new_sandbox() and config.cold_start_tracing: from sys import meta_path diff --git a/datadog_lambda/config.py b/datadog_lambda/config.py index eda6b582..9960953e 100644 --- a/datadog_lambda/config.py +++ b/datadog_lambda/config.py @@ -98,6 +98,7 @@ def _resolve_env(self, key, default=None, cast=None, depends_on_tracing=False): integration_test = _get_env("DD_INTEGRATION_TEST", "false", as_bool) aws_lambda_function_name = _get_env("AWS_LAMBDA_FUNCTION_NAME") + aws_lambda_initialization_type = _get_env("AWS_LAMBDA_INITIALIZATION_TYPE") @property def function_name(self): diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 5a32e2ff..b2f83f13 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -16,6 +16,7 @@ is_cold_start, is_proactive_init, is_new_sandbox, + is_managed_instances_mode, ColdStartTracer, ) from datadog_lambda.config import config @@ -338,7 +339,13 @@ def _after(self, event, context): create_dd_dummy_metadata_subsegment( self.trigger_tags, XraySubsegment.LAMBDA_FUNCTION_TAGS_KEY ) - should_trace_cold_start = config.cold_start_tracing and is_new_sandbox() + # Skip creating cold start spans in managed instances mode + # In managed instances, the tracer library handles cold start independently + should_trace_cold_start = ( + config.cold_start_tracing + and is_new_sandbox() + and not is_managed_instances_mode() + ) if should_trace_cold_start: trace_ctx = tracer.current_trace_context() diff --git a/tests/test_cold_start.py b/tests/test_cold_start.py index d75b5f43..858db9a5 100644 --- a/tests/test_cold_start.py +++ b/tests/test_cold_start.py @@ -12,6 +12,52 @@ class TestColdStartTracingSetup(unittest.TestCase): + def test_is_managed_instances_mode_when_set(self): + os.environ["AWS_LAMBDA_INITIALIZATION_TYPE"] = "lambda-managed-instances" + self.assertTrue(cold_start.is_managed_instances_mode()) + # Clean up + if "AWS_LAMBDA_INITIALIZATION_TYPE" in os.environ: + del os.environ["AWS_LAMBDA_INITIALIZATION_TYPE"] + + def test_is_not_managed_instances_mode_when_not_set(self): + if "AWS_LAMBDA_INITIALIZATION_TYPE" in os.environ: + del os.environ["AWS_LAMBDA_INITIALIZATION_TYPE"] + self.assertFalse(cold_start.is_managed_instances_mode()) + + def test_is_not_managed_instances_mode_with_different_value(self): + os.environ["AWS_LAMBDA_INITIALIZATION_TYPE"] = "on-demand" + self.assertFalse(cold_start.is_managed_instances_mode()) + # Clean up + if "AWS_LAMBDA_INITIALIZATION_TYPE" in os.environ: + del os.environ["AWS_LAMBDA_INITIALIZATION_TYPE"] + + def test_initialize_cold_start_tracing_skips_in_managed_instances(self): + # Set managed instances mode + os.environ["AWS_LAMBDA_INITIALIZATION_TYPE"] = "lambda-managed-instances" + os.environ["DD_COLD_START_TRACING"] = "true" + cold_start._cold_start = True + cold_start._lambda_container_initialized = False + + # Reset node stacks and wrapped loaders to get clean state + cold_start.reset_node_stacks() + cold_start.already_wrapped_loaders.clear() + + # Count wrapped loaders before + wrapped_loaders_before = len(cold_start.already_wrapped_loaders) + + # Initialize cold start tracing - should skip in managed instances mode + cold_start.initialize_cold_start_tracing() + + # Verify no loaders were wrapped + wrapped_loaders_after = len(cold_start.already_wrapped_loaders) + self.assertEqual(wrapped_loaders_before, wrapped_loaders_after) + + # Clean up + if "AWS_LAMBDA_INITIALIZATION_TYPE" in os.environ: + del os.environ["AWS_LAMBDA_INITIALIZATION_TYPE"] + if "DD_COLD_START_TRACING" in os.environ: + del os.environ["DD_COLD_START_TRACING"] + def test_proactive_init(self): cold_start._cold_start = True cold_start._proactive_initialization = False From 8cfa94f84c88b0e000b39763e1ce99be4937fb06 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Fri, 6 Feb 2026 10:08:46 -0500 Subject: [PATCH 050/107] Revert pyproject.toml changes, refactor sed command (#720) * Revert pyproject.toml changes and add environment variable for ddtrace wheel sed command * version typo * add commit branch variable * prints * fix environment variable checks * Remove debug prints * eof newline --- .github/workflows/build_layer.yml | 7 +------ pyproject.toml | 28 ++++------------------------ scripts/build_layers.sh | 8 ++++++++ 3 files changed, 13 insertions(+), 30 deletions(-) diff --git a/.github/workflows/build_layer.yml b/.github/workflows/build_layer.yml index 1725975f..e21f1633 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -34,15 +34,10 @@ jobs: pip download --no-index --no-deps --find-links https://dd-trace-py-builds.s3.amazonaws.com/main/index.html --pre --python-version "${{ matrix.python_version}}" --platform "${PLATFORM_TAG}" ddtrace echo "wheel_path=$(find . -name "*.whl" | head -n 1)" >> $GITHUB_OUTPUT - - name: Patch pyproject.toml - run: | - echo "Patching pyproject.toml to use latest build of dd-trace-py" - sed -i 's|^ddtrace =.*$|ddtrace = { file = "${{ steps.find-ddtrace-wheel.outputs.wheel_path }}" }|' pyproject.toml - - name: Build layer for Python ${{ matrix.python_version }} on ${{ matrix.arch }} run: | echo "Building layer for Python ${{ matrix.python_version }} on ${{ matrix.arch }}" - ARCH=${{ matrix.arch }} PYTHON_VERSION=${{ matrix.python_version }} ./scripts/build_layers.sh + ARCH=${{ matrix.arch }} PYTHON_VERSION=${{ matrix.python_version }} DD_TRACE_WHEEL="${{ steps.find-ddtrace-wheel.outputs.wheel_path }}" ./scripts/build_layers.sh - name: Upload layer artifact uses: actions/upload-artifact@v4 diff --git a/pyproject.toml b/pyproject.toml index d8aa4201..ee15e387 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,12 +3,8 @@ name = "datadog_lambda" version = "8.123.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] - -[project] -name = "datadog_lambda" license = "Apache-2.0" readme = "README.md" -requires-python = ">=3.8.0,<4" repository = "https://github.com/DataDog/datadog-lambda-python" keywords = [ "datadog", @@ -16,18 +12,10 @@ keywords = [ "lambda", "layer", ] -dependencies = [ - "datadog>=0.51.0,<1.0.0", - "wrapt>=1.11.2,<2", - "ddtrace>=3.19.1,<4; python_version>='3.9.0' and python_version < '3.10'", - "ddtrace>=4.1.1,<5; python_version>='3.10.0'", - "ujson>=5.9.0", -] packages = [ { include = "datadog_lambda" } ] classifiers = [ - "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", @@ -37,13 +25,14 @@ classifiers = [ "Programming Language :: Python :: 3.14", ] -# can remove tool.poetry.depencies and tool.poetry.extras -# after deprecation of Python 3.8 [tool.poetry.dependencies] python = ">=3.8.0,<4" datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" -ddtrace = ">=3.19.1,<4" +ddtrace = [ + {version = ">=3.19.1,<4", python = ">=3.8,<3.10"}, + {version = ">=4.1.1,<5", python = ">=3.10"} +] ujson = ">=5.9.0" botocore = { version = "^1.34.0", optional = true } requests = { version ="^2.22.0", optional = true } @@ -60,15 +49,6 @@ dev = [ "requests", ] -[project.optional-dependencies] -dev = [ - "botocore>=1.34.0,<2", - "requests>=2.22.0,<3", - "pytest>=8.0.0,<9", - "pytest-benchmark>=4.0,<5", - "flake8>=5.0.4,<6", -] - [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index b78ca9ab..f10b9dbf 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -46,6 +46,14 @@ else PYTHON_VERSIONS=$PYTHON_VERSION fi +# Replace ddtrace wheel used if necessary +if [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then + sed -z -E -i 's|(ddtrace = )\[[^]]*]|\1{ git = "https://github.com/DataDog/dd-trace-py.git", branch = \"'"$DD_TRACE_COMMIT_BRANCH"'\" }|g' pyproject.toml +else + if [ -n "$DD_TRACE_WHEEL" ]; then + sed -z -E -i 's|(ddtrace = )\[[^]]*]|\1{ file = "'"$DD_TRACE_WHEEL"'" }|g' pyproject.toml + fi +fi function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" From 1031435740d8a86e1365dabfb4061f3f1563b28b Mon Sep 17 00:00:00 2001 From: Yiming Luo Date: Fri, 20 Feb 2026 17:09:37 -0500 Subject: [PATCH 051/107] fix: normalize runtime version format in integration test log comparison (#729) The Lambda runtime now emits versions like `python:3.10.mainlinev2.v3` instead of the old `python:3.10.v3` format, causing snapshot mismatches. Broaden the sed pattern to match any alphanumeric version suffix. Co-authored-by: Claude Sonnet 4.6 --- scripts/run_integration_tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index 1dfa72b6..1ec55289 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -199,7 +199,7 @@ for handler_name in "${LAMBDA_HANDLERS[@]}"; do sed '/^$/d' | # Normalize Lambda runtime REPORT logs sed -E 's/(RequestId|TraceId|SegmentId|Duration|init|Memory Used|"e"): [a-z0-9\.\-]+/\1: XXXX/g' | - sed -E 's/(python:3.[0-9]+\.v)[0-9]+/\1X/g' | + sed -E 's/(python:3\.[0-9]+\.)[a-zA-Z0-9\.]+/\1vX/g' | # Normalize HTTP headers sed -E "s/(x-datadog-parent-id:|x-datadog-trace-id:|Content-Length:)[0-9]+/\1XXXX/g" | # Remove Account ID From 1fafd5edd164bfdb5c949722bfd5ab09bed07241 Mon Sep 17 00:00:00 2001 From: Yiming Luo Date: Mon, 23 Feb 2026 10:13:08 -0500 Subject: [PATCH 052/107] feat: add durable function execution tags to Lambda spans (#728) * feat: add durable function execution tags to Lambda spans Extract DurableExecutionArn from the Lambda event payload and add durable_function_execution_name and durable_function_execution_id as span tags, matching the equivalent feature in datadog-lambda-js#730. Co-Authored-By: Claude Sonnet 4.6 * Change log level from debug to error * Format * fmt * Fix long line --------- Co-authored-by: Claude Sonnet 4.6 --- datadog_lambda/durable.py | 49 +++++++++++++++++++++ datadog_lambda/tracing.py | 3 ++ datadog_lambda/wrapper.py | 3 ++ tests/test_durable.py | 91 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 146 insertions(+) create mode 100644 datadog_lambda/durable.py create mode 100644 tests/test_durable.py diff --git a/datadog_lambda/durable.py b/datadog_lambda/durable.py new file mode 100644 index 00000000..e9443f92 --- /dev/null +++ b/datadog_lambda/durable.py @@ -0,0 +1,49 @@ +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019 Datadog, Inc. +import logging +import re + +logger = logging.getLogger(__name__) + + +def _parse_durable_execution_arn(arn): + """ + Parses a DurableExecutionArn to extract execution name and ID. + ARN format: + arn:aws:lambda:{region}:{account}:function:{func}:{version}/durable-execution/{name}/{id} + Returns (execution_name, execution_id) or None if parsing fails. + """ + match = re.search(r"/durable-execution/([^/]+)/([^/]+)$", arn) + if not match: + return None + execution_name, execution_id = match.group(1), match.group(2) + if not execution_name or not execution_id: + return None + return execution_name, execution_id + + +def extract_durable_function_tags(event): + """ + Extracts durable function tags from the Lambda event payload. + Returns a dict with durable function tags, or an empty dict if the event + is not a durable function invocation. + """ + if not isinstance(event, dict): + return {} + + durable_execution_arn = event.get("DurableExecutionArn") + if not isinstance(durable_execution_arn, str): + return {} + + parsed = _parse_durable_execution_arn(durable_execution_arn) + if not parsed: + logger.error("Failed to parse DurableExecutionArn: %s", durable_execution_arn) + return {} + + execution_name, execution_id = parsed + return { + "durable_function_execution_name": execution_name, + "durable_function_execution_id": execution_id, + } diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index e7dca1f3..bd138976 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -1449,6 +1449,7 @@ def create_function_execution_span( trace_context_source, merge_xray_traces, trigger_tags, + durable_function_tags=None, parent_span=None, span_pointers=None, ): @@ -1477,6 +1478,8 @@ def create_function_execution_span( if trace_context_source == TraceContextSource.XRAY and merge_xray_traces: tags["_dd.parent_source"] = trace_context_source tags.update(trigger_tags) + if durable_function_tags: + tags.update(durable_function_tags) tracer.set_tags(_dd_origin) # Determine service name based on config and env var if config.service: diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index b2f83f13..aff4a44e 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -42,6 +42,7 @@ tracer, propagator, ) +from datadog_lambda.durable import extract_durable_function_tags from datadog_lambda.trigger import ( extract_trigger_tags, extract_http_status_code_tag, @@ -243,6 +244,7 @@ def _before(self, event, context): submit_invocations_metric(context) self.trigger_tags = extract_trigger_tags(event, context) + self.durable_function_tags = extract_durable_function_tags(event) # Extract Datadog trace context and source from incoming requests dd_context, trace_context_source, event_source = extract_dd_trace_context( event, @@ -280,6 +282,7 @@ def _before(self, event, context): trace_context_source=trace_context_source, merge_xray_traces=config.merge_xray_traces, trigger_tags=self.trigger_tags, + durable_function_tags=self.durable_function_tags, parent_span=self.inferred_span, span_pointers=calculate_span_pointers(event_source, event), ) diff --git a/tests/test_durable.py b/tests/test_durable.py new file mode 100644 index 00000000..60914934 --- /dev/null +++ b/tests/test_durable.py @@ -0,0 +1,91 @@ +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019 Datadog, Inc. +import unittest + +from datadog_lambda.durable import ( + _parse_durable_execution_arn, + extract_durable_function_tags, +) + + +class TestParseDurableExecutionArn(unittest.TestCase): + def test_returns_name_and_id_for_valid_arn(self): + arn = "arn:aws:lambda:us-east-1:123456789012:function:my-func:$LATEST/durable-execution/order-123/550e8400-e29b-41d4-a716-446655440001" + result = _parse_durable_execution_arn(arn) + self.assertEqual(result, ("order-123", "550e8400-e29b-41d4-a716-446655440001")) + + def test_returns_none_for_arn_without_durable_execution_marker(self): + arn = "arn:aws:lambda:us-east-1:123456789012:function:my-func:$LATEST" + result = _parse_durable_execution_arn(arn) + self.assertIsNone(result) + + def test_returns_none_for_malformed_arn_with_only_execution_name(self): + arn = "arn:aws:lambda:us-east-1:123456789012:function:my-func:$LATEST/durable-execution/order-123" + result = _parse_durable_execution_arn(arn) + self.assertIsNone(result) + + def test_returns_none_for_malformed_arn_with_empty_execution_name(self): + arn = "arn:aws:lambda:us-east-1:123456789012:function:my-func:$LATEST/durable-execution//550e8400-e29b-41d4-a716-446655440002" + result = _parse_durable_execution_arn(arn) + self.assertIsNone(result) + + def test_returns_none_for_malformed_arn_with_empty_execution_id(self): + arn = "arn:aws:lambda:us-east-1:123456789012:function:my-func:$LATEST/durable-execution/order-123/" + result = _parse_durable_execution_arn(arn) + self.assertIsNone(result) + + def test_works_with_numeric_version_qualifier(self): + arn = "arn:aws:lambda:us-east-1:123456789012:function:my-func:1/durable-execution/my-execution/550e8400-e29b-41d4-a716-446655440004" + result = _parse_durable_execution_arn(arn) + self.assertEqual( + result, ("my-execution", "550e8400-e29b-41d4-a716-446655440004") + ) + + +class TestExtractDurableFunctionTags(unittest.TestCase): + def test_extracts_tags_from_event_with_durable_execution_arn(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-func:1/durable-execution/my-execution/550e8400-e29b-41d4-a716-446655440004", + "CheckpointToken": "some-token", + "InitialExecutionState": {"Operations": []}, + } + result = extract_durable_function_tags(event) + self.assertEqual( + result, + { + "durable_function_execution_name": "my-execution", + "durable_function_execution_id": "550e8400-e29b-41d4-a716-446655440004", + }, + ) + + def test_returns_empty_dict_for_regular_lambda_event(self): + event = { + "body": '{"key": "value"}', + "headers": {"Content-Type": "application/json"}, + } + result = extract_durable_function_tags(event) + self.assertEqual(result, {}) + + def test_returns_empty_dict_when_event_is_none(self): + result = extract_durable_function_tags(None) + self.assertEqual(result, {}) + + def test_returns_empty_dict_when_event_is_not_a_dict(self): + result = extract_durable_function_tags("not-a-dict") + self.assertEqual(result, {}) + + def test_returns_empty_dict_when_durable_execution_arn_is_not_a_string(self): + event = {"DurableExecutionArn": 12345} + result = extract_durable_function_tags(event) + self.assertEqual(result, {}) + + def test_returns_empty_dict_when_durable_execution_arn_cannot_be_parsed(self): + event = {"DurableExecutionArn": "invalid-arn-without-durable-execution-marker"} + result = extract_durable_function_tags(event) + self.assertEqual(result, {}) + + def test_returns_empty_dict_when_event_is_empty(self): + result = extract_durable_function_tags({}) + self.assertEqual(result, {}) From d5e91cdb30adf9fc8a857b4c158ca45a73d0b963 Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Wed, 25 Feb 2026 10:40:54 -0500 Subject: [PATCH 053/107] release v8.123.0 (#730) --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index a329cafa..4047ae83 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.123.0.dev0" +__version__ = "8.123.0" diff --git a/pyproject.toml b/pyproject.toml index ee15e387..da3ecccf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.123.0.dev0" +version = "8.123.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 6fd23fcb008f9ecb4fcf9f86005578a5eb1aca8a Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Thu, 26 Feb 2026 17:11:39 +0100 Subject: [PATCH 054/107] Add profiling enabled test in 3.14 (#731) --- tests/test_wrapper.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 95dfc304..5b2afea8 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -836,9 +836,6 @@ def lambda_handler(event, context): @patch("datadog_lambda.config.Config.profiling_enabled", True) -@pytest.mark.skipif( - sys.version_info >= (3, 14), reason="profiling not yet supported in python 3.14" -) def test_profiling_enabled(monkeypatch): importlib.reload(wrapper) From e5ab49a86d44829843c007ef6f1f55ce5917d460 Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Mon, 2 Mar 2026 10:14:36 -0500 Subject: [PATCH 055/107] fix profiling (#733) --- datadog_lambda/wrapper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index aff4a44e..c174a501 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -292,7 +292,7 @@ def _before(self, event, context): else: set_correlation_ids() if config.profiling_enabled and profiler and is_new_sandbox(): - self.prof.start(stop_on_exit=False, profile_children=True) + self.prof.start() logger.debug("datadog_lambda_wrapper _before() done") except Exception as e: logger.error(format_err_with_traceback(e)) From 0a21fe4e800bdeebbc3230d068195f9612960f3f Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Mon, 2 Mar 2026 15:00:17 -0500 Subject: [PATCH 056/107] update to 8.124.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 4047ae83..d11f7a1f 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.123.0" +__version__ = "8.124.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index da3ecccf..ca2c739a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.123.0" +version = "8.124.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 544d8f7fd6cea759b4729455dbb2ec34a87c60cf Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Wed, 4 Mar 2026 17:02:09 -0500 Subject: [PATCH 057/107] chore: enable build_layers.sh to build from specific dd-trace-py commit (#734) * enable build_layers.sh to build from specific dd-trace-py commit * make PIN_SETUPTOOLS optional * remove the pin_setuptools option entirely --- Dockerfile | 1 + scripts/build_layers.sh | 70 +++++++++++++++++++++++++++++++++-------- 2 files changed, 58 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 974419ed..b64cd419 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,6 +25,7 @@ ENV PATH=/root/.cargo/bin:$PATH # Install datadog_lambda and dependencies from local COPY . . + RUN pip install --no-cache-dir . -t ./python/lib/$runtime/site-packages # Remove botocore (40MB) to reduce package size. aws-xray-sdk diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index f10b9dbf..f1500275 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -6,9 +6,27 @@ # Copyright 2019 Datadog, Inc. # Builds datadog-lambda-python layers for Lambda functions - -# Usage: PYTHON_VERSION=3.11 ./build_layers.sh -# If PYTHON_VERSION is not specified, all versions will be built. +# +# Usage: +# PYTHON_VERSION=12 ARCH=arm ./scripts/build_layers.sh +# +# Environment variables: +# PYTHON_VERSION Python minor version. Accepts shorthand (e.g. 12) or full (e.g. 3.12). +# If not set, all supported versions are built. +# ARCH Target architecture. Accepts shorthand: arm, amd, x86, aarch64 +# or full: arm64, amd64. If not set, both are built. +# +# dd-trace-py overrides (mutually exclusive, highest priority first): +# DD_TRACE_COMMIT Specific dd-trace-py commit SHA to build from GitHub. +# DD_TRACE_COMMIT_BRANCH dd-trace-py branch name to build from GitHub. +# DD_TRACE_WHEEL Path to a pre-built ddtrace .whl file. +# +# Examples: +# # Build a single layer for Python 3.12 on arm64 +# PYTHON_VERSION=12 ARCH=arm ./scripts/build_layers.sh +# +# # Build with a specific dd-trace-py commit (for git bisect) +# DD_TRACE_COMMIT=abc123 PYTHON_VERSION=12 ARCH=arm ./scripts/build_layers.sh set -e @@ -17,6 +35,13 @@ LAYER_FILES_PREFIX="datadog_lambda_py" AVAILABLE_PYTHON_VERSIONS=("3.8" "3.9" "3.10" "3.11" "3.12" "3.13" "3.14") AVAILABLE_ARCHS=("arm64" "amd64") +if [ -n "$ARCH" ]; then + case "$ARCH" in + arm|arm64|aarch64) ARCH="arm64" ;; + amd|amd64|x86|x86_64) ARCH="amd64" ;; + esac +fi + if [ -z "$ARCH" ]; then echo "No architectures specified, building layers for all architectures." ARCHS=("${AVAILABLE_ARCHS[@]}") @@ -28,7 +53,14 @@ else echo "EXITING SCRIPT." exit 1 fi - ARCHS=$ARCH + ARCHS=("$ARCH") +fi + +# Normalize Python version shorthand (e.g. 12 -> 3.12, 3.12 -> 3.12) +if [ -n "$PYTHON_VERSION" ]; then + if [[ "$PYTHON_VERSION" =~ ^[0-9]+$ ]]; then + PYTHON_VERSION="3.${PYTHON_VERSION}" + fi fi # Determine which Python versions to build layers for @@ -43,18 +75,30 @@ else echo "EXITING SCRIPT." exit 1 fi - PYTHON_VERSIONS=$PYTHON_VERSION + PYTHON_VERSIONS=("$PYTHON_VERSION") fi -# Replace ddtrace wheel used if necessary -if [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then - sed -z -E -i 's|(ddtrace = )\[[^]]*]|\1{ git = "https://github.com/DataDog/dd-trace-py.git", branch = \"'"$DD_TRACE_COMMIT_BRANCH"'\" }|g' pyproject.toml -else - if [ -n "$DD_TRACE_WHEEL" ]; then - sed -z -E -i 's|(ddtrace = )\[[^]]*]|\1{ file = "'"$DD_TRACE_WHEEL"'" }|g' pyproject.toml - fi -fi +# Backup pyproject.toml so modifications don't persist across runs +cp pyproject.toml pyproject.toml.bak +cleanup() { + mv pyproject.toml.bak pyproject.toml 2>/dev/null || true +} +trap cleanup EXIT +# Helper: replace the multi-line ddtrace dependency in pyproject.toml. +# Uses perl instead of sed -z for macOS/Linux portability. +replace_ddtrace_dep() { + perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml +} + +# Replace ddtrace source if necessary +if [ -n "$DD_TRACE_COMMIT" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" +elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" +elif [ -n "$DD_TRACE_WHEEL" ]; then + replace_ddtrace_dep "ddtrace = { file = \"$DD_TRACE_WHEEL\" }" +fi function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } From f349c577d94c4fc346a87de0cdc5568786ce75b9 Mon Sep 17 00:00:00 2001 From: Nicolas Catoni Date: Tue, 10 Mar 2026 16:14:28 +0100 Subject: [PATCH 058/107] ci: add test optimization reporting for system-tests (#735) * Adding test optimization reporting for system-tests * Push to test optim * New API key for test optimization --- .github/workflows/system_tests.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/system_tests.yml b/.github/workflows/system_tests.yml index b61725b1..49e7bf05 100644 --- a/.github/workflows/system_tests.yml +++ b/.github/workflows/system_tests.yml @@ -27,12 +27,15 @@ jobs: needs: - build uses: DataDog/system-tests/.github/workflows/system-tests.yml@main - secrets: inherit + secrets: + DD_API_KEY: ${{ secrets.DD_API_KEY }} + TEST_OPTIMIZATION_API_KEY: ${{ secrets.TEST_OPTIMIZATION_API_KEY }} permissions: contents: read packages: write with: library: python_lambda binaries_artifact: binaries - scenarios_groups: appsec + scenarios_groups: tracer_release skip_empty_scenarios: true + push_to_test_optimization: true From 8fe789e3f8dae35f2cb9ffa42427e68b1df65ed0 Mon Sep 17 00:00:00 2001 From: jchrostek-dd Date: Fri, 13 Mar 2026 10:05:19 -0400 Subject: [PATCH 059/107] Add span.kind=server to aws.lambda spans (#745) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add span.kind=server to aws.lambda span This aligns the tracer-created span with the extension's behavior, enabling server-based features in Datadog APM for Lambda functions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * Update integration test snapshots with span.kind: server Add span.kind: server to all aws.lambda spans in integration test snapshot files to match the new behavior added in tracing.py. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --------- Co-authored-by: Claude Opus 4.5 --- datadog_lambda/tracing.py | 1 + .../integration/snapshots/logs/async-metrics_python310.log | 7 +++++++ .../integration/snapshots/logs/async-metrics_python311.log | 7 +++++++ .../integration/snapshots/logs/async-metrics_python312.log | 7 +++++++ .../integration/snapshots/logs/async-metrics_python313.log | 7 +++++++ .../integration/snapshots/logs/async-metrics_python314.log | 7 +++++++ .../integration/snapshots/logs/async-metrics_python38.log | 7 +++++++ .../integration/snapshots/logs/async-metrics_python39.log | 7 +++++++ .../integration/snapshots/logs/sync-metrics_python310.log | 7 +++++++ .../integration/snapshots/logs/sync-metrics_python311.log | 7 +++++++ .../integration/snapshots/logs/sync-metrics_python312.log | 7 +++++++ .../integration/snapshots/logs/sync-metrics_python313.log | 7 +++++++ .../integration/snapshots/logs/sync-metrics_python314.log | 7 +++++++ tests/integration/snapshots/logs/sync-metrics_python38.log | 7 +++++++ tests/integration/snapshots/logs/sync-metrics_python39.log | 7 +++++++ 15 files changed, 99 insertions(+) diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index bd138976..da4c9dd3 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -1460,6 +1460,7 @@ def create_function_execution_span( function_arn = ":".join(tk[0:7]) if len(tk) > 7 else function_arn function_version = tk[7] if len(tk) > 7 else "$LATEST" tags = { + "span.kind": "server", "cold_start": str(is_cold_start).lower(), "function_arn": function_arn, "function_version": function_version, diff --git a/tests/integration/snapshots/logs/async-metrics_python310.log b/tests/integration/snapshots/logs/async-metrics_python310.log index 356d8243..8d47fa12 100644 --- a/tests/integration/snapshots/logs/async-metrics_python310.log +++ b/tests/integration/snapshots/logs/async-metrics_python310.log @@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python311.log b/tests/integration/snapshots/logs/async-metrics_python311.log index fa140a85..3a2dd243 100644 --- a/tests/integration/snapshots/logs/async-metrics_python311.log +++ b/tests/integration/snapshots/logs/async-metrics_python311.log @@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python312.log b/tests/integration/snapshots/logs/async-metrics_python312.log index c2ea0647..91021815 100644 --- a/tests/integration/snapshots/logs/async-metrics_python312.log +++ b/tests/integration/snapshots/logs/async-metrics_python312.log @@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python313.log b/tests/integration/snapshots/logs/async-metrics_python313.log index b6a4f68e..41008f65 100644 --- a/tests/integration/snapshots/logs/async-metrics_python313.log +++ b/tests/integration/snapshots/logs/async-metrics_python313.log @@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python314.log b/tests/integration/snapshots/logs/async-metrics_python314.log index a430b644..c6979758 100644 --- a/tests/integration/snapshots/logs/async-metrics_python314.log +++ b/tests/integration/snapshots/logs/async-metrics_python314.log @@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python38.log b/tests/integration/snapshots/logs/async-metrics_python38.log index e37090ff..d4c33fe5 100644 --- a/tests/integration/snapshots/logs/async-metrics_python38.log +++ b/tests/integration/snapshots/logs/async-metrics_python38.log @@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python39.log b/tests/integration/snapshots/logs/async-metrics_python39.log index 46c36112..c12ed57f 100644 --- a/tests/integration/snapshots/logs/async-metrics_python39.log +++ b/tests/integration/snapshots/logs/async-metrics_python39.log @@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python310.log b/tests/integration/snapshots/logs/sync-metrics_python310.log index a9170abd..3747c3ae 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python310.log +++ b/tests/integration/snapshots/logs/sync-metrics_python310.log @@ -236,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -463,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -642,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -1021,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1216,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1400,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1583,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index 490fcc63..b614b122 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python311.log +++ b/tests/integration/snapshots/logs/sync-metrics_python311.log @@ -236,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -463,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -642,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -1021,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1216,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1400,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1583,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index 509d1bfe..593d9fbf 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python312.log +++ b/tests/integration/snapshots/logs/sync-metrics_python312.log @@ -236,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -463,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -642,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -1021,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1216,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1400,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1583,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index 03a8e8c2..c21fcaad 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python313.log +++ b/tests/integration/snapshots/logs/sync-metrics_python313.log @@ -236,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -463,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -642,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -1021,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1216,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1400,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1583,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log index 7261153e..090c3cba 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python314.log +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -236,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -463,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -642,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -1021,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1216,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1400,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1583,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log index 37bbff6e..32296126 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python38.log +++ b/tests/integration/snapshots/logs/sync-metrics_python38.log @@ -236,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -463,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -642,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -1021,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1216,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1400,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1583,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python39.log b/tests/integration/snapshots/logs/sync-metrics_python39.log index cd2a74e0..1c1496d3 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python39.log +++ b/tests/integration/snapshots/logs/sync-metrics_python39.log @@ -236,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -463,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -642,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -1021,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1216,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1400,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1583,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, From 64eba2f834685153f29d68de2da880af8d850f91 Mon Sep 17 00:00:00 2001 From: jchrostek-dd Date: Mon, 16 Mar 2026 11:12:52 -0400 Subject: [PATCH 060/107] fix(cold_start): capture trace context before finishing spans (#746) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move trace context capture BEFORE span.finish() so ColdStartTracer creates spans with the correct trace_id. Previously, tracer.current_trace_context() was called AFTER span.finish(), which returned a stale context, causing cold start spans (aws.lambda.load and import spans) to have a different trace_id than the main aws.lambda span. Added unit test assertions to verify trace_id consistency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 --- datadog_lambda/wrapper.py | 19 ++++++++++--------- tests/test_cold_start.py | 7 ++++++- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index c174a501..d022988b 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -305,6 +305,16 @@ def _after(self, event, context): status_code = extract_http_status_code_tag(self.trigger_tags, self.response) + # Skip creating cold start spans in managed instances mode + # In managed instances, the tracer library handles cold start independently + should_trace_cold_start = ( + config.cold_start_tracing + and is_new_sandbox() + and not is_managed_instances_mode() + ) + if should_trace_cold_start: + trace_ctx = tracer.current_trace_context() + if self.span: if config.appsec_enabled and not self.blocking_response: asm_start_response( @@ -342,15 +352,6 @@ def _after(self, event, context): create_dd_dummy_metadata_subsegment( self.trigger_tags, XraySubsegment.LAMBDA_FUNCTION_TAGS_KEY ) - # Skip creating cold start spans in managed instances mode - # In managed instances, the tracer library handles cold start independently - should_trace_cold_start = ( - config.cold_start_tracing - and is_new_sandbox() - and not is_managed_instances_mode() - ) - if should_trace_cold_start: - trace_ctx = tracer.current_trace_context() if self.inferred_span: if status_code: diff --git a/tests/test_cold_start.py b/tests/test_cold_start.py index 858db9a5..5fc11e2c 100644 --- a/tests/test_cold_start.py +++ b/tests/test_cold_start.py @@ -310,13 +310,18 @@ def handler(event, context): handler.cold_start_tracing = True handler({}, lambda_context) - function_span = import_span = None + function_span = import_span = load_span = None for span in spans: if span.resource == "tabnanny": import_span = span elif span.name == "aws.lambda": function_span = span + elif span.name == "aws.lambda.load": + load_span = span assert function_span is not None assert import_span is not None assert import_span.parent_id == function_span.span_id + assert import_span.trace_id == function_span.trace_id + assert load_span is not None + assert load_span.trace_id == function_span.trace_id From 0f4c059a8adfe57793de5435fd7a8c7cb1623750 Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Wed, 18 Mar 2026 15:46:37 -0400 Subject: [PATCH 061/107] ci: skip ddtrace 4.6.* version (#750) * ci: skip ddtrace 4.6.* version * Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ca2c739a..f289867c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" ddtrace = [ {version = ">=3.19.1,<4", python = ">=3.8,<3.10"}, - {version = ">=4.1.1,<5", python = ">=3.10"} + {version = ">=4.1.1,<5,!=4.6.*", python = ">=3.10"} ] ujson = ">=5.9.0" botocore = { version = "^1.34.0", optional = true } From 1bcf24370f0b35bcfd24457edbc8568b78d6bd7e Mon Sep 17 00:00:00 2001 From: Nicolas Catoni Date: Thu, 19 Mar 2026 13:26:11 +0100 Subject: [PATCH 062/107] ci: adding schedule to system-tests workflow (#744) * Adding schedule to system-tests workflow * Update .github/workflows/system_tests.yml Co-authored-by: Charles de Beauchesne --------- Co-authored-by: Charles de Beauchesne --- .github/workflows/system_tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/system_tests.yml b/.github/workflows/system_tests.yml index 49e7bf05..f6e23a0f 100644 --- a/.github/workflows/system_tests.yml +++ b/.github/workflows/system_tests.yml @@ -7,6 +7,8 @@ on: pull_request: branches: - "**" + schedule: + - cron: '00 03 * * *' jobs: build: From 91d24869566fae968b2a7ca21cfcf70a99804ede Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Thu, 19 Mar 2026 11:00:15 -0400 Subject: [PATCH 063/107] ci: install dd-trace-py pipeline wheels when run as child pipeline (#749) * ci: allow installing dd-trace-py pipeline artifacts * we don't have python/pip available * don't fail if wheels aren't available * don't delete local wheels --- scripts/build_layers.sh | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index f1500275..7456a38b 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -20,6 +20,9 @@ # DD_TRACE_COMMIT Specific dd-trace-py commit SHA to build from GitHub. # DD_TRACE_COMMIT_BRANCH dd-trace-py branch name to build from GitHub. # DD_TRACE_WHEEL Path to a pre-built ddtrace .whl file. +# UPSTREAM_PIPELINE_ID GitLab pipeline ID from dd-trace-py. Downloads the +# matching pre-built wheel from S3 (via +# index-manylinux2014.html) for each python/arch. # # Examples: # # Build a single layer for Python 3.12 on arm64 @@ -91,14 +94,6 @@ replace_ddtrace_dep() { perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml } -# Replace ddtrace source if necessary -if [ -n "$DD_TRACE_COMMIT" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" -elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" -elif [ -n "$DD_TRACE_WHEEL" ]; then - replace_ddtrace_dep "ddtrace = { file = \"$DD_TRACE_WHEEL\" }" -fi function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } @@ -109,6 +104,36 @@ function docker_build_zip { destination=$(make_path_absolute $2) arch=$3 + # Restore pyproject.toml to a clean state for each build iteration + cp pyproject.toml.bak pyproject.toml + + # Replace ddtrace source if necessary + if [ -n "$DD_TRACE_COMMIT" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" + elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" + elif [ -n "$DD_TRACE_WHEEL" ]; then + replace_ddtrace_dep "ddtrace = { file = \"$DD_TRACE_WHEEL\" }" + elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then + S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" + if [ "${arch}" = "amd64" ]; then + PLATFORM="manylinux2014_x86_64" + else + PLATFORM="manylinux2014_aarch64" + fi + PY_TAG="cp$(echo "$1" | tr -d '.')" + WHEEL_FILE=$(curl -sSfL "${S3_BASE}/index-manylinux2014.html" \ + | grep -o "ddtrace-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" \ + | head -n 1) + if [ -z "${WHEEL_FILE}" ]; then + echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" + else + curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" + echo "Using S3 wheel: ${WHEEL_FILE}" + replace_ddtrace_dep "ddtrace = { file = \"${WHEEL_FILE}\" }" + fi + fi + # Install datadogpy in a docker container to avoid the mess from switching # between different python runtimes. temp_dir=$(mktemp -d) From 8f20b9faceb487953e8e09c526ab73c7d8b9a3f1 Mon Sep 17 00:00:00 2001 From: Juanjo Alvarez Martinez Date: Mon, 23 Mar 2026 15:20:06 +0100 Subject: [PATCH 064/107] feat: slim down the zip ddtrace package (#753) Remove more things from the ddtrace package Signed-off-by: Juanjo Alvarez simplify appsec removal Signed-off-by: Juanjo Alvarez Merge branch 'main' into juanjux/remove-ddtrace-stuff simplify appsec removal Signed-off-by: Juanjo Alvarez Merge branch 'juanjux/remove-ddtrace-stuff' of https://github.com/juanjux/datadog-lambda-python into juanjux/remove-ddtrace-stuff Add more extensions to delete Signed-off-by: Juanjo Alvarez Merge branch 'main' into juanjux/remove-ddtrace-stuff simplify appsec removal Signed-off-by: Juanjo Alvarez Merge branch 'juanjux/remove-ddtrace-stuff' of https://github.com/juanjux/datadog-lambda-python into juanjux/remove-ddtrace-stuff Also delete .pyi Signed-off-by: Juanjo Alvarez Co-authored-by: juanjo.alvarezmartinez --- Dockerfile | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index b64cd419..6d9eb756 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,10 +33,12 @@ RUN pip install --no-cache-dir . -t ./python/lib/$runtime/site-packages RUN rm -rf ./python/lib/$runtime/site-packages/botocore* RUN rm -rf ./python/lib/$runtime/site-packages/setuptools RUN rm -rf ./python/lib/$runtime/site-packages/jsonschema/tests -RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_ast/iastpatch*.so -RUN rm -rf ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_taint_tracking/_vendor -RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_taint_tracking/*.so -RUN rm -f ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast/_stacktrace*.so +RUN rm -rf ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast +RUN rm -rf ./python/lib/$runtime/site-packages/ddtrace/internal/test_visibility +# Dogshell +RUN rm -rf ./python/lib/$runtime/site-packages/datadog/dogshell +RUN rm -rf ./python/lib/$runtime/site-packages/bin/dog* + # remove *.dist-info directories except any entry_points.txt files and METADATA files required for Appsec Software Composition Analysis RUN find ./python/lib/$runtime/site-packages/*.dist-info \ -type f \ @@ -50,7 +52,8 @@ RUN rm -rf \ ./python/lib/$runtime/site-packages/urllib3* \ ./python/lib/$runtime/site-packages/certifi* \ ./python/lib/$runtime/site-packages/idna* \ - ./python/lib/$runtime/site-packages/charset_normalizer* + ./python/lib/$runtime/site-packages/charset_normalizer* \ + ./python/lib/$runtime/site-packages/*__mypyc*.so # from charset_normalizer # Precompile all .pyc files and remove .py files. This speeds up load time. # Compile with optimization level 2 (-OO) and PYTHONNODEBUGRANGES=1 to redtce @@ -73,6 +76,7 @@ RUN find ./python/lib/$runtime/site-packages/ddtrace -name \*.cc -delete RUN find ./python/lib/$runtime/site-packages/ddtrace -name \*.h -delete RUN find ./python/lib/$runtime/site-packages/ddtrace -name \*.hpp -delete RUN find ./python/lib/$runtime/site-packages/ddtrace -name \*.pyx -delete +RUN find ./python/lib/$runtime/site-packages/ddtrace -name \*.pyi -delete # Strip debug symbols and symbols that are not needed for relocation # processing using strip --strip-unneeded for all .so files. This is to From 52bcf2180771dad19cfed6ed55fe4037c038ac12 Mon Sep 17 00:00:00 2001 From: Olivier Nzia Date: Mon, 23 Mar 2026 16:28:54 -0400 Subject: [PATCH 065/107] fix: disable Client Side Stats by default (#756) * set DD_TRACE_COMPUTE_STATS to false by default * lint * add comment * add alias, and warning * lint * disable css invariably --- datadog_lambda/config.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/datadog_lambda/config.py b/datadog_lambda/config.py index 9960953e..4458bd9a 100644 --- a/datadog_lambda/config.py +++ b/datadog_lambda/config.py @@ -141,6 +141,12 @@ def _reset(self): "enabled" if config.fips_mode_enabled else "not enabled", ) +# disable css to prevent double counting in lambda +os.environ["DD_TRACE_STATS_COMPUTATION_ENABLED"] = "false" + +# unset css aliases to ensure it is disabled +if "DD_TRACE_COMPUTE_STATS" in os.environ: + del os.environ["DD_TRACE_COMPUTE_STATS"] if ( "DD_INSTRUMENTATION_TELEMETRY_ENABLED" not in os.environ From 12a2a5a785642b6fe230e0a545c96573f42d7da1 Mon Sep 17 00:00:00 2001 From: jchrostek-dd Date: Thu, 26 Mar 2026 11:28:11 -0400 Subject: [PATCH 066/107] feat: add durable_function_execution_status tag to aws.lambda span (#751) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add durable_function_execution_status tag to aws.lambda span When using AWS Lambda Durable Execution SDK, extract the execution status from the handler response and add it as a tag to the aws.lambda span. The tag captures the Status field from durable function responses: - SUCCEEDED: Execution completed successfully - FAILED: Execution failed - PENDING: Execution is still in progress The tag is only added when: 1. The event contains a DurableExecutionArn (indicates durable invocation) 2. The response is a dict with a valid Status field 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * refactor: simplify durable status extraction Return status string directly instead of wrapping in a dict. Remove redundant comments. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 * remove redundant docstrings * restore docstring for existing function * fix: black formatting * fix: apply black formatting * fix: use correct durable execution status values (SUCCEEDED, FAILED, STOPPED, TIMED_OUT) * fix: rename tag to aws_lambda.durable_function.execution_status 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --------- Co-authored-by: Claude Opus 4.5 --- datadog_lambda/durable.py | 14 ++++++++ datadog_lambda/wrapper.py | 14 ++++++-- tests/test_durable.py | 70 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/durable.py b/datadog_lambda/durable.py index e9443f92..3174cd6c 100644 --- a/datadog_lambda/durable.py +++ b/datadog_lambda/durable.py @@ -47,3 +47,17 @@ def extract_durable_function_tags(event): "durable_function_execution_name": execution_name, "durable_function_execution_id": execution_id, } + + +VALID_DURABLE_STATUSES = {"SUCCEEDED", "FAILED", "STOPPED", "TIMED_OUT"} + + +def extract_durable_execution_status(response, event): + if not isinstance(event, dict) or "DurableExecutionArn" not in event: + return None + if not isinstance(response, dict): + return None + status = response.get("Status") + if status not in VALID_DURABLE_STATUSES: + return None + return status diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index d022988b..36b00efd 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -42,7 +42,10 @@ tracer, propagator, ) -from datadog_lambda.durable import extract_durable_function_tags +from datadog_lambda.durable import ( + extract_durable_function_tags, + extract_durable_execution_status, +) from datadog_lambda.trigger import ( extract_trigger_tags, extract_http_status_code_tag, @@ -153,7 +156,7 @@ def __init__(self, func): if config.trace_extractor: extractor_parts = config.trace_extractor.rsplit(".", 1) if len(extractor_parts) == 2: - (mod_name, extractor_name) = extractor_parts + mod_name, extractor_name = extractor_parts modified_extractor_name = modify_module_name(mod_name) extractor_module = import_module(modified_extractor_name) self.trace_extractor = getattr(extractor_module, extractor_name) @@ -340,6 +343,13 @@ def _after(self, event, context): if status_code: self.span.set_tag("http.status_code", status_code) + durable_status = extract_durable_execution_status(self.response, event) + if durable_status: + self.span.set_tag( + "aws_lambda.durable_function.execution_status", + durable_status, + ) + self.span.finish() if status_code: diff --git a/tests/test_durable.py b/tests/test_durable.py index 60914934..e668b45f 100644 --- a/tests/test_durable.py +++ b/tests/test_durable.py @@ -7,6 +7,7 @@ from datadog_lambda.durable import ( _parse_durable_execution_arn, extract_durable_function_tags, + extract_durable_execution_status, ) @@ -89,3 +90,72 @@ def test_returns_empty_dict_when_durable_execution_arn_cannot_be_parsed(self): def test_returns_empty_dict_when_event_is_empty(self): result = extract_durable_function_tags({}) self.assertEqual(result, {}) + + +class TestExtractDurableExecutionStatus(unittest.TestCase): + def test_returns_succeeded(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + response = {"Status": "SUCCEEDED", "Result": "some-result"} + self.assertEqual(extract_durable_execution_status(response, event), "SUCCEEDED") + + def test_returns_failed(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + response = {"Status": "FAILED", "Error": "some-error"} + self.assertEqual(extract_durable_execution_status(response, event), "FAILED") + + def test_returns_stopped(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + response = {"Status": "STOPPED"} + self.assertEqual(extract_durable_execution_status(response, event), "STOPPED") + + def test_returns_timed_out(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + response = {"Status": "TIMED_OUT"} + self.assertEqual(extract_durable_execution_status(response, event), "TIMED_OUT") + + def test_returns_none_for_non_durable_event(self): + event = {"key": "value"} + response = {"Status": "SUCCEEDED"} + self.assertIsNone(extract_durable_execution_status(response, event)) + + def test_returns_none_for_non_dict_response(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + self.assertIsNone(extract_durable_execution_status("string", event)) + + def test_returns_none_for_missing_status(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + response = {"Result": "some-result"} + self.assertIsNone(extract_durable_execution_status(response, event)) + + def test_returns_none_for_invalid_status(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + response = {"Status": "INVALID"} + self.assertIsNone(extract_durable_execution_status(response, event)) + + def test_returns_none_for_non_dict_event(self): + response = {"Status": "SUCCEEDED"} + self.assertIsNone(extract_durable_execution_status(response, "not-a-dict")) + + def test_returns_none_for_none_event(self): + response = {"Status": "SUCCEEDED"} + self.assertIsNone(extract_durable_execution_status(response, None)) + + def test_returns_none_for_none_response(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + self.assertIsNone(extract_durable_execution_status(None, event)) From 38cabf2f6fa25d99072b1571d1c329293305a21e Mon Sep 17 00:00:00 2001 From: Emmett Butler <723615+emmettbutler@users.noreply.github.com> Date: Fri, 27 Mar 2026 08:16:00 -0700 Subject: [PATCH 067/107] tiny increase of lambda layer size limit (#760) * tiny increase of lambda layer size limit * Update scripts/check_layer_size.sh Co-authored-by: Brett Langdon --------- Co-authored-by: Brett Langdon --- scripts/check_layer_size.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check_layer_size.sh b/scripts/check_layer_size.sh index ce67d92d..de9a8c4d 100755 --- a/scripts/check_layer_size.sh +++ b/scripts/check_layer_size.sh @@ -8,7 +8,7 @@ # Compares layer size to threshold, and fails if below that threshold set -e -MAX_LAYER_COMPRESSED_SIZE_KB=$(expr 9 \* 1024) # 9216 KB +MAX_LAYER_COMPRESSED_SIZE_KB=$(expr 9 \* 1024 + 15) # 9231 KB MAX_LAYER_UNCOMPRESSED_SIZE_KB=$(expr 25 \* 1024) # 25600 KB From 63f81be017154ceaf594dd46a1de6a745c53c510 Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Mon, 30 Mar 2026 17:16:16 -0400 Subject: [PATCH 068/107] chore: remove ddtrace patch.py files from layer (#763) chore: remove ddtrace patch.py files from layer version gate the patch.py file removing Apply suggestion from @brettlangdon Co-authored-by: brett.langdon --- Dockerfile | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6d9eb756..12e1f7ca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,10 +62,16 @@ RUN rm -rf \ # https://docs.python.org/3.11/using/cmdline.html#cmdoption-O # https://docs.python.org/3/using/cmdline.html#envvar-PYTHONNODEBUGRANGES RUN PYTHONNODEBUGRANGES=1 python -OO -m compileall -b ./python/lib/$runtime/site-packages -# remove all .py files except ddtrace/contrib/*/patch.py which are necessary -# for ddtrace.patch to discover instrumationation packages. -RUN find ./python/lib/$runtime/site-packages -name \*.py | grep -v ddtrace/contrib | xargs rm -rf -RUN find ./python/lib/$runtime/site-packages/ddtrace/contrib -name \*.py | grep -v patch.py | xargs rm -rf +# remove all .py files +# DEV: ddtrace>=4.7.0rc4 checks for .pyc files in addition to .py files for instrumentation +# discovery (DataDog/dd-trace-py#17196), so we can safely remove all .py files. +# For older versions, we need to keep patch.py files for instrumentation discovery. +RUN if python -c "from packaging.version import Version; import ddtrace; exit(0 if Version(ddtrace.__version__) >= Version('4.7.0rc3') else 1)"; then \ + find ./python/lib/$runtime/site-packages -name \*.py | xargs rm -rf; \ + else \ + find ./python/lib/$runtime/site-packages -name \*.py | grep -v ddtrace/contrib | xargs rm -rf && \ + find ./python/lib/$runtime/site-packages/ddtrace/contrib -name \*.py | grep -v patch.py | xargs rm -rf; \ + fi RUN find ./python/lib/$runtime/site-packages -name __pycache__ -type d -exec rm -r {} \+ # When building ddtrace from branch, remove extra source files. These are From ea8d01594abb24207feaef59c9d0047917adac67 Mon Sep 17 00:00:00 2001 From: Yiming Luo Date: Mon, 30 Mar 2026 17:24:08 -0400 Subject: [PATCH 069/107] feat: [SVLS-8493] rename durable function tags to use aws_lambda prefix (#757) * feat: [SVLS-8493] rename durable function execution tags to use aws.lambda prefix Co-Authored-By: Claude Sonnet 4.6 * feat: [SVLS-8493] use aws_lambda prefix for durable function tags Co-Authored-By: Claude Sonnet 4.6 --------- Co-authored-by: Claude Sonnet 4.6 --- datadog_lambda/durable.py | 4 ++-- tests/test_durable.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/datadog_lambda/durable.py b/datadog_lambda/durable.py index 3174cd6c..0064f9bc 100644 --- a/datadog_lambda/durable.py +++ b/datadog_lambda/durable.py @@ -44,8 +44,8 @@ def extract_durable_function_tags(event): execution_name, execution_id = parsed return { - "durable_function_execution_name": execution_name, - "durable_function_execution_id": execution_id, + "aws_lambda.durable_function.execution_name": execution_name, + "aws_lambda.durable_function.execution_id": execution_id, } diff --git a/tests/test_durable.py b/tests/test_durable.py index e668b45f..51a49a87 100644 --- a/tests/test_durable.py +++ b/tests/test_durable.py @@ -56,8 +56,8 @@ def test_extracts_tags_from_event_with_durable_execution_arn(self): self.assertEqual( result, { - "durable_function_execution_name": "my-execution", - "durable_function_execution_id": "550e8400-e29b-41d4-a716-446655440004", + "aws_lambda.durable_function.execution_name": "my-execution", + "aws_lambda.durable_function.execution_id": "550e8400-e29b-41d4-a716-446655440004", }, ) From f313c46ae1b7b0a33287771bbec5b08e9fccfdd2 Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Tue, 31 Mar 2026 09:22:36 -0400 Subject: [PATCH 070/107] ci: fix ddtrace version detection (#764) --- Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 12e1f7ca..329556c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,10 +63,12 @@ RUN rm -rf \ # https://docs.python.org/3/using/cmdline.html#envvar-PYTHONNODEBUGRANGES RUN PYTHONNODEBUGRANGES=1 python -OO -m compileall -b ./python/lib/$runtime/site-packages # remove all .py files -# DEV: ddtrace>=4.7.0rc4 checks for .pyc files in addition to .py files for instrumentation +# DEV: ddtrace>=4.7.0rc3 checks for .pyc files in addition to .py files for instrumentation # discovery (DataDog/dd-trace-py#17196), so we can safely remove all .py files. # For older versions, we need to keep patch.py files for instrumentation discovery. -RUN if python -c "from packaging.version import Version; import ddtrace; exit(0 if Version(ddtrace.__version__) >= Version('4.7.0rc3') else 1)"; then \ +RUN pip install --quiet packaging && \ + DDTRACE_VERSION=$(grep "^Version:" ./python/lib/$runtime/site-packages/ddtrace-*.dist-info/METADATA | awk '{print $2}') && \ + if python -c "from packaging.version import Version; exit(0 if Version('$DDTRACE_VERSION') >= Version('4.7.0rc3') else 1)"; then \ find ./python/lib/$runtime/site-packages -name \*.py | xargs rm -rf; \ else \ find ./python/lib/$runtime/site-packages -name \*.py | grep -v ddtrace/contrib | xargs rm -rf && \ From 354a07453d7adbb5f304e4ca9996464c7094af50 Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Tue, 31 Mar 2026 11:42:17 -0400 Subject: [PATCH 071/107] chore: remove all ddtrace ci viz paths from layer (#765) --- Dockerfile | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 329556c5..b5635dea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,7 +34,21 @@ RUN rm -rf ./python/lib/$runtime/site-packages/botocore* RUN rm -rf ./python/lib/$runtime/site-packages/setuptools RUN rm -rf ./python/lib/$runtime/site-packages/jsonschema/tests RUN rm -rf ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast -RUN rm -rf ./python/lib/$runtime/site-packages/ddtrace/internal/test_visibility +# CI Visibility paths/integrations +RUN rm -rf \ + ./python/lib/$runtime/site-packages/ddtrace/contrib/coverage/ \ + ./python/lib/$runtime/site-packages/ddtrace/contrib/pytest/ \ + ./python/lib/$runtime/site-packages/ddtrace/contrib/pytest_bdd/ \ + ./python/lib/$runtime/site-packages/ddtrace/contrib/pytest_benchmark/ \ + ./python/lib/$runtime/site-packages/ddtrace/contrib/selenium/ \ + ./python/lib/$runtime/site-packages/ddtrace/contrib/unittest/ \ + ./python/lib/$runtime/site-packages/ddtrace/ext/ci_visibility \ + ./python/lib/$runtime/site-packages/ddtrace/ext/test_visibility \ + ./python/lib/$runtime/site-packages/ddtrace/internal/ci_visibility \ + ./python/lib/$runtime/site-packages/ddtrace/internal/coverage \ + ./python/lib/$runtime/site-packages/ddtrace/internal/test_visibility \ + ./python/lib/$runtime/site-packages/ddtrace/testing/ + # Dogshell RUN rm -rf ./python/lib/$runtime/site-packages/datadog/dogshell RUN rm -rf ./python/lib/$runtime/site-packages/bin/dog* From d8a256537af6ffaa9cb05e22c797138455326e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:22:36 -0400 Subject: [PATCH 072/107] ci: migrate CI secrets from AWS SSM to Vault KV (#766) Move secret retrieval in get_secrets.sh from aws ssm get-parameter to vault kv get, aligning with the pattern used by datadog-lambda-js. --- ci/get_secrets.sh | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/ci/get_secrets.sh b/ci/get_secrets.sh index 9d9c957c..d854a9a4 100755 --- a/ci/get_secrets.sh +++ b/ci/get_secrets.sh @@ -21,21 +21,11 @@ fi printf "Getting AWS External ID...\n" -EXTERNAL_ID=$(aws ssm get-parameter \ - --region us-east-1 \ - --name "ci.datadog-lambda-python.$EXTERNAL_ID_NAME" \ - --with-decryption \ - --query "Parameter.Value" \ - --out text) +EXTERNAL_ID=$(vault kv get -field="$EXTERNAL_ID_NAME" kv/k8s/gitlab-runner/datadog-lambda-python/secrets) printf "Getting DD API KEY...\n" -export DD_API_KEY=$(aws ssm get-parameter \ - --region us-east-1 \ - --name ci.datadog-lambda-python.dd-api-key \ - --with-decryption \ - --query "Parameter.Value" \ - --out text) +export DD_API_KEY=$(vault kv get -field=dd-api-key kv/k8s/gitlab-runner/datadog-lambda-python/secrets) printf "Assuming role...\n" From c6c307eef460510684f4ecb108ea04b4a4c7c201 Mon Sep 17 00:00:00 2001 From: Emmett Butler <723615+emmettbutler@users.noreply.github.com> Date: Wed, 1 Apr 2026 11:59:44 -0700 Subject: [PATCH 073/107] use serverless-specific wheel in layer (#762) * use serverless-specific wheel in layer * missing underscore * change index * use proper wheel name * print search pattern * backward compatibility * backward compatibility * wrong copypasta * silly typo * debug output --- scripts/build_layers.sh | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 7456a38b..216ab617 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -98,6 +98,23 @@ function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } +function search_wheel { + # Args: [wheel base name] [index] + + WHEEL_BASENAME=$1 + INDEX=$2 + + SEARCH_PATTERN="${WHEEL_BASENAME}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" + INDEX_URL="${S3_BASE}/index-${INDEX}.html" + echo "Searching for wheel ${SEARCH_PATTERN}" + export WHEEL_FILE=$(curl -sSfL ${INDEX_URL} | grep -o "$SEARCH_PATTERN" | head -n 1) + if [ ! -z "${WHEEL_FILE}" ]; then + curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" + echo "Using S3 wheel: ${WHEEL_FILE}" + replace_ddtrace_dep "${WHEEL_BASENAME} = { file = \"${WHEEL_FILE}\" }" + fi +} + function docker_build_zip { # Args: [python version] [zip destination] @@ -122,15 +139,12 @@ function docker_build_zip { PLATFORM="manylinux2014_aarch64" fi PY_TAG="cp$(echo "$1" | tr -d '.')" - WHEEL_FILE=$(curl -sSfL "${S3_BASE}/index-manylinux2014.html" \ - | grep -o "ddtrace-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" \ - | head -n 1) + search_wheel "ddtrace_serverless" "serverless" + if [ -z "${WHEEL_FILE}" ]; then + search_wheel "ddtrace" "manylinux2014" + fi if [ -z "${WHEEL_FILE}" ]; then echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" - else - curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" - echo "Using S3 wheel: ${WHEEL_FILE}" - replace_ddtrace_dep "ddtrace = { file = \"${WHEEL_FILE}\" }" fi fi From 332e7315d663536f8efe9676ee99bacbbf723620 Mon Sep 17 00:00:00 2001 From: Emmett Butler <723615+emmettbutler@users.noreply.github.com> Date: Wed, 1 Apr 2026 13:21:58 -0700 Subject: [PATCH 074/107] more complete backward compatibility (#775) --- scripts/build_layers.sh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 216ab617..eabba101 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -116,21 +116,23 @@ function search_wheel { } function docker_build_zip { - # Args: [python version] [zip destination] + # Args: [python version] [zip destination] [wheel base name] [index] destination=$(make_path_absolute $2) arch=$3 + wheel_basename=$4 + index=$5 # Restore pyproject.toml to a clean state for each build iteration cp pyproject.toml.bak pyproject.toml # Replace ddtrace source if necessary if [ -n "$DD_TRACE_COMMIT" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" + replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" + replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" elif [ -n "$DD_TRACE_WHEEL" ]; then - replace_ddtrace_dep "ddtrace = { file = \"$DD_TRACE_WHEEL\" }" + replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" if [ "${arch}" = "amd64" ]; then @@ -139,10 +141,7 @@ function docker_build_zip { PLATFORM="manylinux2014_aarch64" fi PY_TAG="cp$(echo "$1" | tr -d '.')" - search_wheel "ddtrace_serverless" "serverless" - if [ -z "${WHEEL_FILE}" ]; then - search_wheel "ddtrace" "manylinux2014" - fi + search_wheel ${wheel_basename} ${index} if [ -z "${WHEEL_FILE}" ]; then echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" fi @@ -163,6 +162,7 @@ function docker_build_zip { rm -rf $temp_dir echo "Done creating archive $destination" + rm pyproject.toml.bak } rm -rf $LAYER_DIR @@ -173,7 +173,10 @@ do for architecture in "${ARCHS[@]}" do echo "Building layer for Python ${python_version} arch=${architecture}" - docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} + docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} "ddtrace_serverless" "serverless" || true + if [ -f pyproject.toml.bak ]; then # true means the previous attempt failed + docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} "ddtrace" "manylinux2014" + fi done done From a3f0640029679ed0a28e51be0eaf1a7b0edd6fa1 Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Thu, 2 Apr 2026 09:39:05 -0400 Subject: [PATCH 075/107] ci: revert PRs #762 and #775 (#776) * Revert "more complete backward compatibility (#775)" This reverts commit 332e7315d663536f8efe9676ee99bacbbf723620. * Revert "use serverless-specific wheel in layer (#762)" This reverts commit c6c307eef460510684f4ecb108ea04b4a4c7c201. --- scripts/build_layers.sh | 41 ++++++++++++----------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index eabba101..7456a38b 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -98,41 +98,22 @@ function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } -function search_wheel { - # Args: [wheel base name] [index] - - WHEEL_BASENAME=$1 - INDEX=$2 - - SEARCH_PATTERN="${WHEEL_BASENAME}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" - INDEX_URL="${S3_BASE}/index-${INDEX}.html" - echo "Searching for wheel ${SEARCH_PATTERN}" - export WHEEL_FILE=$(curl -sSfL ${INDEX_URL} | grep -o "$SEARCH_PATTERN" | head -n 1) - if [ ! -z "${WHEEL_FILE}" ]; then - curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" - echo "Using S3 wheel: ${WHEEL_FILE}" - replace_ddtrace_dep "${WHEEL_BASENAME} = { file = \"${WHEEL_FILE}\" }" - fi -} - function docker_build_zip { - # Args: [python version] [zip destination] [wheel base name] [index] + # Args: [python version] [zip destination] destination=$(make_path_absolute $2) arch=$3 - wheel_basename=$4 - index=$5 # Restore pyproject.toml to a clean state for each build iteration cp pyproject.toml.bak pyproject.toml # Replace ddtrace source if necessary if [ -n "$DD_TRACE_COMMIT" ]; then - replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then - replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" elif [ -n "$DD_TRACE_WHEEL" ]; then - replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" + replace_ddtrace_dep "ddtrace = { file = \"$DD_TRACE_WHEEL\" }" elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" if [ "${arch}" = "amd64" ]; then @@ -141,9 +122,15 @@ function docker_build_zip { PLATFORM="manylinux2014_aarch64" fi PY_TAG="cp$(echo "$1" | tr -d '.')" - search_wheel ${wheel_basename} ${index} + WHEEL_FILE=$(curl -sSfL "${S3_BASE}/index-manylinux2014.html" \ + | grep -o "ddtrace-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" \ + | head -n 1) if [ -z "${WHEEL_FILE}" ]; then echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" + else + curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" + echo "Using S3 wheel: ${WHEEL_FILE}" + replace_ddtrace_dep "ddtrace = { file = \"${WHEEL_FILE}\" }" fi fi @@ -162,7 +149,6 @@ function docker_build_zip { rm -rf $temp_dir echo "Done creating archive $destination" - rm pyproject.toml.bak } rm -rf $LAYER_DIR @@ -173,10 +159,7 @@ do for architecture in "${ARCHS[@]}" do echo "Building layer for Python ${python_version} arch=${architecture}" - docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} "ddtrace_serverless" "serverless" || true - if [ -f pyproject.toml.bak ]; then # true means the previous attempt failed - docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} "ddtrace" "manylinux2014" - fi + docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} done done From 55dc3f497930df620fd2e6bf739c36e35de7a69a Mon Sep 17 00:00:00 2001 From: Yiming Luo Date: Thu, 2 Apr 2026 14:20:37 -0400 Subject: [PATCH 076/107] feat: [SVLS-8720] Add span tag aws_lambda.durable_function.first_invocation (#747) * Add durable_function_first_invocation tag to aws.lambda spans Extends extract_durable_function_tags() to accept context.state and sets durable_function_first_invocation ("true"/"false") using not state.is_replaying(). wrapper._before() passes context.state to the function. Co-Authored-By: Claude Sonnet 4.6 * Add durable_function_first_invocation tag to aws.lambda spans Extends extract_durable_function_tags() to set durable_function_first_invocation ("true"/"false") by checking len(InitialExecutionState.Operations) <= 1, mirroring the SDK's own replay detection logic (ReplayStatus.REPLAY when len > 1). Co-Authored-By: Claude Sonnet 4.6 * Add comment * Change <= 1 to == 1 * Update comments * fmt * feat: [SVLS-8493] use aws_lambda prefix for durable function tags Co-Authored-By: Claude Sonnet 4.6 --------- Co-authored-by: Claude Sonnet 4.6 --- datadog_lambda/durable.py | 8 +++++++- tests/test_durable.py | 28 ++++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/datadog_lambda/durable.py b/datadog_lambda/durable.py index 0064f9bc..c77b43b0 100644 --- a/datadog_lambda/durable.py +++ b/datadog_lambda/durable.py @@ -41,11 +41,17 @@ def extract_durable_function_tags(event): if not parsed: logger.error("Failed to parse DurableExecutionArn: %s", durable_execution_arn) return {} - execution_name, execution_id = parsed + # Use the number of operations to determine if it's the first invocation. This is + # what the durable execution SDK does to determine the replay status. + operations = event.get("InitialExecutionState", {}).get("Operations", []) + is_first_invocation = len(operations) == 1 return { "aws_lambda.durable_function.execution_name": execution_name, "aws_lambda.durable_function.execution_id": execution_id, + "aws_lambda.durable_function.first_invocation": str( + is_first_invocation + ).lower(), } diff --git a/tests/test_durable.py b/tests/test_durable.py index 51a49a87..203548d1 100644 --- a/tests/test_durable.py +++ b/tests/test_durable.py @@ -46,11 +46,12 @@ def test_works_with_numeric_version_qualifier(self): class TestExtractDurableFunctionTags(unittest.TestCase): - def test_extracts_tags_from_event_with_durable_execution_arn(self): + def test_sets_first_invocation_true_when_only_execution_operation(self): + # One operation (the current EXECUTION operation itself) → not replaying → first invocation event = { "DurableExecutionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-func:1/durable-execution/my-execution/550e8400-e29b-41d4-a716-446655440004", "CheckpointToken": "some-token", - "InitialExecutionState": {"Operations": []}, + "InitialExecutionState": {"Operations": [{"OperationType": "EXECUTION"}]}, } result = extract_durable_function_tags(event) self.assertEqual( @@ -58,6 +59,29 @@ def test_extracts_tags_from_event_with_durable_execution_arn(self): { "aws_lambda.durable_function.execution_name": "my-execution", "aws_lambda.durable_function.execution_id": "550e8400-e29b-41d4-a716-446655440004", + "aws_lambda.durable_function.first_invocation": "true", + }, + ) + + def test_sets_first_invocation_false_when_multiple_operations(self): + # More than one operation → replaying → not first invocation + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-func:1/durable-execution/my-execution/550e8400-e29b-41d4-a716-446655440004", + "CheckpointToken": "some-token", + "InitialExecutionState": { + "Operations": [ + {"OperationType": "EXECUTION"}, + {"OperationType": "STEP"}, + ] + }, + } + result = extract_durable_function_tags(event) + self.assertEqual( + result, + { + "aws_lambda.durable_function.execution_name": "my-execution", + "aws_lambda.durable_function.execution_id": "550e8400-e29b-41d4-a716-446655440004", + "aws_lambda.durable_function.first_invocation": "false", }, ) From 88b4e1f8c4cf982e59b3eb89c79e98a34bd34e5b Mon Sep 17 00:00:00 2001 From: Jordan Storms Date: Thu, 2 Apr 2026 16:27:04 -0400 Subject: [PATCH 077/107] =?UTF-8?q?fix:=20remove=20return=20from=20finally?= =?UTF-8?q?=20block=20to=20resolve=20Python=203.14=20SyntaxWa=E2=80=A6=20(?= =?UTF-8?q?#767)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: remove return from finally block to resolve Python 3.14 SyntaxWarning Python 3.14 raises a SyntaxWarning for inside a block. Move the blocking_response return to after the try/except/finally in _LambdaDecorator.__call__, preserving all AppSec blocking execution paths. Add a regression test confirming handler exceptions still propagate when AppSec is enabled and no blocking response is active. Signed-off-by: Jordan * update snapshots Signed-off-by: Jordan * Co-authored-by: melissa.j.womack@gmail.com Signed-off-by: Jordan --------- Signed-off-by: Jordan Co-authored-by: Melissa Womack --- datadog_lambda/wrapper.py | 7 ++-- .../snapshots/logs/sync-metrics_python310.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python311.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python312.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python313.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python314.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python38.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python39.log | 40 +++++++++---------- tests/test_wrapper.py | 17 ++++++++ 9 files changed, 161 insertions(+), 143 deletions(-) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 36b00efd..f8eed8aa 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -191,7 +191,6 @@ def __call__(self, event, context, **kwargs): if self.blocking_response: return self.blocking_response self.response = self.func(event, context, **kwargs) - return self.response except BlockingException: self.blocking_response = get_asm_blocked_response(self.event_source) except Exception: @@ -204,8 +203,10 @@ def __call__(self, event, context, **kwargs): raise finally: self._after(event, context) - if self.blocking_response: - return self.blocking_response + + if self.blocking_response: + return self.blocking_response + return self.response def _inject_authorizer_span_headers(self, request_id): reference_span = self.inferred_span if self.inferred_span else self.span diff --git a/tests/integration/snapshots/logs/sync-metrics_python310.log b/tests/integration/snapshots/logs/sync-metrics_python310.log index 3747c3ae..757b6fc6 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python310.log +++ b/tests/integration/snapshots/logs/sync-metrics_python310.log @@ -75,6 +75,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -86,7 +87,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,6 +227,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -236,7 +237,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,6 +455,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -464,7 +465,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,6 +635,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -644,7 +645,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,6 +824,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -835,7 +836,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,6 +1015,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1024,7 +1025,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,6 +1211,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1220,7 +1221,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,6 +1396,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1405,7 +1406,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,6 +1580,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1589,7 +1590,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,6 +1770,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1781,7 +1782,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index b614b122..a6a3931a 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python311.log +++ b/tests/integration/snapshots/logs/sync-metrics_python311.log @@ -75,6 +75,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -86,7 +87,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,6 +227,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -236,7 +237,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,6 +455,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -464,7 +465,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,6 +635,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -644,7 +645,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,6 +824,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -835,7 +836,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,6 +1015,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1024,7 +1025,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,6 +1211,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1220,7 +1221,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,6 +1396,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1405,7 +1406,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,6 +1580,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1589,7 +1590,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,6 +1770,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1781,7 +1782,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index 593d9fbf..572fb9bd 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python312.log +++ b/tests/integration/snapshots/logs/sync-metrics_python312.log @@ -75,6 +75,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -86,7 +87,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,6 +227,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -236,7 +237,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,6 +455,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -464,7 +465,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,6 +635,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -644,7 +645,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,6 +824,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -835,7 +836,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,6 +1015,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1024,7 +1025,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,6 +1211,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1220,7 +1221,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,6 +1396,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1405,7 +1406,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,6 +1580,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1589,7 +1590,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,6 +1770,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1781,7 +1782,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index c21fcaad..b79ab7fe 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python313.log +++ b/tests/integration/snapshots/logs/sync-metrics_python313.log @@ -75,6 +75,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -86,7 +87,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,6 +227,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -236,7 +237,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,6 +455,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -464,7 +465,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,6 +635,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -644,7 +645,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,6 +824,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -835,7 +836,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,6 +1015,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1024,7 +1025,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,6 +1211,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1220,7 +1221,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,6 +1396,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1405,7 +1406,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,6 +1580,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1589,7 +1590,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,6 +1770,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1781,7 +1782,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log index 090c3cba..3e523a0f 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python314.log +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -75,6 +75,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -86,7 +87,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,6 +227,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -236,7 +237,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,6 +455,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -464,7 +465,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,6 +635,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -644,7 +645,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,6 +824,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -835,7 +836,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,6 +1015,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1024,7 +1025,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,6 +1211,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1220,7 +1221,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,6 +1396,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1405,7 +1406,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,6 +1580,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1589,7 +1590,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,6 +1770,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1781,7 +1782,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log index 32296126..9dd3f2c1 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python38.log +++ b/tests/integration/snapshots/logs/sync-metrics_python38.log @@ -75,6 +75,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -86,7 +87,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,6 +227,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -236,7 +237,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,6 +455,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -464,7 +465,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,6 +635,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -644,7 +645,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,6 +824,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -835,7 +836,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,6 +1015,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1024,7 +1025,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,6 +1211,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1220,7 +1221,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,6 +1396,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1405,7 +1406,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,6 +1580,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1589,7 +1590,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,6 +1770,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1781,7 +1782,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python39.log b/tests/integration/snapshots/logs/sync-metrics_python39.log index 1c1496d3..5fd09c8e 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python39.log +++ b/tests/integration/snapshots/logs/sync-metrics_python39.log @@ -75,6 +75,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -86,7 +87,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,6 +227,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -236,7 +237,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,6 +455,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -464,7 +465,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,6 +635,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -644,7 +645,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,6 +824,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -835,7 +836,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,6 +1015,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1024,7 +1025,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,6 +1211,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1220,7 +1221,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,6 +1396,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1405,7 +1406,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,6 +1580,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1589,7 +1590,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,6 +1770,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1781,7 +1782,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "202", + "http.status_code": "403", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 5b2afea8..b1aa1ae8 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -765,6 +765,23 @@ def lambda_handler(event, context): assert lambda_handler.span.get_tag("http.status_code") == "403" + def test_handler_exception_propagates_when_appsec_enabled(self): + # Regression guard: before the fix, `return` in the `finally` block + # would silently swallow handler exceptions when no blocking response + # was set, preventing them from reaching the caller. + self.mock_get_asm_blocking_response.return_value = None + + class HandlerError(Exception): + pass + + def lambda_handler(event, context): + raise HandlerError("handler error") + + lambda_handler = wrapper.datadog_lambda_wrapper(lambda_handler) + + with self.assertRaises(HandlerError): + lambda_handler(self.api_gateway_request, get_mock_context()) + def test_no_blocking_appsec_disabled(self): os.environ["DD_APPSEC_ENABLED"] = "false" From 8051f4496fb841f6c2c92788bfc9a66d25992a7e Mon Sep 17 00:00:00 2001 From: Emmett Butler <723615+emmettbutler@users.noreply.github.com> Date: Thu, 2 Apr 2026 14:03:37 -0700 Subject: [PATCH 078/107] Add ability to use ddtrace_serverless wheels in layer build (#777) * Revert "ci: revert PRs #762 and #775 (#776)" This reverts commit a3f0640029679ed0a28e51be0eaf1a7b0edd6fa1. * try a different way of checking success * refactor to only do docker build once * oh yeah * catch error code * bite the proverbial bullet * *shakes fist* ....bash!!! * more handling * debug output * construct basename when given a wheel directly * handle dotslash in basename --- scripts/build_layers.sh | 57 +++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 14 deletions(-) diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 7456a38b..b3f73385 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -91,6 +91,7 @@ trap cleanup EXIT # Helper: replace the multi-line ddtrace dependency in pyproject.toml. # Uses perl instead of sed -z for macOS/Linux portability. replace_ddtrace_dep() { + echo "Replacing dep with $1" perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml } @@ -98,22 +99,41 @@ function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } -function docker_build_zip { - # Args: [python version] [zip destination] +function search_wheel { + # Args: [wheel base name] [index] - destination=$(make_path_absolute $2) - arch=$3 + WHEEL_BASENAME=$1 + INDEX=$2 + + SEARCH_PATTERN="${WHEEL_BASENAME}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" + INDEX_URL="${S3_BASE}/index-${INDEX}.html" + echo "Searching for wheel ${SEARCH_PATTERN}" + export WHEEL_FILE=$(curl -sSfL ${INDEX_URL} | grep -o "$SEARCH_PATTERN" | head -n 1) + if [ ! -z "${WHEEL_FILE}" ]; then + curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" + echo "Using S3 wheel: ${WHEEL_FILE}" + replace_ddtrace_dep "${WHEEL_BASENAME} = { file = \"${WHEEL_FILE}\" }" + fi +} + +function find_and_spec_wheel { + # Args: [python version] [wheel base name] [index] + + arch=$2 + wheel_basename=$3 + index=$4 # Restore pyproject.toml to a clean state for each build iteration cp pyproject.toml.bak pyproject.toml # Replace ddtrace source if necessary if [ -n "$DD_TRACE_COMMIT" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" + replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" + replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" elif [ -n "$DD_TRACE_WHEEL" ]; then - replace_ddtrace_dep "ddtrace = { file = \"$DD_TRACE_WHEEL\" }" + wheel_basename=$(sed 's/^\.\///' <<< ${DD_TRACE_WHEEL%%-*}) + replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" if [ "${arch}" = "amd64" ]; then @@ -122,18 +142,19 @@ function docker_build_zip { PLATFORM="manylinux2014_aarch64" fi PY_TAG="cp$(echo "$1" | tr -d '.')" - WHEEL_FILE=$(curl -sSfL "${S3_BASE}/index-manylinux2014.html" \ - | grep -o "ddtrace-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" \ - | head -n 1) + search_wheel ${wheel_basename} ${index} if [ -z "${WHEEL_FILE}" ]; then echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" - else - curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" - echo "Using S3 wheel: ${WHEEL_FILE}" - replace_ddtrace_dep "ddtrace = { file = \"${WHEEL_FILE}\" }" + return 1 fi fi +} + +function docker_build_zip { + # Args: [python version] [zip destination] + destination=$(make_path_absolute $2) + arch=$3 # Install datadogpy in a docker container to avoid the mess from switching # between different python runtimes. temp_dir=$(mktemp -d) @@ -159,6 +180,14 @@ do for architecture in "${ARCHS[@]}" do echo "Building layer for Python ${python_version} arch=${architecture}" + set +e + find_and_spec_wheel ${python_version} ${architecture} "ddtrace_serverless" "serverless" + FAILURE=$? + if [ $FAILURE != 0 ]; then + echo "Attempting layer build again with package ddtrace" + find_and_spec_wheel ${python_version} ${architecture} "ddtrace" "manylinux2014" + fi + set -e docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} done done From db826eb82fa7de85cc701880e1c58e9a98104a7a Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Fri, 3 Apr 2026 10:29:52 -0400 Subject: [PATCH 079/107] =?UTF-8?q?Revert=20"fix:=20remove=20return=20from?= =?UTF-8?q?=20finally=20block=20to=20resolve=20Python=203.14=20SyntaxWa?= =?UTF-8?q?=E2=80=A6"=20(#780)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 88b4e1f8c4cf982e59b3eb89c79e98a34bd34e5b. --- datadog_lambda/wrapper.py | 7 ++-- .../snapshots/logs/sync-metrics_python310.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python311.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python312.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python313.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python314.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python38.log | 40 +++++++++---------- .../snapshots/logs/sync-metrics_python39.log | 40 +++++++++---------- tests/test_wrapper.py | 17 -------- 9 files changed, 143 insertions(+), 161 deletions(-) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index f8eed8aa..36b00efd 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -191,6 +191,7 @@ def __call__(self, event, context, **kwargs): if self.blocking_response: return self.blocking_response self.response = self.func(event, context, **kwargs) + return self.response except BlockingException: self.blocking_response = get_asm_blocked_response(self.event_source) except Exception: @@ -203,10 +204,8 @@ def __call__(self, event, context, **kwargs): raise finally: self._after(event, context) - - if self.blocking_response: - return self.blocking_response - return self.response + if self.blocking_response: + return self.blocking_response def _inject_authorizer_span_headers(self, request_id): reference_span = self.inferred_span if self.inferred_span else self.span diff --git a/tests/integration/snapshots/logs/sync-metrics_python310.log b/tests/integration/snapshots/logs/sync-metrics_python310.log index 757b6fc6..3747c3ae 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python310.log +++ b/tests/integration/snapshots/logs/sync-metrics_python310.log @@ -75,7 +75,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -87,6 +86,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,7 +227,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -237,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,7 +455,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -465,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,7 +635,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -645,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,7 +824,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -836,6 +835,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,7 +1015,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1025,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,7 +1211,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1221,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,7 +1396,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1406,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,7 +1580,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1590,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,7 +1770,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1782,6 +1781,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index a6a3931a..b614b122 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python311.log +++ b/tests/integration/snapshots/logs/sync-metrics_python311.log @@ -75,7 +75,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -87,6 +86,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,7 +227,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -237,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,7 +455,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -465,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,7 +635,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -645,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,7 +824,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -836,6 +835,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,7 +1015,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1025,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,7 +1211,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1221,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,7 +1396,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1406,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,7 +1580,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1590,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,7 +1770,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1782,6 +1781,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index 572fb9bd..593d9fbf 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python312.log +++ b/tests/integration/snapshots/logs/sync-metrics_python312.log @@ -75,7 +75,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -87,6 +86,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,7 +227,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -237,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,7 +455,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -465,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,7 +635,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -645,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,7 +824,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -836,6 +835,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,7 +1015,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1025,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,7 +1211,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1221,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,7 +1396,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1406,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,7 +1580,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1590,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,7 +1770,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1782,6 +1781,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index b79ab7fe..c21fcaad 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python313.log +++ b/tests/integration/snapshots/logs/sync-metrics_python313.log @@ -75,7 +75,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -87,6 +86,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,7 +227,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -237,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,7 +455,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -465,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,7 +635,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -645,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,7 +824,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -836,6 +835,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,7 +1015,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1025,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,7 +1211,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1221,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,7 +1396,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1406,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,7 +1580,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1590,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,7 +1770,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1782,6 +1781,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log index 3e523a0f..090c3cba 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python314.log +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -75,7 +75,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -87,6 +86,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,7 +227,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -237,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,7 +455,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -465,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,7 +635,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -645,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,7 +824,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -836,6 +835,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,7 +1015,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1025,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,7 +1211,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1221,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,7 +1396,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1406,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,7 +1580,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1590,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,7 +1770,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1782,6 +1781,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log index 9dd3f2c1..32296126 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python38.log +++ b/tests/integration/snapshots/logs/sync-metrics_python38.log @@ -75,7 +75,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -87,6 +86,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,7 +227,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -237,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,7 +455,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -465,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,7 +635,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -645,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,7 +824,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -836,6 +835,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,7 +1015,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1025,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,7 +1211,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1221,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,7 +1396,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1406,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,7 +1580,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1590,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,7 +1770,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", @@ -1782,6 +1781,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/integration/snapshots/logs/sync-metrics_python39.log b/tests/integration/snapshots/logs/sync-metrics_python39.log index 5fd09c8e..1c1496d3 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python39.log +++ b/tests/integration/snapshots/logs/sync-metrics_python39.log @@ -75,7 +75,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -87,6 +86,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -174,7 +174,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -227,7 +227,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -237,6 +236,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "language": "python" }, "metrics": { @@ -322,7 +322,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -455,7 +455,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -465,6 +464,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -550,7 +550,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -635,7 +635,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -645,6 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -729,7 +729,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -824,7 +824,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -836,6 +835,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -923,7 +923,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1015,7 +1015,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1025,6 +1024,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1110,7 +1110,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1211,7 +1211,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1221,6 +1220,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1306,7 +1306,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1396,7 +1396,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1406,6 +1405,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1491,7 +1491,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1580,7 +1580,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1590,6 +1589,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", + "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1675,7 +1675,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", @@ -1770,7 +1770,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", - "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", @@ -1782,6 +1781,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1867,7 +1867,7 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.method": "POST", "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "out.host": "api.datadoghq.com", - "http.status_code": "403", + "http.status_code": "202", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index b1aa1ae8..5b2afea8 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -765,23 +765,6 @@ def lambda_handler(event, context): assert lambda_handler.span.get_tag("http.status_code") == "403" - def test_handler_exception_propagates_when_appsec_enabled(self): - # Regression guard: before the fix, `return` in the `finally` block - # would silently swallow handler exceptions when no blocking response - # was set, preventing them from reaching the caller. - self.mock_get_asm_blocking_response.return_value = None - - class HandlerError(Exception): - pass - - def lambda_handler(event, context): - raise HandlerError("handler error") - - lambda_handler = wrapper.datadog_lambda_wrapper(lambda_handler) - - with self.assertRaises(HandlerError): - lambda_handler(self.api_gateway_request, get_mock_context()) - def test_no_blocking_appsec_disabled(self): os.environ["DD_APPSEC_ENABLED"] = "false" From c43d2b23cb2c0dab1f428a2727f4612d5e55ce4e Mon Sep 17 00:00:00 2001 From: Emmett Butler <723615+emmettbutler@users.noreply.github.com> Date: Fri, 3 Apr 2026 07:42:31 -0700 Subject: [PATCH 080/107] handle any preceding directory name (#778) --- scripts/build_layers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index b3f73385..8cdfc153 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -132,7 +132,7 @@ function find_and_spec_wheel { elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" elif [ -n "$DD_TRACE_WHEEL" ]; then - wheel_basename=$(sed 's/^\.\///' <<< ${DD_TRACE_WHEEL%%-*}) + wheel_basename=$(sed 's/^.*\///' <<< ${DD_TRACE_WHEEL%%-*}) replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" From 3883ffd51ba5f6c7a007b88258cd942516bebdfe Mon Sep 17 00:00:00 2001 From: pablomartinezbernardo <134320516+pablomartinezbernardo@users.noreply.github.com> Date: Mon, 6 Apr 2026 16:24:30 +0200 Subject: [PATCH 081/107] fix: negative duration on aws.apigateway.authorizer span (#782) --- datadog_lambda/tracing.py | 16 ++++------ .../authorizer-request-api-gateway-v1.json | 2 +- tests/test_tracing.py | 32 +++++++++++++++++++ 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index da4c9dd3..3c7d9f11 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -977,16 +977,12 @@ def process_injected_data(event, request_time_epoch_ms, args, tags): start_time_ns = int( injected_authorizer_data.get(Headers.Parent_Span_Finish_Time) ) - finish_time_ns = ( - request_time_epoch_ms - + ( - int( - event["requestContext"]["authorizer"].get( - "integrationLatency", 0 - ) - ) - ) - ) * 1e6 + integration_latency = int( + event["requestContext"]["authorizer"].get("integrationLatency", 0) + ) + finish_time_ns = max( + start_time_ns, (request_time_epoch_ms + integration_latency) * 1e6 + ) upstream_authorizer_span = insert_upstream_authorizer_span( args, tags, start_time_ns, finish_time_ns ) diff --git a/tests/event_samples/authorizer-request-api-gateway-v1.json b/tests/event_samples/authorizer-request-api-gateway-v1.json index d14b7aa0..7496c5ed 100644 --- a/tests/event_samples/authorizer-request-api-gateway-v1.json +++ b/tests/event_samples/authorizer-request-api-gateway-v1.json @@ -55,7 +55,7 @@ "requestContext": { "resourceId": "0et54l", "authorizer": { - "_datadog": "eyJ4LWRhdGFkb2ctdHJhY2UtaWQiOiAiMTM0Nzg3MDU5OTU3OTcyMjEyMDkiLCAieC1kYXRhZG9nLXBhcmVudC1pZCI6ICI4NDcxMjg4MjYzMzg0MjE2ODk2IiwgIngtZGF0YWRvZy1zYW1wbGluZy1wcmlvcml0eSI6ICIxIiwgIngtZGF0YWRvZy1wYXJlbnQtc3Bhbi1maW5pc2gtdGltZSI6IDE2NjMyOTUwMjE4MjcuNTIxLCAieC1kYXRhZG9nLWF1dGhvcml6aW5nLXJlcXVlc3RpZCI6ICJhYmMxMjMifQ==", + "_datadog": "eyJ4LWRhdGFkb2ctdHJhY2UtaWQiOiAiMTM0Nzg3MDU5OTU3OTcyMjEyMDkiLCAieC1kYXRhZG9nLXBhcmVudC1pZCI6ICI4NDcxMjg4MjYzMzg0MjE2ODk2IiwgIngtZGF0YWRvZy1zYW1wbGluZy1wcmlvcml0eSI6ICIxIiwgIngtZGF0YWRvZy1wYXJlbnQtc3Bhbi1maW5pc2gtdGltZSI6IDE2NjMyOTUwMjE4Mjc1MjEwMDAsICJ4LWRhdGFkb2ctYXV0aG9yaXppbmctcmVxdWVzdGlkIjogImFiYzEyMyJ9", "scope": "this is just a string", "principalId": "foo", "integrationLatency": 1897 diff --git a/tests/test_tracing.py b/tests/test_tracing.py index ec78265a..3a3d9e89 100644 --- a/tests/test_tracing.py +++ b/tests/test_tracing.py @@ -2408,6 +2408,38 @@ def test_create_inferred_span(mock_span_finish, source, expect): assert mock_span_finish.call_count == 0 +@patch("ddtrace.trace.Span.finish", autospec=True) +def test_authorizer_span_no_negative_duration_when_clock_skew(mock_span_finish): + """ + Simulate the case where requestTimeEpoch + integrationLatency < parentSpanFinishTime + (i.e., API Gateway's reported end is before the authorizer lambda's self-reported finish). + This 1ms discrepancy would produce a negative duration. + """ + with open(f"{event_samples}authorizer-request-api-gateway-v1.json") as f: + event = json.load(f) + + authorizer_ctx = json.loads( + base64.b64decode(event["requestContext"]["authorizer"]["_datadog"]) + ) + parent_finish_time_ns = authorizer_ctx["x-datadog-parent-span-finish-time"] + request_time_epoch_ms = event["requestContext"]["requestTimeEpoch"] + # Set integrationLatency 1ms below the parent span's finish time to simulate clock skew. + event["requestContext"]["authorizer"]["integrationLatency"] = ( + parent_finish_time_ns // 1_000_000 - request_time_epoch_ms - 1 + ) + + ctx = get_mock_context(aws_request_id="123") + create_inferred_span(event, ctx) + + args = mock_span_finish.call_args_list[0].args + authorizer_span, finish_time = args[0], args[1] + + assert finish_time >= authorizer_span.start, ( + f"Authorizer span has negative duration: " + f"finish_time={finish_time} < start={authorizer_span.start}" + ) + + class TestInferredSpans(unittest.TestCase): @patch("datadog_lambda.tracing.submit_errors_metric") def test_mark_trace_as_error_for_5xx_responses_getting_400_response_code( From 8badbdb9b9bd4c197e81351ab678395c834187a2 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 6 Apr 2026 13:47:27 -0400 Subject: [PATCH 082/107] fix: remove return from finally block to resolve Python 3.14 SyntaxWarning (#783) * test * linting * Adding coauthor Co-authored-by: Melissa Womack --------- Co-authored-by: Melissa Womack --- datadog_lambda/wrapper.py | 6 +++--- tests/test_wrapper.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 36b00efd..767816a5 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -191,7 +191,6 @@ def __call__(self, event, context, **kwargs): if self.blocking_response: return self.blocking_response self.response = self.func(event, context, **kwargs) - return self.response except BlockingException: self.blocking_response = get_asm_blocked_response(self.event_source) except Exception: @@ -204,8 +203,9 @@ def __call__(self, event, context, **kwargs): raise finally: self._after(event, context) - if self.blocking_response: - return self.blocking_response + if self.blocking_response: + return self.blocking_response + return self.response def _inject_authorizer_span_headers(self, request_id): reference_span = self.inferred_span if self.inferred_span else self.span diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 5b2afea8..b1aa1ae8 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -765,6 +765,23 @@ def lambda_handler(event, context): assert lambda_handler.span.get_tag("http.status_code") == "403" + def test_handler_exception_propagates_when_appsec_enabled(self): + # Regression guard: before the fix, `return` in the `finally` block + # would silently swallow handler exceptions when no blocking response + # was set, preventing them from reaching the caller. + self.mock_get_asm_blocking_response.return_value = None + + class HandlerError(Exception): + pass + + def lambda_handler(event, context): + raise HandlerError("handler error") + + lambda_handler = wrapper.datadog_lambda_wrapper(lambda_handler) + + with self.assertRaises(HandlerError): + lambda_handler(self.api_gateway_request, get_mock_context()) + def test_no_blocking_appsec_disabled(self): os.environ["DD_APPSEC_ENABLED"] = "false" From 2c57e69cfdbf881b19ab14e11ea0ae564327327e Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 6 Apr 2026 16:14:24 -0400 Subject: [PATCH 083/107] Migrate e2e status to short-lived token (#784) * Migrate e2e status to short-lived token * Executable mode --- ci/input_files/build.yaml.tpl | 29 ++------------------------ ci/poll_e2e.sh | 38 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 27 deletions(-) create mode 100755 ci/poll_e2e.sh diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 67f13706..420eea64 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -285,30 +285,5 @@ e2e-test-status: - if: '$SKIP_E2E_TESTS == "true"' when: never - when: on_success - script: | - GITLAB_API_TOKEN=$(aws ssm get-parameter --region us-east-1 --name "ci.${CI_PROJECT_NAME}.serverless-e2e-gitlab-token" --with-decryption --query "Parameter.Value" --out text) - URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/pipelines/${CI_PIPELINE_ID}/bridges" - echo "Fetching E2E job status from: $URL" - while true; do - RESPONSE=$(curl -s --header "PRIVATE-TOKEN: ${GITLAB_API_TOKEN}" "$URL") - E2E_JOB_STATUS=$(echo "$RESPONSE" | jq -r '.[] | select(.name=="e2e-test") | .downstream_pipeline.status') - echo -n "E2E job status: $E2E_JOB_STATUS, " - if [ "$E2E_JOB_STATUS" == "success" ]; then - echo "✅ E2E tests completed successfully" - exit 0 - elif [ "$E2E_JOB_STATUS" == "failed" ]; then - echo "❌ E2E tests failed" - exit 1 - elif [ "$E2E_JOB_STATUS" == "running" ]; then - echo "⏳ E2E tests are still running, retrying in 1 minute..." - elif [ "$E2E_JOB_STATUS" == "canceled" ]; then - echo "🚫 E2E tests were canceled" - exit 1 - elif [ "$E2E_JOB_STATUS" == "skipped" ]; then - echo "⏭️ E2E tests were skipped" - exit 0 - else - echo "❓ Unknown E2E test status: $E2E_JOB_STATUS, retrying in 1 minute..." - fi - sleep 60 - done + script: + - ci/poll_e2e.sh diff --git a/ci/poll_e2e.sh b/ci/poll_e2e.sh new file mode 100755 index 00000000..3d56926a --- /dev/null +++ b/ci/poll_e2e.sh @@ -0,0 +1,38 @@ +curl -OL "binaries.ddbuild.io/dd-source/authanywhere/LATEST/authanywhere-linux-amd64" && mv "authanywhere-linux-amd64" /bin/authanywhere && chmod +x /bin/authanywhere + +BTI_CI_API_TOKEN=$(authanywhere --audience rapid-devex-ci) + +BTI_RESPONSE=$(curl --silent --request GET \ + --header "$BTI_CI_API_TOKEN" \ + --header "Content-Type: application/vnd.api+json" \ + "https://bti-ci-api.us1.ddbuild.io/internal/ci/gitlab/token?owner=DataDog&repository=datadog-lambda-python") + +GITLAB_TOKEN=$(echo "$BTI_RESPONSE" | jq -r '.token // empty') + +URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/pipelines/${CI_PIPELINE_ID}/bridges" + +echo "Fetching E2E job status from: $URL" + +while true; do + RESPONSE=$(curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" "$URL") + E2E_JOB_STATUS=$(echo "$RESPONSE" | jq -r '.[] | select(.name=="e2e-test") | .downstream_pipeline.status') + echo -n "E2E job status: $E2E_JOB_STATUS, " + if [ "$E2E_JOB_STATUS" == "success" ]; then + echo "✅ E2E tests completed successfully" + exit 0 + elif [ "$E2E_JOB_STATUS" == "failed" ]; then + echo "❌ E2E tests failed" + exit 1 + elif [ "$E2E_JOB_STATUS" == "running" ]; then + echo "⏳ E2E tests are still running, retrying in 2 minutes..." + elif [ "$E2E_JOB_STATUS" == "canceled" ]; then + echo "🚫 E2E tests were canceled" + exit 1 + elif [ "$E2E_JOB_STATUS" == "skipped" ]; then + echo "⏭️ E2E tests were skipped" + exit 0 + else + echo "❓ Unknown E2E test status: $E2E_JOB_STATUS, retrying in 2 minutes..." + fi + sleep 120 +done \ No newline at end of file From affe9c78f77625c96409dda5a9c28aa47b1c9891 Mon Sep 17 00:00:00 2001 From: Alberto Vara Date: Tue, 7 Apr 2026 09:36:21 +0200 Subject: [PATCH 084/107] Remove unused ddtrace appsec packages (#761) * Remove unused ddtrace appsec packages Remove additional ddtrace appsec packages from site-packages. * Update Dockerfile Co-authored-by: Brett Langdon --------- Co-authored-by: Brett Langdon --- Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b5635dea..1e112f81 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,13 @@ RUN pip install --no-cache-dir . -t ./python/lib/$runtime/site-packages RUN rm -rf ./python/lib/$runtime/site-packages/botocore* RUN rm -rf ./python/lib/$runtime/site-packages/setuptools RUN rm -rf ./python/lib/$runtime/site-packages/jsonschema/tests -RUN rm -rf ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast + +# Remove unsupported appsec modules +RUN rm -rf \ + ./python/lib/$runtime/site-packages/ddtrace/appsec/_iast \ + ./python/lib/$runtime/site-packages/ddtrace/appsec/sca \ + ./python/lib/$runtime/site-packages/ddtrace/appsec/_shared + # CI Visibility paths/integrations RUN rm -rf \ ./python/lib/$runtime/site-packages/ddtrace/contrib/coverage/ \ From 81d57acb951c1f37241b67b549963da4b1611949 Mon Sep 17 00:00:00 2001 From: Joey Zhao <5253430+joeyzhao2018@users.noreply.github.com> Date: Thu, 9 Apr 2026 11:19:19 -0400 Subject: [PATCH 085/107] fix: Bump ujson minimum version to 5.10.0 (#787) * fix CVE-2026-32874 and CVE-2026-32875 * split the ujson constraint by Python version --- pyproject.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f289867c..ec95a738 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,10 @@ ddtrace = [ {version = ">=3.19.1,<4", python = ">=3.8,<3.10"}, {version = ">=4.1.1,<5,!=4.6.*", python = ">=3.10"} ] -ujson = ">=5.9.0" +ujson = [ + {version = ">=5.10.0,<5.12.0", python = ">=3.8,<3.10"}, + {version = ">=5.12.0", python = ">=3.10"} +] botocore = { version = "^1.34.0", optional = true } requests = { version ="^2.22.0", optional = true } pytest = { version= "^8.0.0", optional = true } From 5e8feaa4ad7bd9a12c8d5891847fcfed9f868fa1 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 13 Apr 2026 12:39:23 -0400 Subject: [PATCH 086/107] Update integration test snapshots (#792) * Updated integration test snapshots * remove extra file --- .../logs/async-metrics_python310.log | 50 +++++++----- .../logs/async-metrics_python311.log | 50 +++++++----- .../logs/async-metrics_python312.log | 50 +++++++----- .../logs/async-metrics_python313.log | 50 +++++++----- .../logs/async-metrics_python314.log | 50 +++++++----- .../snapshots/logs/sync-metrics_python310.log | 80 ++++++++++++------- .../snapshots/logs/sync-metrics_python311.log | 80 ++++++++++++------- .../snapshots/logs/sync-metrics_python312.log | 80 ++++++++++++------- .../snapshots/logs/sync-metrics_python313.log | 80 ++++++++++++------- .../snapshots/logs/sync-metrics_python314.log | 80 ++++++++++++------- 10 files changed, 400 insertions(+), 250 deletions(-) diff --git a/tests/integration/snapshots/logs/async-metrics_python310.log b/tests/integration/snapshots/logs/async-metrics_python310.log index 8d47fa12..5aef301e 100644 --- a/tests/integration/snapshots/logs/async-metrics_python310.log +++ b/tests/integration/snapshots/logs/async-metrics_python310.log @@ -73,7 +73,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -95,6 +96,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -106,7 +108,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -228,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -237,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -383,7 +385,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -437,6 +440,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -446,7 +450,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -576,7 +579,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -598,6 +602,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -607,7 +612,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -746,7 +750,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -768,6 +773,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -779,7 +785,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -918,7 +923,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -940,6 +946,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -949,7 +956,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1083,7 +1089,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1117,6 +1124,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -1126,7 +1134,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1261,7 +1268,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1283,6 +1291,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -1292,7 +1301,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1426,7 +1434,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1448,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -1457,7 +1467,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1597,7 +1606,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1619,6 +1629,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", @@ -1630,7 +1641,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python311.log b/tests/integration/snapshots/logs/async-metrics_python311.log index 3a2dd243..d662cb7a 100644 --- a/tests/integration/snapshots/logs/async-metrics_python311.log +++ b/tests/integration/snapshots/logs/async-metrics_python311.log @@ -73,7 +73,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -95,6 +96,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -106,7 +108,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -228,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -237,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -383,7 +385,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -437,6 +440,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -446,7 +450,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -576,7 +579,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -598,6 +602,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -607,7 +612,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -746,7 +750,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -768,6 +773,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -779,7 +785,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -918,7 +923,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -940,6 +946,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -949,7 +956,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1083,7 +1089,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1117,6 +1124,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -1126,7 +1134,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1261,7 +1268,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1283,6 +1291,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -1292,7 +1301,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1426,7 +1434,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1448,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -1457,7 +1467,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1597,7 +1606,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1619,6 +1629,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", @@ -1630,7 +1641,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python312.log b/tests/integration/snapshots/logs/async-metrics_python312.log index 91021815..0e492dac 100644 --- a/tests/integration/snapshots/logs/async-metrics_python312.log +++ b/tests/integration/snapshots/logs/async-metrics_python312.log @@ -73,7 +73,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -95,6 +96,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -106,7 +108,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -228,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -237,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -383,7 +385,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -437,6 +440,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -446,7 +450,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -576,7 +579,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -598,6 +602,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -607,7 +612,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -746,7 +750,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -768,6 +773,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -779,7 +785,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -918,7 +923,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -940,6 +946,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -949,7 +956,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1083,7 +1089,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1117,6 +1124,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -1126,7 +1134,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1261,7 +1268,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1283,6 +1291,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -1292,7 +1301,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1426,7 +1434,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1448,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -1457,7 +1467,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1597,7 +1606,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1619,6 +1629,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", @@ -1630,7 +1641,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python313.log b/tests/integration/snapshots/logs/async-metrics_python313.log index 41008f65..6466246c 100644 --- a/tests/integration/snapshots/logs/async-metrics_python313.log +++ b/tests/integration/snapshots/logs/async-metrics_python313.log @@ -73,7 +73,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -95,6 +96,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -106,7 +108,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -228,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -237,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -383,7 +385,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -437,6 +440,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -446,7 +450,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -576,7 +579,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -598,6 +602,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -607,7 +612,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -746,7 +750,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -768,6 +773,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -779,7 +785,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -918,7 +923,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -940,6 +946,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -949,7 +956,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1083,7 +1089,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1117,6 +1124,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -1126,7 +1134,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1261,7 +1268,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1283,6 +1291,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -1292,7 +1301,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1426,7 +1434,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1448,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -1457,7 +1467,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1597,7 +1606,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1619,6 +1629,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", @@ -1630,7 +1641,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, diff --git a/tests/integration/snapshots/logs/async-metrics_python314.log b/tests/integration/snapshots/logs/async-metrics_python314.log index c6979758..2ff4a6c1 100644 --- a/tests/integration/snapshots/logs/async-metrics_python314.log +++ b/tests/integration/snapshots/logs/async-metrics_python314.log @@ -73,7 +73,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -95,6 +96,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -106,7 +108,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -228,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -237,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -383,7 +385,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -437,6 +440,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -446,7 +450,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -576,7 +579,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -598,6 +602,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -607,7 +612,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -746,7 +750,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -768,6 +773,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -779,7 +785,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -918,7 +923,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -940,6 +946,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -949,7 +956,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1083,7 +1089,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1117,6 +1124,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -1126,7 +1134,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1261,7 +1268,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1283,6 +1291,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -1292,7 +1301,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1426,7 +1434,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1448,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -1457,7 +1467,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1597,7 +1606,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1619,6 +1629,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", @@ -1630,7 +1641,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, diff --git a/tests/integration/snapshots/logs/sync-metrics_python310.log b/tests/integration/snapshots/logs/sync-metrics_python310.log index 3747c3ae..997cc0e3 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python310.log +++ b/tests/integration/snapshots/logs/sync-metrics_python310.log @@ -53,7 +53,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -75,6 +76,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -86,7 +88,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -178,7 +179,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -227,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -236,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -326,7 +329,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -401,7 +405,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -455,6 +460,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -464,7 +470,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -554,7 +559,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -613,7 +619,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -635,6 +642,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -644,7 +652,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -733,7 +740,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -802,7 +810,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -824,6 +833,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -835,7 +845,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -927,7 +936,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -993,7 +1003,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1015,6 +1026,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1024,7 +1036,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1114,7 +1125,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1177,7 +1189,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1211,6 +1224,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1220,7 +1234,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1310,7 +1323,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1374,7 +1388,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1396,6 +1411,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1405,7 +1421,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1495,7 +1510,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1558,7 +1574,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1580,6 +1597,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1589,7 +1607,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1679,7 +1696,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1748,7 +1766,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1770,6 +1789,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", @@ -1781,7 +1801,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1871,7 +1890,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, diff --git a/tests/integration/snapshots/logs/sync-metrics_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index b614b122..4880a904 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python311.log +++ b/tests/integration/snapshots/logs/sync-metrics_python311.log @@ -53,7 +53,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -75,6 +76,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -86,7 +88,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -178,7 +179,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -227,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -236,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -326,7 +329,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -401,7 +405,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -455,6 +460,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -464,7 +470,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -554,7 +559,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -613,7 +619,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -635,6 +642,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -644,7 +652,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -733,7 +740,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -802,7 +810,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -824,6 +833,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -835,7 +845,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -927,7 +936,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -993,7 +1003,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1015,6 +1026,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1024,7 +1036,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1114,7 +1125,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1177,7 +1189,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1211,6 +1224,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1220,7 +1234,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1310,7 +1323,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1374,7 +1388,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1396,6 +1411,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1405,7 +1421,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1495,7 +1510,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1558,7 +1574,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1580,6 +1597,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1589,7 +1607,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1679,7 +1696,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1748,7 +1766,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1770,6 +1789,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", @@ -1781,7 +1801,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1871,7 +1890,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, diff --git a/tests/integration/snapshots/logs/sync-metrics_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index 593d9fbf..0ed8cb0f 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python312.log +++ b/tests/integration/snapshots/logs/sync-metrics_python312.log @@ -53,7 +53,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -75,6 +76,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -86,7 +88,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -178,7 +179,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -227,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -236,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -326,7 +329,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -401,7 +405,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -455,6 +460,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -464,7 +470,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -554,7 +559,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -613,7 +619,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -635,6 +642,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -644,7 +652,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -733,7 +740,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -802,7 +810,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -824,6 +833,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -835,7 +845,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -927,7 +936,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -993,7 +1003,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1015,6 +1026,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1024,7 +1036,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1114,7 +1125,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1177,7 +1189,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1211,6 +1224,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1220,7 +1234,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1310,7 +1323,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1374,7 +1388,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1396,6 +1411,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1405,7 +1421,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1495,7 +1510,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1558,7 +1574,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1580,6 +1597,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1589,7 +1607,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1679,7 +1696,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1748,7 +1766,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1770,6 +1789,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", @@ -1781,7 +1801,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1871,7 +1890,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, diff --git a/tests/integration/snapshots/logs/sync-metrics_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index c21fcaad..fca4631c 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python313.log +++ b/tests/integration/snapshots/logs/sync-metrics_python313.log @@ -53,7 +53,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -75,6 +76,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -86,7 +88,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -178,7 +179,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -227,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -236,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -326,7 +329,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -401,7 +405,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -455,6 +460,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -464,7 +470,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -554,7 +559,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -613,7 +619,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -635,6 +642,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -644,7 +652,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -733,7 +740,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -802,7 +810,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -824,6 +833,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -835,7 +845,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -927,7 +936,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -993,7 +1003,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1015,6 +1026,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1024,7 +1036,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1114,7 +1125,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1177,7 +1189,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1211,6 +1224,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1220,7 +1234,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1310,7 +1323,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1374,7 +1388,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1396,6 +1411,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1405,7 +1421,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1495,7 +1510,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1558,7 +1574,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1580,6 +1597,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1589,7 +1607,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1679,7 +1696,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1748,7 +1766,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1770,6 +1789,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", @@ -1781,7 +1801,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1871,7 +1890,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, diff --git a/tests/integration/snapshots/logs/sync-metrics_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log index 090c3cba..8b6eb8f0 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python314.log +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -53,7 +53,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -75,6 +76,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "true", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -86,7 +88,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", "http.method": "GET", "http.route": "/", @@ -178,7 +179,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -227,6 +229,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "meta": { "runtime-id": "XXXX", "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -236,8 +239,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -326,7 +329,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -401,7 +405,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -455,6 +460,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -464,7 +470,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "dynamodb", "function_trigger.event_source_arn": "XXXX" }, @@ -554,7 +559,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -613,7 +619,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -635,6 +642,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -644,7 +652,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "eventbridge" }, "metrics": { @@ -733,7 +740,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -802,7 +810,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -824,6 +833,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -835,7 +845,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.route": "/httpapi/get", @@ -927,7 +936,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -993,7 +1003,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1015,6 +1026,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1024,7 +1036,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "kinesis", "function_trigger.event_source_arn": "XXXX" }, @@ -1114,7 +1125,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1177,7 +1189,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1211,6 +1224,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1220,7 +1234,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "s3", "function_trigger.event_source_arn": "XXXX" }, @@ -1310,7 +1323,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1374,7 +1388,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1396,6 +1411,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1405,7 +1421,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sns", "function_trigger.event_source_arn": "XXXX" }, @@ -1495,7 +1510,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1558,7 +1574,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1580,6 +1597,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1589,7 +1607,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", "span.name": "aws.lambda", - "span.kind": "server", "function_trigger.event_source": "sqs", "function_trigger.event_source_arn": "XXXX" }, @@ -1679,7 +1696,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1748,7 +1766,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, @@ -1770,6 +1789,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "duration": "XXXX", "meta": { "_dd.origin": "lambda", + "span.kind": "server", "cold_start": "false", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", @@ -1781,7 +1801,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "span.name": "aws.lambda", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", "http.status_code": "200" }, @@ -1871,7 +1890,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" }, "metrics": { "process_id": XXXX, From 39f48d556c22e3816eec6ccf9268ff51ad6d9bd4 Mon Sep 17 00:00:00 2001 From: Zarir Hamza Date: Wed, 15 Apr 2026 13:42:44 -0400 Subject: [PATCH 087/107] fix: disable remote configuration by default in Lambda (#797) --- datadog_lambda/config.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/datadog_lambda/config.py b/datadog_lambda/config.py index 4458bd9a..ce4924af 100644 --- a/datadog_lambda/config.py +++ b/datadog_lambda/config.py @@ -141,6 +141,11 @@ def _reset(self): "enabled" if config.fips_mode_enabled else "not enabled", ) +# Remote configuration relies on /dev/shm which is unavailable in Lambda. +# Disable it before ddtrace loads to avoid the shared-memory warning. +if "DD_REMOTE_CONFIGURATION_ENABLED" not in os.environ: + os.environ["DD_REMOTE_CONFIGURATION_ENABLED"] = "false" + # disable css to prevent double counting in lambda os.environ["DD_TRACE_STATS_COMPUTATION_ENABLED"] = "false" From 5b292db0a2295bfa4cfa7d183c492d0956803f94 Mon Sep 17 00:00:00 2001 From: Yiming Luo <10097700+lym953@users.noreply.github.com> Date: Wed, 15 Apr 2026 14:18:09 -0400 Subject: [PATCH 088/107] fix: correct durable execution statuses to match Python SDK InvocationStatus enum (#793) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SUCCEEDED, FAILED, STOPPED, TIMED_OUT → SUCCEEDED, FAILED, PENDING. STOPPED and TIMED_OUT are OperationStatus values; InvocationStatus only defines SUCCEEDED, FAILED, and PENDING. Co-authored-by: Claude Sonnet 4.6 --- datadog_lambda/durable.py | 2 +- tests/test_durable.py | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/datadog_lambda/durable.py b/datadog_lambda/durable.py index c77b43b0..9a28b36b 100644 --- a/datadog_lambda/durable.py +++ b/datadog_lambda/durable.py @@ -55,7 +55,7 @@ def extract_durable_function_tags(event): } -VALID_DURABLE_STATUSES = {"SUCCEEDED", "FAILED", "STOPPED", "TIMED_OUT"} +VALID_DURABLE_STATUSES = {"SUCCEEDED", "FAILED", "PENDING"} def extract_durable_execution_status(response, event): diff --git a/tests/test_durable.py b/tests/test_durable.py index 203548d1..36a3e8c5 100644 --- a/tests/test_durable.py +++ b/tests/test_durable.py @@ -131,19 +131,12 @@ def test_returns_failed(self): response = {"Status": "FAILED", "Error": "some-error"} self.assertEqual(extract_durable_execution_status(response, event), "FAILED") - def test_returns_stopped(self): + def test_returns_pending(self): event = { "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" } - response = {"Status": "STOPPED"} - self.assertEqual(extract_durable_execution_status(response, event), "STOPPED") - - def test_returns_timed_out(self): - event = { - "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" - } - response = {"Status": "TIMED_OUT"} - self.assertEqual(extract_durable_execution_status(response, event), "TIMED_OUT") + response = {"Status": "PENDING"} + self.assertEqual(extract_durable_execution_status(response, event), "PENDING") def test_returns_none_for_non_durable_event(self): event = {"key": "value"} From 5d8417db23f14e2555dfdd734e2bd148bbe123be Mon Sep 17 00:00:00 2001 From: Olivier Nzia Date: Wed, 15 Apr 2026 15:36:52 -0400 Subject: [PATCH 089/107] bump vulnerable dependencies (#796) * bump pytest * use compatible depedency versions and prevent major version upgrades * upgrade minimatch * upgrade urllib3 for transitive dependencies * remove upper python version limit from urllib3 * upgrade requests to ^2.33.0 * undo requests upgrade in requirements.txt * add python version markers for requests in requirements.txt --- poetry.lock | 483 ++++++++++++++++++++-------- pyproject.toml | 18 +- tests/integration/package-lock.json | 123 +++++-- tests/integration/package.json | 6 + tests/integration/requirements.txt | 3 +- tests/integration/yarn.lock | 287 ++++++++++------- 6 files changed, 627 insertions(+), 293 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4c37bf87..bf6c6fec 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] name = "botocore" @@ -31,6 +31,7 @@ description = "Python module to generate and modify bytecode" optional = false python-versions = ">=3.8" groups = ["main"] +markers = "python_version < \"3.10\"" files = [ {file = "bytecode-0.16.1-py3-none-any.whl", hash = "sha256:1d4b61ed6bade4bff44127c8283bef8131a664ce4dbe09d64a88caf329939f35"}, {file = "bytecode-0.16.1.tar.gz", hash = "sha256:8fbbb637c880f339e564858bc6c7984ede67ae97bc71343379a535a9a4baf398"}, @@ -39,6 +40,19 @@ files = [ [package.dependencies] typing_extensions = {version = "*", markers = "python_version < \"3.10\""} +[[package]] +name = "bytecode" +version = "0.17.0" +description = "Python module to generate and modify bytecode" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version >= \"3.10\"" +files = [ + {file = "bytecode-0.17.0-py3-none-any.whl", hash = "sha256:64fb10cde1db7ef5cc39bd414ecebd54ba3b40e1c4cf8121ca5e72f170916ff8"}, + {file = "bytecode-0.17.0.tar.gz", hash = "sha256:0c37efa5bd158b1b873f530cceea2c645611d55bd2dc2a4758b09f185749b6fd"}, +] + [[package]] name = "certifi" version = "2024.12.14" @@ -183,100 +197,179 @@ requests = ">=2.6.0" [[package]] name = "ddtrace" -version = "2.20.0" +version = "3.19.7" description = "Datadog APM client library" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" groups = ["main"] +markers = "python_version < \"3.10\"" files = [ - {file = "ddtrace-2.20.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:e1dee099099b95acf7d0e552179925cfec58a52315cc914d153506367b195bc4"}, - {file = "ddtrace-2.20.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:9d209bef14caafcd53be8c14e04741d86c08f76496c1bf755e2eaa38605ce3e0"}, - {file = "ddtrace-2.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f37966012078151713d61382de2a7ed710a8f375820e0db41930436b813b651"}, - {file = "ddtrace-2.20.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:879b963baf0b97d5ddd26185ab496b79efd25bbfdc2c25dbb1113ec19dc5abf9"}, - {file = "ddtrace-2.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e9b9a87c9df8a029fd3583ac660538dfa9d53207fee82b7f04749148bf8a3b"}, - {file = "ddtrace-2.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:eb76547a4bbf285d03ffc6e065bbad61761954741da2df0e4683d68d46ef2159"}, - {file = "ddtrace-2.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:194973afa1e357c68b6a6eceaabbddcef01130d167775126c2a15b3c1827f683"}, - {file = "ddtrace-2.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a71d2fc753b8fa2c3435b6f4d5f820d8deb51f49df59a4886b4da68b67f923d3"}, - {file = "ddtrace-2.20.0-cp310-cp310-win32.whl", hash = "sha256:567054d0c01dc552a8a24c4c9eeb98d778be720d2c4c9536acf1b86d6969a5e4"}, - {file = "ddtrace-2.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:d39f96e2fdfdf7ab43ee89a20d914f5ab12f8f361c390663eacb0e5da6e6e7fb"}, - {file = "ddtrace-2.20.0-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:0a1d7eaf6c9a5e0eabb8396f7d19faffc8f76a1ae37f34814c3432a9ca6f31da"}, - {file = "ddtrace-2.20.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:301a7787a34113b56cc9067a593c4717f6e158f2393883c30b59d0a37ebc06fa"}, - {file = "ddtrace-2.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d76ce49eb42588766db6756240d746441a66f03932547bfca9c62a8aecdbb38"}, - {file = "ddtrace-2.20.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a84d2e2411496c1b4ca3ce0cfb407d186cb3d13f1769c321fec30e677d815cd8"}, - {file = "ddtrace-2.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da47746a24242d805a800bca0a10b1354353e18b0bc4b6caf9c9c1724ba286b0"}, - {file = "ddtrace-2.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6f89e6003a738800beeb9948c847366976c73de2e24cc469b644a125f418c0a8"}, - {file = "ddtrace-2.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4fca20220bf668ebcac7051d28648b62aa95d2afeb5036ecad167cb454c7dcf1"}, - {file = "ddtrace-2.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1197e89fcaaca4ce419e3c812d04c73b8d16973202472cf3f674b4698b967697"}, - {file = "ddtrace-2.20.0-cp311-cp311-win32.whl", hash = "sha256:44bcd604a1d9095f4eb6813db6a677a208bd47884aff9ddc5aa46f596765f38e"}, - {file = "ddtrace-2.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:0a5f092df1ee4d0afe96502866ff0fb446a07c6a23d445ed616f1302c883e1d3"}, - {file = "ddtrace-2.20.0-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:f77103d36e6ab52cb45781766620d3874d0a728565afa7fd57f8ce2d5087e8e7"}, - {file = "ddtrace-2.20.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:d1cec952ce2ca9efbb34c8a9ee522e1cc588fe454b9115120b30fd5d0f821512"}, - {file = "ddtrace-2.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4a1da150e92b6d43047f2a91a7d3b7133207f94b82613625abf82662359b30e"}, - {file = "ddtrace-2.20.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91ab68c1facc6cf04085fdeea53210ed9928e95116809fd9bfe2dea54e83375d"}, - {file = "ddtrace-2.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fd7ec6410225e64ca875d1bc9bd6bd8489f52dd8558462fbb52447fb8f66ad3"}, - {file = "ddtrace-2.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:57864590ddb84da4eb99332fe4b521e6fd747992178e3eabcf4f87406e908bb1"}, - {file = "ddtrace-2.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:37693555704a0cbd4a925e4ffe9c6df696146c85557c5f66ce3a7a88406772d9"}, - {file = "ddtrace-2.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ae5e802aaefc0cd3b63e3fd46e051a39e9f960a02e89f44a5bb820f445b736f9"}, - {file = "ddtrace-2.20.0-cp312-cp312-win32.whl", hash = "sha256:14fe4f583bec105c40e233c74fcbaea185658651c626ce1609750d83d93a00ae"}, - {file = "ddtrace-2.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:cfbc926ddfeece0312e82f9e00a68001647666d11ceb050a5bbe66ca8931e3d2"}, - {file = "ddtrace-2.20.0-cp313-cp313-macosx_12_0_universal2.whl", hash = "sha256:eeca6b6bd48794d48de438981dccbc96a06366edde798c12b2b3348ca5e03717"}, - {file = "ddtrace-2.20.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:3f526e75d1b61019db2cd715e8c7298325e21c3584f8677a7decf37aa81e7284"}, - {file = "ddtrace-2.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96441189ccc772ef4871e23a35cec58a748c16ebfb2293eccaaa719dcbc368fd"}, - {file = "ddtrace-2.20.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4d31d769f222c9a5bde1d4a594da1341014bf02db1a7194f5a41ed7e5c4c9fa8"}, - {file = "ddtrace-2.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54068dbf034e1f607ef5d58a9fa1b26bd78b4f3db0618ce0a3e9c4b04fff7209"}, - {file = "ddtrace-2.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62e86d9b00277fe2b9bdfbc51ca1bc34aa5c1200aa6bc5084c7eaaab28b022de"}, - {file = "ddtrace-2.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c83c2458de1cf1bbac48689c6541a85d54ad94ae6608961e1089cc2959a8c77a"}, - {file = "ddtrace-2.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:569d7a92a88ba9b2a203addea688b0585901534c92c2d148ef9f971b6d7b3805"}, - {file = "ddtrace-2.20.0-cp37-cp37m-macosx_12_0_x86_64.whl", hash = "sha256:df413d646fc14b4be51a15ed8e484bcdf3b21e370e2644a586283bcc7e0b2355"}, - {file = "ddtrace-2.20.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33e4406a436278722df193c93d49e662a8891e8a440fddb273dca9a56fa27947"}, - {file = "ddtrace-2.20.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9d358bc7b4b1daa2d6e6bc697244b39db653ddd5ae139045941d3db28950bfe"}, - {file = "ddtrace-2.20.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a523924382d2f8f87731e4ad86bbf4721fba9eb807ed3b0c862db6d768e1e81c"}, - {file = "ddtrace-2.20.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:0af78a424e9d87250a8648a35b7de5653f27b3f6f6803c1b33780816a07e6d26"}, - {file = "ddtrace-2.20.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:2723378e670d27927f7d1ab878c8668fc392a5656a66453b9808e7c4025431fd"}, - {file = "ddtrace-2.20.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01f76fc9bf1413a188ddd59851eb3b668d3de936afed73a5914a817f36e11005"}, - {file = "ddtrace-2.20.0-cp37-cp37m-win32.whl", hash = "sha256:3a615ae95ef8f889304b2958655ac8cda23cf2f2c8faf5d8ff88bd14bdcf3fb4"}, - {file = "ddtrace-2.20.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b90333661ffd3460bae6dbbd7a5f35d8467cff36bd7a689a47b014edb19c0fe6"}, - {file = "ddtrace-2.20.0-cp38-cp38-macosx_12_0_universal2.whl", hash = "sha256:ab27596e82bdfe9c0c5580f6886ec943ae2fe615a446c22470f6a1f9742dec62"}, - {file = "ddtrace-2.20.0-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:e2de7371291283cba1afdd7e919a577637099da0d6872d33b4008e1cad6e1b8b"}, - {file = "ddtrace-2.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa4f90f472768aef8ce023a924505c9d1d09428fc9d6ab81bc0e3ab183e3ff48"}, - {file = "ddtrace-2.20.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05b68ba6fe4da5317396100669edf91b3d54b95ae979a2a22ca880cfcc6c249d"}, - {file = "ddtrace-2.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1512d07e6c7cde13ae251906d57d31613fe5ee99fab2894e90679053b4256953"}, - {file = "ddtrace-2.20.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dcadc60aa60e11f2db56065a834aaa5e52a9be02e8edc8d14aa7015fb54092ce"}, - {file = "ddtrace-2.20.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:698207d88941ea3e4e5f3add6071e6651caa12fcffe079359507391382251759"}, - {file = "ddtrace-2.20.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:9f95a251f84725df055202d933b4a8fb39cefd51341e10cad17d2a8b4d64700e"}, - {file = "ddtrace-2.20.0-cp38-cp38-win32.whl", hash = "sha256:0b121285459693ae9f3c9ce54cc4be981a2e73d4c52b8a5eb038cf41df9974dd"}, - {file = "ddtrace-2.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:4c840dc91c622138a4a6abdbcbee56897d4c55d9e7bf16b1902ee676f20b22f2"}, - {file = "ddtrace-2.20.0-cp39-cp39-macosx_12_0_universal2.whl", hash = "sha256:c74d69e6a4cbd91f6fe411519d753f34893d6d40a68829b43485690df8a7f30f"}, - {file = "ddtrace-2.20.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:4902b64ba89a8e4008228e7a5007e20b2bb8071c6c7689abd47dddc159e2baf1"}, - {file = "ddtrace-2.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758ba828eddd144a4804af692869e7278376efa740932a7453e8fdc0ed6ef6a7"}, - {file = "ddtrace-2.20.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:37995326df811236c9d92d1b5713378a7f11270bf1e21c64914653a3e12d7d01"}, - {file = "ddtrace-2.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab7f1babd7a8e73edf70c957a5b3bbeb4c615b232a078a0fe4da566e1663d1aa"}, - {file = "ddtrace-2.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1cd1b240f465c98e226ab896b1b1c3696752d5eb1051a0aafb8a3db701d2ddc1"}, - {file = "ddtrace-2.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3a300515c3327af4fd5c6c83e6ca63cd0a20e4243381d4b712e3f406d9ddf201"}, - {file = "ddtrace-2.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f1ce886b112e0e8aa66ba8cf3593f00f7f6ae6b48dd09bd8ce90c59adad59d66"}, - {file = "ddtrace-2.20.0-cp39-cp39-win32.whl", hash = "sha256:bb77464849b092f93839d5c257df9eaeb018521ddea2deef97dfc6e3501a2516"}, - {file = "ddtrace-2.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:b95f14f0634fe3f02dcebb7b8a124207b3d44168fd0dfc6bfff1e4db93978089"}, - {file = "ddtrace-2.20.0.tar.gz", hash = "sha256:f185c6dd88cd04884f0ad27b37f14d837274e8fc4dc43407781334d92d41c3bc"}, + {file = "ddtrace-3.19.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:640847ed52bef189da0d2403c21be80c0dd425da19e65fb1b099b69db4506111"}, + {file = "ddtrace-3.19.7-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:428ef5a4bf0abaead6b24e422feb9121a29303246b70d4ea78cd892bfa0c9a58"}, + {file = "ddtrace-3.19.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:04169fddab36fcbb82248d6e02b3231e8fe732772d8f7b58b2342e414fdfe5fe"}, + {file = "ddtrace-3.19.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9d48387bb79f3ed3d0e812ce17545c065d8fa03336069cac1bae32b87e8e0b2f"}, + {file = "ddtrace-3.19.7-cp310-cp310-manylinux_2_28_i686.whl", hash = "sha256:35a41266f309911797da7be1f8b3dd2cef440814be59edf48b11c5496f6fa585"}, + {file = "ddtrace-3.19.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7c7f885aacac5959b210ec86cf861d54c1bf778bedde72cf22a0e11b4e3342da"}, + {file = "ddtrace-3.19.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:bb0c758cd60783e4ac29d98afb2ccdc00f918304f0191381b3bd9df7ba15bb64"}, + {file = "ddtrace-3.19.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1fa535aa2795bf776270e3373227cf14ef5164ce3b6e0953b7b66da3a3cf9d0f"}, + {file = "ddtrace-3.19.7-cp310-cp310-win32.whl", hash = "sha256:31993a4eb521e28eb52921ed2112ad813b779a2cabf5fafc620224bb6e661a53"}, + {file = "ddtrace-3.19.7-cp310-cp310-win_amd64.whl", hash = "sha256:306a5c803aa38c6808449c543ef4a00430da7fa959b801438a144a8d964055cb"}, + {file = "ddtrace-3.19.7-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:2c8bbfa3ab83e6a66ed69a2897479158040cc126b561eb33fec002323afc1507"}, + {file = "ddtrace-3.19.7-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:c708d863ce44762bf219554b47ae7f9fd28348d8502b498f7910a24d4bcb3526"}, + {file = "ddtrace-3.19.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:52d30d1fe4b4751de0909d11966c9fb3db509cb795a98ea40633a78ff39daa18"}, + {file = "ddtrace-3.19.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c9fe721ede05f197893664361873177df8551a820b7e5ac6d84da39e82bf175c"}, + {file = "ddtrace-3.19.7-cp311-cp311-manylinux_2_28_i686.whl", hash = "sha256:74b25220346fdac217d1b334c1d88bbae2c3ae5e101e53460f8193ed226d2759"}, + {file = "ddtrace-3.19.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:259261612982b1222731560d166edf4125f53d2a4a5468778a91b9b3d8577452"}, + {file = "ddtrace-3.19.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3b1a59d4347d0176ffe9841f2a01ca9b42bfd65760baf90337fd3b0718cceba5"}, + {file = "ddtrace-3.19.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:119b60f006944af39ec6eaa2ed3a9b96defbb537ad51592a60a8285643217094"}, + {file = "ddtrace-3.19.7-cp311-cp311-win32.whl", hash = "sha256:74e31b295267f6b5d02192566e382a33dd3c2254f545f43f2d241f1266de06d4"}, + {file = "ddtrace-3.19.7-cp311-cp311-win_amd64.whl", hash = "sha256:8e00eaca60b53c206370b69641534d251b68f114406a7cdd96aa505be1e8a4e3"}, + {file = "ddtrace-3.19.7-cp311-cp311-win_arm64.whl", hash = "sha256:54fa6ccf40f9ad09787b4ccc2cfb6524ce87997a3424e3f92efe3f4bfed2008d"}, + {file = "ddtrace-3.19.7-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2a1b4ccf33d82cc03334f6f54b8e37711f0e46fddaade56769ac42e6c6683d98"}, + {file = "ddtrace-3.19.7-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:b6037dba7f0b7fa59b8e1ab44a2750fccc3e619917d451a94cc1bc108b16d3cb"}, + {file = "ddtrace-3.19.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:38b515c8b5100e6b3c513e58160eb268bddbd9783fa2cb6f7f65ee7c387936ee"}, + {file = "ddtrace-3.19.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:300807941a2f005aacf4ef3d81e94dd4034d9acf1bf3786e73c382659bd8b617"}, + {file = "ddtrace-3.19.7-cp312-cp312-manylinux_2_28_i686.whl", hash = "sha256:c74524559e7d21beb29b8e13c5090644525b5df03a6a7450e9286997e31ac9c9"}, + {file = "ddtrace-3.19.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:817abdd18b24ec0f881843af4c6bae55c4ecd997dc0c3688c4a45b0a18a1368c"}, + {file = "ddtrace-3.19.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c59faed5fa5330ffd5fe60284b1ec1a0525d7fc063787de227a418810851c2f3"}, + {file = "ddtrace-3.19.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:af3f1200c3e4c850a9c408047a6f83f5b87cbb0c641022a4107e566e5064c434"}, + {file = "ddtrace-3.19.7-cp312-cp312-win32.whl", hash = "sha256:6fd3409777c2549b5bf743abc3c1ab17ba7a1a399c3a580e2a4bac383a576e35"}, + {file = "ddtrace-3.19.7-cp312-cp312-win_amd64.whl", hash = "sha256:69448c80f440aee4d1a3e19295e66c44a84ae014da6c05a52d846b4b7ac821c9"}, + {file = "ddtrace-3.19.7-cp312-cp312-win_arm64.whl", hash = "sha256:30827b6bbbbb75f883717c59339e43feef31a7a31da623f2f291ac6e9a044c6f"}, + {file = "ddtrace-3.19.7-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:425bacf644a772aa3faca075234f3bc5d37972fa1f32932343b00653190cdab5"}, + {file = "ddtrace-3.19.7-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:dec566649d660bfe179d2d97d8217304a466c0294ac6cec84ab9ee5bd2c20056"}, + {file = "ddtrace-3.19.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:91e62d9d206150ddc360af2628615572f3bcc314ae420ab59041e6e493477993"}, + {file = "ddtrace-3.19.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:251607dec183356cfe1ec8f102f01ac556a38136216f74e31b5748b6fa994d97"}, + {file = "ddtrace-3.19.7-cp313-cp313-manylinux_2_28_i686.whl", hash = "sha256:6952e2e78f126dce55d4d988490bc76c24e439d52d2686ff618f8d7640534e61"}, + {file = "ddtrace-3.19.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82b7fbfedac7986274d2c947d247affdb9d918edcb6d65587ab9c1d8d81af9bf"}, + {file = "ddtrace-3.19.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b96f689ab0225d2d8934c4aa42a7ce1001b91fbf1ff8e8158a6428e0f0faece6"}, + {file = "ddtrace-3.19.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0995ac17c3e43fae6f6c2ac0d9a90d035ea13d629342f84ba7596ac002ce87"}, + {file = "ddtrace-3.19.7-cp313-cp313-win32.whl", hash = "sha256:846b695964580cb4d91c4600907119f38b57b792d7ff1f21793d2140157b820b"}, + {file = "ddtrace-3.19.7-cp313-cp313-win_amd64.whl", hash = "sha256:de1aabc50c663f27c1ae341d16b31bdc3b8fb1c28c4b8a683e9000cbfd11fa44"}, + {file = "ddtrace-3.19.7-cp313-cp313-win_arm64.whl", hash = "sha256:2d41fd500ec915be8b3b95cd7a5535f87323acbdc7e9b2c02797d83b6985b451"}, + {file = "ddtrace-3.19.7-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:528fb2565048e669cfe5ad0e24f4f39f73747977982c78339f9ece7e39430180"}, + {file = "ddtrace-3.19.7-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:29202bdd4496098b27907dfdfd85000549901461ebea6f0f90d19eb4ebac2b76"}, + {file = "ddtrace-3.19.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:abb3b5b8cac3247b01d381fe71aeb56b20f8759275619701418e53f0306eb6a0"}, + {file = "ddtrace-3.19.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d27d310e272aa7772fdf7087bd5056966448d8051586de75577076ad8c8e323"}, + {file = "ddtrace-3.19.7-cp314-cp314-manylinux_2_28_i686.whl", hash = "sha256:aec1ec1fbcdafa76362c7f468aab240224d14060c4cda73e9a0676293be471c5"}, + {file = "ddtrace-3.19.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:26c300dbb6d8c29b6fcd4847da29010a988150a28426c4cc46e7e1f3816ea195"}, + {file = "ddtrace-3.19.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8c3a74eda7907e5d4a5a36c62e02ee41fca10de83ae2f592e0a63530d8eda7aa"}, + {file = "ddtrace-3.19.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:79cdb4246da2a6e32b768a0c7f952890ddeb9c8bea9228adf2d82bcf66849177"}, + {file = "ddtrace-3.19.7-cp314-cp314-win32.whl", hash = "sha256:759d49298575079e31da354780ca37220775c80a007bbe2ae7fb756a11210740"}, + {file = "ddtrace-3.19.7-cp314-cp314-win_amd64.whl", hash = "sha256:054ebbdd1e02e90874cda803b31721f4e4ab6d0d3833bc8e82de8b78f1fc9d57"}, + {file = "ddtrace-3.19.7-cp314-cp314-win_arm64.whl", hash = "sha256:ff953b2d7dc8a7d8e8d452aa0f9ac1e094e9deba371f3715bc73613bc1fa0069"}, + {file = "ddtrace-3.19.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:c0139817f0acce19aa0bd07e09bd9be0844c5561e1d8d3d6c0a46f13256587c4"}, + {file = "ddtrace-3.19.7-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:f67b6129039b91447e8f412b5fca83c264c8b471d688d1c3a1fd7c2dc05b3b03"}, + {file = "ddtrace-3.19.7-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c35e49e472e3639e8827c9b78d99a64caba74bf96a920c74c62c6ed36df5dbf2"}, + {file = "ddtrace-3.19.7-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9411e4ad0fbf9ebf7afd2420f171408bb0468b8c714657124ae1f1f2391193cf"}, + {file = "ddtrace-3.19.7-cp38-cp38-manylinux_2_28_i686.whl", hash = "sha256:482a43cb3f33a8373a207965579eded1a2699fb0e624f80746455c8a9c839b63"}, + {file = "ddtrace-3.19.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:79e6e53a290901b7df39bd2c176865ca906f66d7a0ed6ca6e862abbdd4b85b6b"}, + {file = "ddtrace-3.19.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5fa9aa40d7fedc5682a7ca82ec9e68d96fd5714e89c17342e76f8ef37300238d"}, + {file = "ddtrace-3.19.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6feaf4786d6b419a5fb225e91d97010273dfc1b7d046ed1d0996b6bd9b03aec0"}, + {file = "ddtrace-3.19.7-cp38-cp38-win32.whl", hash = "sha256:52a465d4509f1bd8154bfd7e0198e4f8d209cb3e7d30202299189b174fdab034"}, + {file = "ddtrace-3.19.7-cp38-cp38-win_amd64.whl", hash = "sha256:dfa876c29b4694db345eadacbd03d94dfc19569990da0488680039b985d84f62"}, + {file = "ddtrace-3.19.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:a7e978e52a718b01e71cce740ed77fca96a65ca2ff9c17c8e7be2757532057ee"}, + {file = "ddtrace-3.19.7-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:8e0dd6fa57f71f9adfc088aa9cf86e27ba86e94406329060742e362131ad49e5"}, + {file = "ddtrace-3.19.7-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22b712f9bab0471599ed8462b1640a81ea07aee7532c666fef6e6334d0b9c09e"}, + {file = "ddtrace-3.19.7-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51043397868ce03c5c629d1d03d15c29b9379f574b03ffa3bc2149892445c465"}, + {file = "ddtrace-3.19.7-cp39-cp39-manylinux_2_28_i686.whl", hash = "sha256:80f967464f04c2a4455ff2994af6cd12971f09e33f8c33c475dc9150cd1b5aad"}, + {file = "ddtrace-3.19.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f6712f94b8a08fe6746e7e48b76582c7c261c9a83474c4a8cc8ec1349e3810ad"}, + {file = "ddtrace-3.19.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a31cbe6c75fe6c07befd744993fb61159f02dc70689230b69161547cfbf5892b"}, + {file = "ddtrace-3.19.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3b7173b6395e3b9c8a20ca94433033b8647971b61648add055a24819fa3ce72f"}, + {file = "ddtrace-3.19.7-cp39-cp39-win32.whl", hash = "sha256:8d3066532620ea1e74639db041fb4aabbead9057a48adcd00c9aae65ca096bc9"}, + {file = "ddtrace-3.19.7-cp39-cp39-win_amd64.whl", hash = "sha256:4d7abb09a7a672efecc560c110c2668bfdfce8f6c28e45903af96441476872d2"}, + {file = "ddtrace-3.19.7.tar.gz", hash = "sha256:e531a7c6370458d0e61b498714969471514033f6851a4603ac62f2cac1adc925"}, +] + +[package.dependencies] +bytecode = {version = ">=0.13.0,<1", markers = "python_version < \"3.11\""} +envier = ">=0.6.1,<0.7.0" +opentelemetry-api = ">=1,<2" +wrapt = ">=1,<3" + +[package.extras] +opentelemetry = ["opentelemetry-exporter-otlp (>=1,<2)"] +opentracing = ["opentracing (>=2,<3)"] + +[[package]] +name = "ddtrace" +version = "4.7.1" +description = "Datadog APM client library" +optional = false +python-versions = "<3.15,>=3.9" +groups = ["main"] +markers = "python_version >= \"3.10\"" +files = [ + {file = "ddtrace-4.7.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:74ba511e6669bd88dba1f9fe5d03170bc741305a97f6b8331f3d35ca754d8c82"}, + {file = "ddtrace-4.7.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:8149302841f058c68c57f1c89e4ee273d9f7de30fdeb2ae047d90a32dc1b6096"}, + {file = "ddtrace-4.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:44c15ab0f7bb7cc932e3ca7481eb0d9f3fa917247cc03375887bf50b9c6ece54"}, + {file = "ddtrace-4.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d3fe0451fddfacbed5ee62a91c632f01cacd57ec7152a6be67b916f4716f2e3"}, + {file = "ddtrace-4.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:be57f6a30560d92a01c780ead970df73fcf458a20c6aa4d936af8d1b0892a786"}, + {file = "ddtrace-4.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:67726c736a02131f062bd63e18a0badfc0f000e2462a0a69c4e8680f54e37d66"}, + {file = "ddtrace-4.7.1-cp310-cp310-win32.whl", hash = "sha256:279397251be2d8b3fc848b231c04fc1be5d299b91c51b831d34795f9ec387e95"}, + {file = "ddtrace-4.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:ae1872e10c138827fb7cb759cdde26d1fe2f66449b95e19f5cc22609fe1ca02b"}, + {file = "ddtrace-4.7.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:df5b3716e47421bb9e925a1ae8592cf2169eadf9a3e62be56baa16d0656be876"}, + {file = "ddtrace-4.7.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:78da43378062c4905f09d1ff58d4b49bd61f9440977f2b7be5dc0dc427ddbbe3"}, + {file = "ddtrace-4.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cb6ae35e377e987c59a42971c550937404079fea4666a158849a47587b39cf7"}, + {file = "ddtrace-4.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b07a9c689f115e70a8946d3002275808c01b31a350d8159e3e6562ddee379ad0"}, + {file = "ddtrace-4.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e717ee7b8484ea85882fb5d0c349fcead2b023ff8ab6e965072d5c4064d607ba"}, + {file = "ddtrace-4.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:613a74ce4ea692e2a8435266ad361d44bfd018d1d694ab38709ebf7df692af14"}, + {file = "ddtrace-4.7.1-cp311-cp311-win32.whl", hash = "sha256:b5f5cdc530a8baf28647dae8ea85d446534770d70ea8a30a8d3dde00af412a5b"}, + {file = "ddtrace-4.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:27c8812da8a73e239eb0bece274ef8cc95eb3093910f049b2ca0542756e2fcb8"}, + {file = "ddtrace-4.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:bad60c97ca058580c62e0ea4340d9dd86971c825fd65491a8e67d0998b2e6da3"}, + {file = "ddtrace-4.7.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:0331d57f4c21cabebc9819092a0527dc4677f7f509c877229d216255236d8b65"}, + {file = "ddtrace-4.7.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:be562ef7187e61a4c835e37fbd8a6d81f445d6811660929c94a9e6a9462c6fb4"}, + {file = "ddtrace-4.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5dd9d7fbd678bfa8d8e71278ea05cc257b0230221749554e87e4f1e9704c4efe"}, + {file = "ddtrace-4.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:57cff66524ed7e441cb14d98f402eb52a22455964375f8f5a696afddc1684eb9"}, + {file = "ddtrace-4.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9c5b4a96d19e905b4845a86aa7d94698414f1f427ffc0f092b80228f6b2b71a3"}, + {file = "ddtrace-4.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d353a200d9443e7db6e0528a9f148f98f9359dab7abec41571bf46f155de6bd9"}, + {file = "ddtrace-4.7.1-cp312-cp312-win32.whl", hash = "sha256:e998ef9d9a29648a06581a6ca8f53e8d1e67700b61105587909a69297e98660d"}, + {file = "ddtrace-4.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:51d671f2e2d8a4f0abe82511186849be3246b7d4dfb3a207465c7e1c772c42c2"}, + {file = "ddtrace-4.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:a95c13794f61f8016d117d28a9e301a2eba04121bf1fc90e20264ef8c7fab0a6"}, + {file = "ddtrace-4.7.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:d8c4c19d21331611a3f98e10489125eee426205043577013d1095b1c4b55f220"}, + {file = "ddtrace-4.7.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:f679951bb2cf749cf53214a7b4d76ac6912dc4f05a3371b094d4d679615d3446"}, + {file = "ddtrace-4.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2f64a6e9e7df59873e4ab60cd6ca707c7943379d572c4836acbebfc357b3e050"}, + {file = "ddtrace-4.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b7323dcd5d78a8c7d65955e4dcd3db560d00c9e7f2f2138705a6fde67603adb5"}, + {file = "ddtrace-4.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6103fb99c84c0d1bedb121ad085f89b69dd4712ad49f3a1745bbaf5573e93901"}, + {file = "ddtrace-4.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:57aa50af618880335fa813315034428811aecb6c78715436eeeaf7ff0b11ba49"}, + {file = "ddtrace-4.7.1-cp313-cp313-win32.whl", hash = "sha256:803b4b94f333e563a4521e545bc6d07ed2d2f4bad4843a9df29bf279c5d43cde"}, + {file = "ddtrace-4.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:c270b7d956c3186a17de358fb8c0600cb79c9028b769a0e1a975deab42a539d7"}, + {file = "ddtrace-4.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:de62971f25321416ac59f65afb2165482bc5b0ffbd450afa4ad586f3e0aa1c46"}, + {file = "ddtrace-4.7.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:022b058263acd3b8e8534d5cd2446330b9be296cab48d24d33f489d4da0f999e"}, + {file = "ddtrace-4.7.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:fc0c89c7ba67582a2fd4d6e2d803b94fd800dd4489cd777398a80c87fc0b216f"}, + {file = "ddtrace-4.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:89776d556ff27f95bcac17fcac4aeaf2173058e167c1923047007e7861079bdb"}, + {file = "ddtrace-4.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:26ad10decfd1072ec803aaf94ec5bf499cdbafe9d85fbf1608b6217d495b3edb"}, + {file = "ddtrace-4.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0424306e0668f0adaa57d6b327948f5775c568afa91c5603559cc6a82d934515"}, + {file = "ddtrace-4.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f5ffd1dfdee50236bf3b1a4dc699884387d04518a0bca5db7559e9fde932d744"}, + {file = "ddtrace-4.7.1-cp314-cp314-win32.whl", hash = "sha256:b7f6196521f00cf220ed4575de8832f9c77f110c5e05038a226f4bd39e89c688"}, + {file = "ddtrace-4.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:4906a58c510f00851aacd6033c0687a7d6db82a7c5d6ed9399dac247f49335ba"}, + {file = "ddtrace-4.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:ae9c3429e304cf0b1b6852213f29af20eee9997cda575b3dc8a267bb66f04b1f"}, + {file = "ddtrace-4.7.1-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:1e3244d00daaa0560b806fd71383b39e1cdf268292fd08b9823beacaa4131cc9"}, + {file = "ddtrace-4.7.1-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:4183df7ba4efe3e1d3a0e204dbd51badb2de826dc9c3da57477d0a17f2640752"}, + {file = "ddtrace-4.7.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f0159bcf3b07916dfb5b6cc6cc7f80b08740b9c55f114657ab15563b17eb269e"}, + {file = "ddtrace-4.7.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8d35c1e41c5c65fb705eb0eadb51686eca4432af36c48555570558b6f57eae1c"}, + {file = "ddtrace-4.7.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:55555cb48a23892b5e3a89d84555de369df1fbd967b0397698b4178e6aff66ec"}, + {file = "ddtrace-4.7.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:622f8ae6ddf9167557d40b59134df94a72ee0b7318cb6aa03466883c9d972289"}, + {file = "ddtrace-4.7.1-cp39-cp39-win32.whl", hash = "sha256:4a601fe4e5c6bd31e0470420771eaf82576e30311b401bdb79c8dec68ef30d3d"}, + {file = "ddtrace-4.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:c4f778ae3fbe708a8360d68af8f36bd60be9d64af7d4cf670832f4a737ed252e"}, + {file = "ddtrace-4.7.1.tar.gz", hash = "sha256:51695b8b34881432ea9d46c42aa41343d5531d9fdddc1c65b721aa4b051ed848"}, ] [package.dependencies] bytecode = [ - {version = ">=0.13.0", markers = "python_version < \"3.11\""}, - {version = ">=0.16.0", markers = "python_version >= \"3.13.0\""}, - {version = ">=0.15.0", markers = "python_version ~= \"3.12.0\""}, - {version = ">=0.14.0", markers = "python_version ~= \"3.11.0\""}, -] -envier = ">=0.5,<1.0" -legacy-cgi = {version = ">=2.0.0", markers = "python_version >= \"3.13.0\""} -opentelemetry-api = ">=1" -protobuf = ">=3" -typing_extensions = "*" -wrapt = ">=1" -xmltodict = ">=0.12" + {version = ">=0.17.0,<1", markers = "python_version >= \"3.14.0\""}, + {version = ">=0.16.0,<1", markers = "python_version >= \"3.13.0\" and python_version < \"3.14.0\""}, + {version = ">=0.15.1,<1", markers = "python_version ~= \"3.12.0\""}, + {version = ">=0.14.0,<1", markers = "python_version ~= \"3.11.0\""}, + {version = ">=0.13.0,<1", markers = "python_version < \"3.11.0\""}, +] +envier = ">=0.6.1,<0.7.0" +opentelemetry-api = ">=1,<2" +wrapt = ">=1,<3" [package.extras] -openai = ["tiktoken"] -opentracing = ["opentracing (>=2.0.0)"] +opentelemetry = ["opentelemetry-exporter-otlp (>=1,<2)"] +opentracing = ["opentracing (>=2,<3)"] [[package]] name = "deprecated" @@ -410,19 +503,6 @@ files = [ {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, ] -[[package]] -name = "legacy-cgi" -version = "2.6.2" -description = "Fork of the standard library cgi and cgitb modules, being deprecated in PEP-594" -optional = false -python-versions = ">=3.10" -groups = ["main"] -markers = "python_version >= \"3.13.0\"" -files = [ - {file = "legacy_cgi-2.6.2-py3-none-any.whl", hash = "sha256:a7b83afb1baf6ebeb56522537c5943ef9813cf933f6715e88a803f7edbce0bff"}, - {file = "legacy_cgi-2.6.2.tar.gz", hash = "sha256:9952471ceb304043b104c22d00b4f333cac27a6abe446d8a528fc437cf13c85f"}, -] - [[package]] name = "mccabe" version = "0.7.0" @@ -482,27 +562,6 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] -[[package]] -name = "protobuf" -version = "5.29.5" -description = "" -optional = false -python-versions = ">=3.8" -groups = ["main"] -files = [ - {file = "protobuf-5.29.5-cp310-abi3-win32.whl", hash = "sha256:3f1c6468a2cfd102ff4703976138844f78ebd1fb45f49011afc5139e9e283079"}, - {file = "protobuf-5.29.5-cp310-abi3-win_amd64.whl", hash = "sha256:3f76e3a3675b4a4d867b52e4a5f5b78a2ef9565549d4037e06cf7b0942b1d3fc"}, - {file = "protobuf-5.29.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e38c5add5a311f2a6eb0340716ef9b039c1dfa428b28f25a7838ac329204a671"}, - {file = "protobuf-5.29.5-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:fa18533a299d7ab6c55a238bf8629311439995f2e7eca5caaff08663606e9015"}, - {file = "protobuf-5.29.5-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:63848923da3325e1bf7e9003d680ce6e14b07e55d0473253a690c3a8b8fd6e61"}, - {file = "protobuf-5.29.5-cp38-cp38-win32.whl", hash = "sha256:ef91363ad4faba7b25d844ef1ada59ff1604184c0bcd8b39b8a6bef15e1af238"}, - {file = "protobuf-5.29.5-cp38-cp38-win_amd64.whl", hash = "sha256:7318608d56b6402d2ea7704ff1e1e4597bee46d760e7e4dd42a3d45e24b87f2e"}, - {file = "protobuf-5.29.5-cp39-cp39-win32.whl", hash = "sha256:6f642dc9a61782fa72b90878af134c5afe1917c89a568cd3476d758d3c3a0736"}, - {file = "protobuf-5.29.5-cp39-cp39-win_amd64.whl", hash = "sha256:470f3af547ef17847a28e1f47200a1cbf0ba3ff57b7de50d22776607cd2ea353"}, - {file = "protobuf-5.29.5-py3-none-any.whl", hash = "sha256:6cf42630262c59b2d8de33954443d94b746c952b01434fc58a417fdbd2e84bd5"}, - {file = "protobuf-5.29.5.tar.gz", hash = "sha256:bc1463bafd4b0929216c35f437a8e28731a2b7fe3d98bb77a600efced5a15c84"}, -] - [[package]] name = "py-cpuinfo" version = "9.0.0" @@ -542,6 +601,22 @@ files = [ {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, ] +[[package]] +name = "pygments" +version = "2.20.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version >= \"3.10\" and extra == \"dev\"" +files = [ + {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, + {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + [[package]] name = "pytest" version = "8.3.4" @@ -549,7 +624,7 @@ description = "pytest: simple powerful testing with Python" optional = true python-versions = ">=3.8" groups = ["main"] -markers = "extra == \"dev\"" +markers = "python_version < \"3.10\" and extra == \"dev\"" files = [ {file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"}, {file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"}, @@ -566,6 +641,31 @@ tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +[[package]] +name = "pytest" +version = "9.0.3" +description = "pytest: simple powerful testing with Python" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.10\" and extra == \"dev\"" +files = [ + {file = "pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9"}, + {file = "pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c"}, +] + +[package.dependencies] +colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} +iniconfig = ">=1.0.1" +packaging = ">=22" +pluggy = ">=1.5,<2" +pygments = ">=2.7.2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] + [[package]] name = "pytest-benchmark" version = "4.0.0" @@ -611,6 +711,7 @@ description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" groups = ["main"] +markers = "python_version < \"3.10\"" files = [ {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, @@ -626,6 +727,29 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "requests" +version = "2.33.1" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.10\"" +files = [ + {file = "requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a"}, + {file = "requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517"}, +] + +[package.dependencies] +certifi = ">=2023.5.7" +charset_normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.26,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<8)"] + [[package]] name = "six" version = "1.17.0" @@ -689,6 +813,7 @@ description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" groups = ["main"] +markers = "python_version < \"3.10\"" files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, @@ -701,6 +826,7 @@ description = "Ultra fast JSON encoder and decoder for Python" optional = false python-versions = ">=3.8" groups = ["main"] +markers = "python_version < \"3.10\"" files = [ {file = "ujson-5.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2601aa9ecdbee1118a1c2065323bda35e2c5a2cf0797ef4522d485f9d3ef65bd"}, {file = "ujson-5.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:348898dd702fc1c4f1051bc3aacbf894caa0927fe2c53e68679c073375f732cf"}, @@ -782,6 +908,95 @@ files = [ {file = "ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1"}, ] +[[package]] +name = "ujson" +version = "5.12.0" +description = "Ultra fast JSON encoder and decoder for Python" +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.10\"" +files = [ + {file = "ujson-5.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:38051f36423f084b909aaadb3b41c9c6a2958e86956ba21a8489636911e87504"}, + {file = "ujson-5.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:457fabc2700a8e6ddb85bc5a1d30d3345fe0d3ec3ee8161a4e032ec585801dfa"}, + {file = "ujson-5.12.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57930ac9519099b852e190d2c04b1fb5d97ea128db33bce77ed874eccb4c7f09"}, + {file = "ujson-5.12.0-cp310-cp310-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:9b3b86ec3e818f3dd3e13a9de628e88a9990f4af68ecb0b12dd3de81227f0a26"}, + {file = "ujson-5.12.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:460e76a4daff214ae33ab959494962c93918cb44714ea3e3f748b14aa37f8a87"}, + {file = "ujson-5.12.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e584d0cdd37cac355aca52ed788d1a2d939d6837e2870d3b70e585db24025a50"}, + {file = "ujson-5.12.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0fe9128e75c6aa6e9ae06c1408d6edd9179a2fef0fe6d9cda3166b887eba521d"}, + {file = "ujson-5.12.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3ed5cb149892141b1e77ef312924a327f2cc718b34247dae346ed66329e1b8be"}, + {file = "ujson-5.12.0-cp310-cp310-win32.whl", hash = "sha256:973b7d7145b1ac553a7466a64afa8b31ec2693d7c7fff6a755059e0a2885dfd2"}, + {file = "ujson-5.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:1d072a403d82aef8090c6d4f728e3a727dfdba1ad3b7fa3a052c3ecbd37e73cb"}, + {file = "ujson-5.12.0-cp310-cp310-win_arm64.whl", hash = "sha256:55ede2a7a051b3b7e71a394978a098d71b3783e6b904702ff45483fad434ae2d"}, + {file = "ujson-5.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00"}, + {file = "ujson-5.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797"}, + {file = "ujson-5.12.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65"}, + {file = "ujson-5.12.0-cp311-cp311-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e"}, + {file = "ujson-5.12.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab"}, + {file = "ujson-5.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61"}, + {file = "ujson-5.12.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f"}, + {file = "ujson-5.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94"}, + {file = "ujson-5.12.0-cp311-cp311-win32.whl", hash = "sha256:006428d3813b87477d72d306c40c09f898a41b968e57b15a7d88454ecc42a3fb"}, + {file = "ujson-5.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:40aa43a7a3a8d2f05e79900858053d697a88a605e3887be178b43acbcd781161"}, + {file = "ujson-5.12.0-cp311-cp311-win_arm64.whl", hash = "sha256:561f89cc82deeae82e37d4a4764184926fb432f740a9691563a391b13f7339a4"}, + {file = "ujson-5.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a"}, + {file = "ujson-5.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052"}, + {file = "ujson-5.12.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57"}, + {file = "ujson-5.12.0-cp312-cp312-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2"}, + {file = "ujson-5.12.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827"}, + {file = "ujson-5.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb"}, + {file = "ujson-5.12.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84"}, + {file = "ujson-5.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759"}, + {file = "ujson-5.12.0-cp312-cp312-win32.whl", hash = "sha256:2a248750abce1c76fbd11b2e1d88b95401e72819295c3b851ec73399d6849b3d"}, + {file = "ujson-5.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:1b5c6ceb65fecd28a1d20d1eba9dbfa992612b86594e4b6d47bb580d2dd6bcb3"}, + {file = "ujson-5.12.0-cp312-cp312-win_arm64.whl", hash = "sha256:9a5fcbe7b949f2e95c47ea8a80b410fcdf2da61c98553b45a4ee875580418b68"}, + {file = "ujson-5.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8"}, + {file = "ujson-5.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654"}, + {file = "ujson-5.12.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da"}, + {file = "ujson-5.12.0-cp313-cp313-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b"}, + {file = "ujson-5.12.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a"}, + {file = "ujson-5.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487"}, + {file = "ujson-5.12.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87"}, + {file = "ujson-5.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed"}, + {file = "ujson-5.12.0-cp313-cp313-win32.whl", hash = "sha256:76bf3e7406cf23a3e1ca6a23fb1fb9ea82f4f6bd226fe226e09146b0194f85dc"}, + {file = "ujson-5.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:15e555c4caca42411270b2ed2b2ebc7b3a42bb04138cef6c956e1f1d49709fe2"}, + {file = "ujson-5.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:bd03472c36fa3a386a6deb887113b9e3fa40efba8203eb4fe786d3c0ccc724f6"}, + {file = "ujson-5.12.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef"}, + {file = "ujson-5.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9"}, + {file = "ujson-5.12.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c"}, + {file = "ujson-5.12.0-cp314-cp314-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc"}, + {file = "ujson-5.12.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961"}, + {file = "ujson-5.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6"}, + {file = "ujson-5.12.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad"}, + {file = "ujson-5.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4"}, + {file = "ujson-5.12.0-cp314-cp314-win32.whl", hash = "sha256:e6369ac293d2cc40d52577e4fa3d75a70c1aae2d01fa3580a34a4e6eff9286b9"}, + {file = "ujson-5.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:31348a0ffbfc815ce78daac569d893349d85a0b57e1cd2cdbba50b7f333784da"}, + {file = "ujson-5.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:6879aed770557f0961b252648d36f6fdaab41079d37a2296b5649fd1b35608e0"}, + {file = "ujson-5.12.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d"}, + {file = "ujson-5.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983"}, + {file = "ujson-5.12.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315"}, + {file = "ujson-5.12.0-cp314-cp314t-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e"}, + {file = "ujson-5.12.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0"}, + {file = "ujson-5.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c"}, + {file = "ujson-5.12.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e"}, + {file = "ujson-5.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e"}, + {file = "ujson-5.12.0-cp314-cp314t-win32.whl", hash = "sha256:f7a0430d765f9bda043e6aefaba5944d5f21ec43ff4774417d7e296f61917382"}, + {file = "ujson-5.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:ccbfd94e59aad4a2566c71912b55f0547ac1680bfac25eb138e6703eb3dd434e"}, + {file = "ujson-5.12.0-cp314-cp314t-win_arm64.whl", hash = "sha256:42d875388fbd091c7ea01edfff260f839ba303038ffb23475ef392012e4d63dd"}, + {file = "ujson-5.12.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c"}, + {file = "ujson-5.12.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d"}, + {file = "ujson-5.12.0-graalpy312-graalpy250_312_native-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b"}, + {file = "ujson-5.12.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3"}, + {file = "ujson-5.12.0-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:8712b61eb1b74a4478cfd1c54f576056199e9f093659334aeb5c4a6b385338e5"}, + {file = "ujson-5.12.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927"}, + {file = "ujson-5.12.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da"}, + {file = "ujson-5.12.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688"}, + {file = "ujson-5.12.0-pp311-pypy311_pp73-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235"}, + {file = "ujson-5.12.0-pp311-pypy311_pp73-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e"}, + {file = "ujson-5.12.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:ab9056d94e5db513d9313b34394f3a3b83e6301a581c28ad67773434f3faccab"}, + {file = "ujson-5.12.0.tar.gz", hash = "sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4"}, +] + [[package]] name = "urllib3" version = "1.26.20" @@ -802,22 +1017,22 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "urllib3" -version = "2.3.0" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main"] markers = "python_version >= \"3.10\"" files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "wrapt" @@ -908,18 +1123,6 @@ files = [ {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, ] -[[package]] -name = "xmltodict" -version = "0.14.2" -description = "Makes working with XML feel like you are working with JSON" -optional = false -python-versions = ">=3.6" -groups = ["main"] -files = [ - {file = "xmltodict-0.14.2-py2.py3-none-any.whl", hash = "sha256:20cc7d723ed729276e808f26fb6b3599f786cbc37e06c65e192ba77c40f20aac"}, - {file = "xmltodict-0.14.2.tar.gz", hash = "sha256:201e7c28bb210e374999d1dde6382923ab0ed1a8a5faeece48ab525b7810a553"}, -] - [[package]] name = "zipp" version = "3.20.2" @@ -941,9 +1144,9 @@ test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.funct type = ["pytest-mypy"] [extras] -dev = ["botocore", "flake8", "pytest", "pytest-benchmark", "requests"] +dev = ["botocore", "flake8", "pytest", "pytest", "pytest-benchmark", "requests", "requests"] [metadata] lock-version = "2.1" -python-versions = ">=3.8.0,<4" -content-hash = "f6a2f7355200da107aa5b027d6fe4fb6bdb5a898ce8298a56e6ac39fe8d8e34d" +python-versions = ">=3.8.0,<3.15" +content-hash = "3da1bc2540691200481913d90171aa3a6a3700cb32059b9462dfd64f9f51d092" diff --git a/pyproject.toml b/pyproject.toml index ec95a738..5fe65ae7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ classifiers = [ ] [tool.poetry.dependencies] -python = ">=3.8.0,<4" +python = ">=3.8.0,<3.15" datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" ddtrace = [ @@ -35,11 +35,21 @@ ddtrace = [ ] ujson = [ {version = ">=5.10.0,<5.12.0", python = ">=3.8,<3.10"}, - {version = ">=5.12.0", python = ">=3.10"} + {version = "^5.12.0", python = ">=3.10"}, +] +urllib3 = [ + {version = ">=1.25.4,<1.27", python = ">=3.8,<3.10"}, + {version = "^2.6.3", python = ">=3.10"}, ] botocore = { version = "^1.34.0", optional = true } -requests = { version ="^2.22.0", optional = true } -pytest = { version= "^8.0.0", optional = true } +requests = [ + { version = "^2.22.0", optional = true, python = ">=3.8,<3.10" }, + { version = "^2.33.0", optional = true, python = ">=3.10" }, +] +pytest = [ + { version = "^8.3.4", optional = true, python = ">=3.8,<3.10" }, + { version = "^9.0.3", optional = true, python = ">=3.10" }, +] pytest-benchmark = { version = "^4.0", optional = true } flake8 = { version = "^5.0.4", optional = true } diff --git a/tests/integration/package-lock.json b/tests/integration/package-lock.json index 5990cc8d..c761c550 100644 --- a/tests/integration/package-lock.json +++ b/tests/integration/package-lock.json @@ -57,7 +57,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/appdirectory/-/appdirectory-0.1.0.tgz", "integrity": "sha512-DJ5DV8vZXBbusyiyPlH28xppwS8eAMRuuyMo88xeEcf4bV64lbLtbxRxqixZuJBXsZzLtXFmA13GwVjJc7vdQw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, "license": "MIT" }, @@ -76,9 +75,9 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -355,7 +354,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -405,7 +403,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "license": "ISC", "dependencies": { @@ -517,9 +514,9 @@ } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, "license": "MIT", "dependencies": { @@ -569,7 +566,6 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", "dev": true, "license": "MIT" }, @@ -607,9 +603,9 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -633,6 +629,27 @@ "dev": true, "license": "MIT" }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -763,7 +780,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -784,9 +800,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -797,11 +813,14 @@ } }, "node_modules/serverless-plugin-datadog": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/serverless-plugin-datadog/-/serverless-plugin-datadog-2.18.0.tgz", - "integrity": "sha512-RUdCNjUk+uUKQYgQBjK0WNeYJ7lM2/RScqg/LjVSfv5EACeJ3iIUPz1c4bS2jtiH05al8qXudNb6QDkv9zxG7w==", + "version": "2.34.1", + "resolved": "https://registry.npmjs.org/serverless-plugin-datadog/-/serverless-plugin-datadog-2.34.1.tgz", + "integrity": "sha512-oDLh+73a7UPgagvWbMGkbTXK2n7+zGeN8aGDhxza5P0jJFpdwICFArkC72CTLOVcY4JYpgB7VAvbbVS9HAamOA==", "dev": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "dependencies": { + "node-fetch": "^2.6.1" + } }, "node_modules/serverless-python-requirements": { "version": "6.1.2", @@ -895,9 +914,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, "license": "MIT", "engines": { @@ -932,6 +951,37 @@ "node": ">= 6" } }, + "node_modules/split2/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/split2/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/sprintf-kit": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/sprintf-kit/-/sprintf-kit-2.0.2.tgz", @@ -995,6 +1045,13 @@ "node": ">=8" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", @@ -1029,6 +1086,24 @@ "dev": true, "license": "MIT" }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/tests/integration/package.json b/tests/integration/package.json index 8dae6aca..a3ac9ef5 100644 --- a/tests/integration/package.json +++ b/tests/integration/package.json @@ -2,5 +2,11 @@ "devDependencies": { "serverless-plugin-datadog": "^2.18.0", "serverless-python-requirements": "^6.1.2" + }, + "resolutions": { + "minimatch": "^3.1.3" + }, + "overrides": { + "minimatch": "^3.1.3" } } diff --git a/tests/integration/requirements.txt b/tests/integration/requirements.txt index 343ea025..0275d888 100644 --- a/tests/integration/requirements.txt +++ b/tests/integration/requirements.txt @@ -1,4 +1,5 @@ certifi==2024.12.14 charset-normalizer==3.4.1 idna==3.10 -requests==2.32.4 +requests==2.32.4; python_version < "3.10" +requests==2.33.1; python_version >= "3.10" diff --git a/tests/integration/yarn.lock b/tests/integration/yarn.lock index 7477e8da..fc8b4d91 100644 --- a/tests/integration/yarn.lock +++ b/tests/integration/yarn.lock @@ -2,62 +2,62 @@ # yarn lockfile v1 -"@iarna/toml@^2.2.5": - version "2.2.5" - resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz" - integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== - "2-thenable@^1.0.0": version "1.0.0" - resolved "https://registry.npmjs.org/2-thenable/-/2-thenable-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/2-thenable/-/2-thenable-1.0.0.tgz#56e9a2e363293b1e507f501aac1aa9927670b2fc" integrity sha512-HqiDzaLDFCXkcCO/SwoyhRwqYtINFHF7t9BDRq4x90TOKNAJpiqUt9X5lQ08bwxYzc067HUywDjGySpebHcUpw== dependencies: d "1" es5-ext "^0.10.47" +"@iarna/toml@^2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" + integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== + ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^4.0.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" appdirectory@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/appdirectory/-/appdirectory-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/appdirectory/-/appdirectory-0.1.0.tgz#eb6c816320e7b2ab16f5ed997f28d8205df56375" integrity sha512-DJ5DV8vZXBbusyiyPlH28xppwS8eAMRuuyMo88xeEcf4bV64lbLtbxRxqixZuJBXsZzLtXFmA13GwVjJc7vdQw== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== + version "1.1.14" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.14.tgz#d9de602370d91347cd9ddad1224d4fd701eb348b" + integrity sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" camelcase@^5.0.0: version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== child-process-ext@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/child-process-ext/-/child-process-ext-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/child-process-ext/-/child-process-ext-2.1.1.tgz#f7cf4e68fef60c4c8ee911e1b402413191467dc3" integrity sha512-0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA== dependencies: cross-spawn "^6.0.5" @@ -68,7 +68,7 @@ child-process-ext@^2.1.1: cliui@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" @@ -77,29 +77,29 @@ cliui@^6.0.0: color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cross-spawn@^6.0.5: version "6.0.6" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.6.tgz#30d0efa0712ddb7eb5a76e1e8721bffafa6b5d57" integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== dependencies: nice-try "^1.0.4" @@ -108,9 +108,9 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -d@^1.0.1, d@^1.0.2, d@1: +d@1, d@^1.0.1, d@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== dependencies: es5-ext "^0.10.64" @@ -118,12 +118,12 @@ d@^1.0.1, d@^1.0.2, d@1: decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== duration@^0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/duration/-/duration-0.2.2.tgz#ddf149bc3bc6901150fe9017111d016b3357f529" integrity sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg== dependencies: d "1" @@ -131,12 +131,12 @@ duration@^0.2.2: emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== es5-ext@^0.10.35, es5-ext@^0.10.47, es5-ext@^0.10.49, es5-ext@^0.10.53, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14, es5-ext@~0.10.46: version "0.10.64" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== dependencies: es6-iterator "^2.0.3" @@ -146,7 +146,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.47, es5-ext@^0.10.49, es5-ext@^0.10.53, es5-ext@ es6-iterator@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" @@ -155,7 +155,7 @@ es6-iterator@^2.0.3: es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.4" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== dependencies: d "^1.0.2" @@ -163,7 +163,7 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: esniff@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== dependencies: d "^1.0.1" @@ -173,7 +173,7 @@ esniff@^2.0.1: event-emitter@^0.3.5: version "0.3.5" - resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== dependencies: d "1" @@ -181,14 +181,14 @@ event-emitter@^0.3.5: ext@^1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: type "^2.7.2" find-up@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -196,7 +196,7 @@ find-up@^4.1.0: fs-extra@^10.1.0: version "10.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" @@ -205,17 +205,17 @@ fs-extra@^10.1.0: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== get-caller-file@^2.0.1: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== glob-all@^3.3.1: version "3.3.1" - resolved "https://registry.npmjs.org/glob-all/-/glob-all-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.3.1.tgz#6be2d5d8276902319f640fbf839fbe15b35e7667" integrity sha512-Y+ESjdI7ZgMwfzanHZYQ87C59jOO0i+Hd+QYtVt9PhLi6d8wlOpzQnfBxWUlaTuAoR3TkybLqqbIoWveU4Ji7Q== dependencies: glob "^7.2.3" @@ -223,7 +223,7 @@ glob-all@^3.3.1: glob@^7.1.3, glob@^7.2.3: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -235,80 +235,80 @@ glob@^7.1.3, glob@^7.2.3: graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== immediate@~3.0.5: version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@^2.0.3, inherits@~2.0.3, inherits@2: +inherits@2, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== is-docker@^2.0.0: version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-primitive@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-3.0.1.tgz#98c4db1abff185485a657fc2905052b940524d05" integrity sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w== is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== dependencies: universalify "^2.0.0" optionalDependencies: @@ -316,7 +316,7 @@ jsonfile@^6.0.1: jszip@^3.10.1: version "3.10.1" - resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== dependencies: lie "~3.3.0" @@ -326,36 +326,36 @@ jszip@^3.10.1: lie@~3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== dependencies: immediate "~3.0.5" locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.uniqby@^4.7.0: version "4.7.0" - resolved "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== lodash.values@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" integrity sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q== log@^6.0.0: version "6.3.2" - resolved "https://registry.npmjs.org/log/-/log-6.3.2.tgz" + resolved "https://registry.yarnpkg.com/log/-/log-6.3.2.tgz#8e37a672b06161acc994e2b679726c7f3c011016" integrity sha512-ek8NRg/OPvS9ISOJNWNAz5vZcpYacWNFDWNJjj5OXsc6YuKacfey6wF04cXz/tOJIVrZ2nGSkHpAY5qKtF6ISg== dependencies: d "^1.0.2" @@ -366,77 +366,84 @@ log@^6.0.0: type "^2.7.3" uni-global "^1.0.0" -minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== +minimatch@^3.1.1, minimatch@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" next-tick@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-fetch@^2.6.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@~1.0.2: version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== readable-stream@^3.0.0: version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -445,7 +452,7 @@ readable-stream@^3.0.0: readable-stream@~2.3.6: version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -458,44 +465,51 @@ readable-stream@~2.3.6: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + semver@^5.5.0: version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^7.6.0: - version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + version "7.7.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a" + integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== serverless-plugin-datadog@^2.18.0: - version "2.18.0" - resolved "https://registry.npmjs.org/serverless-plugin-datadog/-/serverless-plugin-datadog-2.18.0.tgz" - integrity sha512-RUdCNjUk+uUKQYgQBjK0WNeYJ7lM2/RScqg/LjVSfv5EACeJ3iIUPz1c4bS2jtiH05al8qXudNb6QDkv9zxG7w== + version "2.34.1" + resolved "https://registry.yarnpkg.com/serverless-plugin-datadog/-/serverless-plugin-datadog-2.34.1.tgz#be9de0f9515be1211fdb578db650b716340b9470" + integrity sha512-oDLh+73a7UPgagvWbMGkbTXK2n7+zGeN8aGDhxza5P0jJFpdwICFArkC72CTLOVcY4JYpgB7VAvbbVS9HAamOA== + dependencies: + node-fetch "^2.6.1" serverless-python-requirements@^6.1.2: version "6.1.2" - resolved "https://registry.npmjs.org/serverless-python-requirements/-/serverless-python-requirements-6.1.2.tgz" + resolved "https://registry.yarnpkg.com/serverless-python-requirements/-/serverless-python-requirements-6.1.2.tgz#21a222c06ac52736c969b60e251a7e2f606a6a33" integrity sha512-pas27CBxxaLTU5XMYnCVPJc+LVdm65Ys5olNvRWRqfUaZwTfD/7KSSt2XPSRme8BeJubroslaiOtWPP+IrxTVA== dependencies: "@iarna/toml" "^2.2.5" @@ -517,12 +531,12 @@ serverless-python-requirements@^6.1.2: set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-value@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-4.1.0.tgz#aa433662d87081b75ad88a4743bd450f044e7d09" integrity sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw== dependencies: is-plain-object "^2.0.4" @@ -530,114 +544,139 @@ set-value@^4.1.0: setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== sha256-file@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/sha256-file/-/sha256-file-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/sha256-file/-/sha256-file-1.0.0.tgz#02cade5e658da3fbc167c3270bdcdfd5409f1b65" integrity sha512-nqf+g0veqgQAkDx0U2y2Tn2KWyADuuludZTw9A7J3D+61rKlIIl9V5TS4mfnwKuXZOH9B7fQyjYJ9pKRHIsAyg== shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shell-quote@^1.8.1: - version "1.8.2" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz" - integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== + version "1.8.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== split2@^3.1.1: version "3.2.2" - resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== dependencies: readable-stream "^3.0.0" sprintf-kit@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/sprintf-kit/-/sprintf-kit-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/sprintf-kit/-/sprintf-kit-2.0.2.tgz#e79f0c6076d2bc656b5fb55fa43b737ca98d3ecf" integrity sha512-lnapdj6W4LflHZGKvl9eVkz5YF0xaTrqpRWVA4cNVOTedwqifIP8ooGImldzT/4IAN5KXFQAyXTdLidYVQdyag== dependencies: es5-ext "^0.10.64" stream-promise@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/stream-promise/-/stream-promise-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/stream-promise/-/stream-promise-3.2.0.tgz#bad976f2d0e1f11d56cc95cc11907cfd869a27ff" integrity sha512-P+7muTGs2C8yRcgJw/PPt61q7O517tDHiwYEzMWo1GSBCcZedUMT/clz7vUNsSxFphIlJ6QUL4GexQKlfJoVtA== dependencies: "2-thenable" "^1.0.0" es5-ext "^0.10.49" is-stream "^1.1.0" -string_decoder@^1.1.1, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + type@^2.5.0, type@^2.7.2, type@^2.7.3: version "2.7.3" - resolved "https://registry.npmjs.org/type/-/type-2.7.3.tgz" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486" integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== uni-global@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/uni-global/-/uni-global-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/uni-global/-/uni-global-1.0.0.tgz#3583c449e87a2d9dc270ea221410a649bcdad040" integrity sha512-WWM3HP+siTxzIWPNUg7hZ4XO8clKi6NoCAJJWnuRL+BAqyFXF8gC03WNyTefGoUXYc47uYgXxpKLIEvo65PEHw== dependencies: type "^2.5.0" universalify@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-module@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which@^1.2.9: version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -646,17 +685,17 @@ wrap-ansi@^6.2.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== y18n@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== yargs-parser@^18.1.2: version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" @@ -664,7 +703,7 @@ yargs-parser@^18.1.2: yargs@^15.3.1: version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" From 3137af05ee59b01689cce2700cbb6e4ce13a89ea Mon Sep 17 00:00:00 2001 From: Olivier Nzia Date: Thu, 16 Apr 2026 10:39:26 -0400 Subject: [PATCH 090/107] v8.124.0 (#798) --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index d11f7a1f..a1dc127d 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.124.0.dev0" +__version__ = "8.124.0" diff --git a/pyproject.toml b/pyproject.toml index 5fe65ae7..34994245 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.124.0.dev0" +version = "8.124.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 714156f80a9c0b258a582e63c0f2989e7dd92a89 Mon Sep 17 00:00:00 2001 From: Nicolas Catoni Date: Thu, 16 Apr 2026 18:36:41 +0200 Subject: [PATCH 091/107] chore(ci): use dd-sts for system-tests test optimization (#788) * chore(ci): use dd-sts for system-tests test optimization * chore(ci): remove dd_sts_policy from system-tests subworkflow * chore(ci): remove unneeded permissions from system-tests subworkflow * chore(ci): pin system-tests workflow to 1e5d6b709 * Remove API key * fix: add contents:read permission to system-tests workflow call * chore(ci): pass ref to system-tests reusable workflow --- .github/workflows/system_tests.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/system_tests.yml b/.github/workflows/system_tests.yml index f6e23a0f..04e08246 100644 --- a/.github/workflows/system_tests.yml +++ b/.github/workflows/system_tests.yml @@ -28,15 +28,13 @@ jobs: system-tests: needs: - build - uses: DataDog/system-tests/.github/workflows/system-tests.yml@main - secrets: - DD_API_KEY: ${{ secrets.DD_API_KEY }} - TEST_OPTIMIZATION_API_KEY: ${{ secrets.TEST_OPTIMIZATION_API_KEY }} + uses: DataDog/system-tests/.github/workflows/system-tests.yml@1e5d6b7096279ca43ce4826fda3cc805635b63c1 permissions: contents: read - packages: write + id-token: write with: library: python_lambda + ref: 1e5d6b7096279ca43ce4826fda3cc805635b63c1 binaries_artifact: binaries scenarios_groups: tracer_release skip_empty_scenarios: true From c44193198f8e2305b48e01979b37ce18e0fe8ccb Mon Sep 17 00:00:00 2001 From: Olivier John Ndjike Nzia Date: Fri, 17 Apr 2026 10:27:11 -0400 Subject: [PATCH 092/107] v8.125.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index a1dc127d..0c1404f8 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.124.0" +__version__ = "8.125.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index 34994245..105fa4d5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.124.0" +version = "8.125.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 3e094174172e641e0ddc7581af9c5924334915e5 Mon Sep 17 00:00:00 2001 From: Nicolas Catoni Date: Mon, 20 Apr 2026 18:00:18 +0200 Subject: [PATCH 093/107] Remove system-tests pin (#801) --- .github/workflows/system_tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/system_tests.yml b/.github/workflows/system_tests.yml index 04e08246..bc6b05e9 100644 --- a/.github/workflows/system_tests.yml +++ b/.github/workflows/system_tests.yml @@ -28,13 +28,12 @@ jobs: system-tests: needs: - build - uses: DataDog/system-tests/.github/workflows/system-tests.yml@1e5d6b7096279ca43ce4826fda3cc805635b63c1 + uses: DataDog/system-tests/.github/workflows/system-tests.yml@main permissions: contents: read id-token: write with: library: python_lambda - ref: 1e5d6b7096279ca43ce4826fda3cc805635b63c1 binaries_artifact: binaries scenarios_groups: tracer_release skip_empty_scenarios: true From d99780273021614bc0d0b079a12cbc78cd936ec4 Mon Sep 17 00:00:00 2001 From: Olivier Nzia Date: Fri, 24 Apr 2026 12:09:19 -0400 Subject: [PATCH 094/107] Onzia/add us2 (#802) * add us-2 * typo * update aws role * update usage comment --- scripts/publish_govcloud.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/publish_govcloud.sh b/scripts/publish_govcloud.sh index 5edd3b08..19c8c17c 100755 --- a/scripts/publish_govcloud.sh +++ b/scripts/publish_govcloud.sh @@ -9,7 +9,7 @@ # Download button on the `layer bundle` job. This will be a zip file containing # all of the required layers. Run this script as follows: # -# ENVIRONMENT=[us1-staging-fed or us1-fed] [LAYER_NAME_SUFFIX=optional-layer-suffix] [REGIONS=us-gov-west-1] ./scripts/publish_govcloud.sh +# CI_COMMIT_TAG= ENVIRONMENT=[us1-staging-fed|us1-fed|us2-fed] [LAYER_NAME_SUFFIX=optional-layer-suffix] [REGIONS=us-gov-west-1] ./scripts/publish_govcloud.sh # # protip: you can drag the zip file from finder into your terminal to insert # its path. @@ -49,9 +49,17 @@ elif [ $ENVIRONMENT = "us1-fed" ]; then echo "[ERROR]: Unexpected package name: $PACKAGE_NAME" exit 1 fi +elif [ $ENVIRONMENT = "us2-fed" ]; then + AWS_VAULT_ROLE=sso-govcloud-fed-us2-lambda-layer-operator + export STAGE=gov-prod + + if [[ ! "$PACKAGE_NAME" =~ ^datadog_lambda_py-signed-bundle-[0-9]+$ ]]; then + echo "[ERROR]: Unexpected package name: $PACKAGE_NAME" + exit 1 + fi else - printf "[ERROR]: ENVIRONMENT not supported, must be us1-staging-fed or us1-fed.\n" + printf "[ERROR]: ENVIRONMENT not supported, must be us1-staging-fed, us1-fed, or us2-fed.\n" exit 1 fi From 89084d6b80adce5815e37f571f8d6504a711ecbb Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Fri, 1 May 2026 09:55:16 -0400 Subject: [PATCH 095/107] fix: pin ddtrace to <4.8.0 to avoid import errors (#811) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 105fa4d5..79dc6ffa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" ddtrace = [ {version = ">=3.19.1,<4", python = ">=3.8,<3.10"}, - {version = ">=4.1.1,<5,!=4.6.*", python = ">=3.10"} + {version = ">=4.1.1,<5,!=4.6.*,<4.8.0", python = ">=3.10"} ] ujson = [ {version = ">=5.10.0,<5.12.0", python = ">=3.8,<3.10"}, From d237ec25e87ba62db84ed7c486705685bf094e62 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 4 May 2026 14:46:33 -0400 Subject: [PATCH 096/107] Replace use of _SpanPointer and AgentWriter (#812) * Replace use of _SpanPointer * Use SpanLink * fix * add trace id and span id * change how ids are added * new spanlink * fix new spanlink * cleanup * try not patching agentwriter * try except for Span._get_links * Remove AgentWriter patch * update amd snapshots * remove extra file * arm snapshots * remove extra * trying to fix snapshots * remove file * new amd snapshots? * remove bak --- pyproject.toml | 2 +- scripts/run_integration_tests.sh | 5 +- tests/integration/parse-json.js | 16 +- .../logs/async-metrics_python310.log | 1520 +++++++------- .../logs/async-metrics_python311.log | 1520 +++++++------- .../logs/async-metrics_python312.log | 1522 +++++++------- .../logs/async-metrics_python313.log | 1520 +++++++------- .../logs/async-metrics_python314.log | 1520 +++++++------- .../snapshots/logs/async-metrics_python38.log | 1418 ++++++------- .../snapshots/logs/async-metrics_python39.log | 1418 ++++++------- .../snapshots/logs/sync-metrics_python310.log | 1760 +++++++++-------- .../snapshots/logs/sync-metrics_python311.log | 1760 +++++++++-------- .../snapshots/logs/sync-metrics_python312.log | 1760 +++++++++-------- .../snapshots/logs/sync-metrics_python313.log | 1760 +++++++++-------- .../snapshots/logs/sync-metrics_python314.log | 1760 +++++++++-------- .../snapshots/logs/sync-metrics_python38.log | 1640 +++++++-------- .../snapshots/logs/sync-metrics_python39.log | 1640 +++++++-------- tests/test_tracing.py | 68 +- tests/test_wrapper.py | 1 - 19 files changed, 11717 insertions(+), 10893 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 79dc6ffa..105fa4d5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ datadog = ">=0.51.0,<1.0.0" wrapt = "^1.11.2" ddtrace = [ {version = ">=3.19.1,<4", python = ">=3.8,<3.10"}, - {version = ">=4.1.1,<5,!=4.6.*,<4.8.0", python = ">=3.10"} + {version = ">=4.1.1,<5,!=4.6.*", python = ">=3.10"} ] ujson = [ {version = ">=5.10.0,<5.12.0", python = ">=3.8,<3.10"}, diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index 1ec55289..aa47b279 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -263,8 +263,9 @@ for handler_name in "${LAMBDA_HANDLERS[@]}"; do echo "Writing logs to $function_snapshot_path because no snapshot exists yet" echo "$logs" >$function_snapshot_path else - # Compare new logs to snapshots - diff_output=$(echo "$logs" | sort | diff -w - <(sort $function_snapshot_path)) + # Compare new logs to snapshots (LC_ALL=C: stable sort; parse-json.js sorts object keys so + # e.g. span meta key order / trailing-comma lines do not vary between runs) + diff_output=$(echo "$logs" | LC_ALL=C sort | diff -w - <(LC_ALL=C sort $function_snapshot_path)) if [ $? -eq 1 ]; then if [ -n "$UPDATE_SNAPSHOTS" ]; then # If $UPDATE_SNAPSHOTS is set to true write the new logs over the current snapshot diff --git a/tests/integration/parse-json.js b/tests/integration/parse-json.js index 0e54e0dc..5aaed46e 100644 --- a/tests/integration/parse-json.js +++ b/tests/integration/parse-json.js @@ -7,10 +7,24 @@ var rl = readline.createInterface({ terminal: false }); +function sortKeys (value) { + if (value === null || typeof value !== 'object') { + return value + } + if (Array.isArray(value)) { + return value.map(sortKeys) + } + var sorted = {} + Object.keys(value).sort().forEach(function (key) { + sorted[key] = sortKeys(value[key]) + }) + return sorted +} + rl.on('line', function(line){ try { const obj = JSON.parse(line) - console.log(JSON.stringify(obj, null, 2)) + console.log(JSON.stringify(sortKeys(obj), null, 2)) } catch (e) { console.log(line) } diff --git a/tests/integration/snapshots/logs/async-metrics_python310.log b/tests/integration/snapshots/logs/async-metrics_python310.log index 5aef301e..78d81a62 100644 --- a/tests/integration/snapshots/logs/async-metrics_python310.log +++ b/tests/integration/snapshots/logs/async-metrics_python310.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.10.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,27 +13,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -42,132 +42,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python310", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -176,9 +183,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -189,27 +195,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +224,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python310", "functionname": "integration-tests-python-XXXX-async-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python310", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -306,9 +318,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -319,36 +330,37 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -356,158 +368,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -516,9 +535,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -529,27 +547,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -557,118 +576,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -677,9 +703,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -690,27 +715,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -718,133 +744,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python310", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -853,9 +886,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -866,27 +898,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -894,126 +927,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1022,9 +1062,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1035,27 +1074,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1063,135 +1103,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1200,9 +1247,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1213,27 +1259,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1241,124 +1288,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1367,9 +1421,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1380,27 +1433,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1408,123 +1462,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1533,9 +1594,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1546,27 +1606,28 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1574,131 +1635,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python310", - "functionname": "integration-tests-python-XXXX-async-metrics_python310", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python310", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/async-metrics_python311.log b/tests/integration/snapshots/logs/async-metrics_python311.log index d662cb7a..a282c6d8 100644 --- a/tests/integration/snapshots/logs/async-metrics_python311.log +++ b/tests/integration/snapshots/logs/async-metrics_python311.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.11.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,27 +13,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -42,132 +42,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python311", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -176,9 +183,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -189,27 +195,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +224,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python311", "functionname": "integration-tests-python-XXXX-async-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python311", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -306,9 +318,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -319,36 +330,37 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -356,158 +368,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -516,9 +535,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -529,27 +547,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -557,118 +576,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -677,9 +703,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -690,27 +715,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -718,133 +744,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python311", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -853,9 +886,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -866,27 +898,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -894,126 +927,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1022,9 +1062,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1035,27 +1074,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1063,135 +1103,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1200,9 +1247,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1213,27 +1259,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1241,124 +1288,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1367,9 +1421,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1380,27 +1433,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1408,123 +1462,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1533,9 +1594,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1546,27 +1606,28 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1574,131 +1635,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python311", - "functionname": "integration-tests-python-XXXX-async-metrics_python311", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python311", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/async-metrics_python312.log b/tests/integration/snapshots/logs/async-metrics_python312.log index 0e492dac..36221f26 100644 --- a/tests/integration/snapshots/logs/async-metrics_python312.log +++ b/tests/integration/snapshots/logs/async-metrics_python312.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.12.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,27 +13,28 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -42,132 +42,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python312", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -176,9 +183,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -189,27 +195,28 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +224,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python312", "functionname": "integration-tests-python-XXXX-async-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python312", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -306,9 +318,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -319,36 +330,37 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -356,158 +368,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -516,9 +535,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -529,27 +547,28 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -557,118 +576,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -677,9 +703,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -690,27 +715,28 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -718,133 +744,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python312", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -853,9 +886,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -866,27 +898,28 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -894,126 +927,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1022,9 +1062,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1035,174 +1074,181 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX +END Duration: XXXX ms Memory Used: XXXX MB { "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] ] } -END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1213,27 +1259,28 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1241,124 +1288,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1367,9 +1421,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1380,27 +1433,28 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1408,123 +1462,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1533,9 +1594,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1546,27 +1606,28 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1574,131 +1635,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python312", - "functionname": "integration-tests-python-XXXX-async-metrics_python312", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python312", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/async-metrics_python313.log b/tests/integration/snapshots/logs/async-metrics_python313.log index 6466246c..82b71904 100644 --- a/tests/integration/snapshots/logs/async-metrics_python313.log +++ b/tests/integration/snapshots/logs/async-metrics_python313.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.13.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,27 +13,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -42,132 +42,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python313", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -176,9 +183,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -189,27 +195,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +224,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python313", "functionname": "integration-tests-python-XXXX-async-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python313", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -306,9 +318,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -319,36 +330,37 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -356,158 +368,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -516,9 +535,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -529,27 +547,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -557,118 +576,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -677,9 +703,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -690,27 +715,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -718,133 +744,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python313", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -853,9 +886,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -866,27 +898,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -894,126 +927,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1022,9 +1062,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1035,27 +1074,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1063,135 +1103,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1200,9 +1247,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1213,27 +1259,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1241,124 +1288,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1367,9 +1421,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1380,27 +1433,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1408,123 +1462,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1533,9 +1594,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1546,27 +1606,28 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1574,131 +1635,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python313", - "functionname": "integration-tests-python-XXXX-async-metrics_python313", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python313", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python313", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/async-metrics_python314.log b/tests/integration/snapshots/logs/async-metrics_python314.log index 2ff4a6c1..cb121e11 100644 --- a/tests/integration/snapshots/logs/async-metrics_python314.log +++ b/tests/integration/snapshots/logs/async-metrics_python314.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.14.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,27 +13,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -42,132 +42,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -176,9 +183,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -189,27 +195,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +224,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python314", "functionname": "integration-tests-python-XXXX-async-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -306,9 +318,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -319,36 +330,37 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -356,158 +368,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -516,9 +535,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -529,27 +547,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -557,118 +576,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -677,9 +703,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -690,27 +715,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -718,133 +744,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -853,9 +886,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -866,27 +898,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -894,126 +927,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1022,9 +1062,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1035,27 +1074,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1063,135 +1103,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1200,9 +1247,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1213,27 +1259,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1241,124 +1288,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1367,9 +1421,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1380,27 +1433,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1408,123 +1462,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1533,9 +1594,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1546,27 +1606,28 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1574,131 +1635,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python314", - "functionname": "integration-tests-python-XXXX-async-metrics_python314", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python314", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/async-metrics_python38.log b/tests/integration/snapshots/logs/async-metrics_python38.log index d4c33fe5..d086acb2 100644 --- a/tests/integration/snapshots/logs/async-metrics_python38.log +++ b/tests/integration/snapshots/logs/async-metrics_python38.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.8.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,27 +13,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -42,131 +42,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", + "language": "python", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python38", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -175,9 +175,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -188,27 +187,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -216,86 +216,86 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", + "language": "python", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "runtime-id": "XXXX", "span.kind": "server", - "language": "python" + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -304,9 +304,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -317,36 +316,37 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -354,157 +354,157 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", + "language": "python", + "operation_name": "aws.dynamodb", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -513,9 +513,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -526,27 +525,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -554,117 +554,117 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "detail_type": "testdetail", + "language": "python", + "operation_name": "aws.eventbridge", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "eventbridge" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -673,9 +673,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -686,27 +685,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -714,132 +714,132 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", + "language": "python", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python38", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -848,9 +848,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -861,27 +860,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -889,125 +889,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1016,9 +1016,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1029,27 +1028,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1057,134 +1057,134 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1193,9 +1193,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1206,27 +1205,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1234,123 +1234,123 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "language": "python", + "message_id": "XXXX", + "operation_name": "aws.sns", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1359,9 +1359,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1372,27 +1371,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1400,122 +1400,122 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", + "operation_name": "aws.sqs", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1524,9 +1524,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1537,27 +1536,28 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1565,130 +1565,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", + "language": "python", + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python38", - "functionname": "integration-tests-python-XXXX-async-metrics_python38", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python38", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python38", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/async-metrics_python39.log b/tests/integration/snapshots/logs/async-metrics_python39.log index c12ed57f..1383dd98 100644 --- a/tests/integration/snapshots/logs/async-metrics_python39.log +++ b/tests/integration/snapshots/logs/async-metrics_python39.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.9.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,27 +13,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -42,131 +42,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", + "language": "python", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python39", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -175,9 +175,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -188,27 +187,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -216,86 +216,86 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", + "language": "python", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "runtime-id": "XXXX", "span.kind": "server", - "language": "python" + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -304,9 +304,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -317,36 +316,37 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -354,157 +354,157 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", + "language": "python", + "operation_name": "aws.dynamodb", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -513,9 +513,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -526,27 +525,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -554,117 +554,117 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "detail_type": "testdetail", + "language": "python", + "operation_name": "aws.eventbridge", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "eventbridge" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -673,9 +673,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -686,27 +685,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -714,132 +714,132 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", + "language": "python", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python39", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -848,9 +848,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -861,27 +860,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -889,125 +889,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1016,9 +1016,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1029,27 +1028,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1057,134 +1057,134 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1193,9 +1193,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1206,27 +1205,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1234,123 +1234,123 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "language": "python", + "message_id": "XXXX", + "operation_name": "aws.sns", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1359,9 +1359,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1372,27 +1371,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1400,122 +1400,122 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", + "operation_name": "aws.sqs", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1524,9 +1524,8 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1537,27 +1536,28 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "hello.dog", - "v": 1, "e": XXXX, + "m": "hello.dog", "t": [ "team:serverless", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "tests.integration.count", - "v": 21, "e": XXXX, + "m": "tests.integration.count", "t": [ "test:integration", "role:hello", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 21 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1565,130 +1565,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", + "language": "python", + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-async-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-async-metrics_python39", - "functionname": "integration-tests-python-XXXX-async-metrics_python39", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python39", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python39", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/sync-metrics_python310.log b/tests/integration/snapshots/logs/sync-metrics_python310.log index 997cc0e3..a230501e 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python310.log +++ b/tests/integration/snapshots/logs/sync-metrics_python310.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.10.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,7 +13,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -22,132 +22,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -158,36 +165,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -196,9 +205,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -209,7 +217,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +226,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", "functionname": "integration-tests-python-XXXX-sync-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -308,36 +322,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -346,9 +362,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -359,16 +374,17 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -376,158 +392,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -538,36 +561,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -576,9 +601,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -589,7 +613,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -597,118 +622,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -719,36 +751,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -757,9 +791,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -770,7 +803,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -778,133 +812,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -915,36 +956,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -953,9 +996,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -966,7 +1008,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -974,126 +1017,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1104,36 +1154,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1142,9 +1194,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1155,7 +1206,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1163,135 +1215,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1302,36 +1361,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1340,9 +1401,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1353,7 +1413,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1361,124 +1422,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1489,36 +1557,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1527,9 +1597,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1540,7 +1609,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1548,123 +1618,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1675,36 +1752,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1713,9 +1792,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1726,7 +1804,8 @@ START "runtime:python3.10", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python310_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1734,131 +1813,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", - "functionname": "integration-tests-python-XXXX-sync-metrics_python310", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python310", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python310", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1869,36 +1955,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/sync-metrics_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index 4880a904..41e8bc27 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python311.log +++ b/tests/integration/snapshots/logs/sync-metrics_python311.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.11.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,7 +13,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -22,132 +22,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -158,36 +165,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -196,9 +205,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -209,7 +217,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +226,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", "functionname": "integration-tests-python-XXXX-sync-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -308,36 +322,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -346,9 +362,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -359,16 +374,17 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -376,158 +392,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -538,36 +561,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -576,9 +601,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -589,7 +613,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -597,118 +622,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -719,36 +751,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -757,9 +791,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -770,7 +803,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -778,133 +812,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -915,36 +956,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -953,9 +996,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -966,7 +1008,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -974,126 +1017,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1104,36 +1154,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1142,9 +1194,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1155,7 +1206,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1163,135 +1215,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1302,36 +1361,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1340,9 +1401,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1353,7 +1413,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1361,124 +1422,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1489,36 +1557,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1527,9 +1597,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1540,7 +1609,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1548,123 +1618,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1675,36 +1752,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1713,9 +1792,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1726,7 +1804,8 @@ START "runtime:python3.11", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python311_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1734,131 +1813,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", - "functionname": "integration-tests-python-XXXX-sync-metrics_python311", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python311", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python311", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1869,36 +1955,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/sync-metrics_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index 0ed8cb0f..ba64c5f9 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python312.log +++ b/tests/integration/snapshots/logs/sync-metrics_python312.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.12.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,7 +13,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -22,132 +22,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -158,36 +165,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -196,9 +205,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -209,7 +217,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +226,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", "functionname": "integration-tests-python-XXXX-sync-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -308,36 +322,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -346,9 +362,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -359,16 +374,17 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -376,158 +392,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -538,36 +561,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -576,9 +601,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -589,7 +613,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -597,118 +622,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -719,36 +751,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -757,9 +791,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -770,7 +803,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -778,133 +812,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -915,36 +956,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -953,9 +996,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -966,7 +1008,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -974,126 +1017,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1104,36 +1154,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1142,9 +1194,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1155,7 +1206,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1163,135 +1215,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1302,36 +1361,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1340,9 +1401,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1353,7 +1413,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1361,124 +1422,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1489,36 +1557,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1527,9 +1597,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1540,7 +1609,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1548,123 +1618,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1675,36 +1752,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1713,9 +1792,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1726,7 +1804,8 @@ START "runtime:python3.12", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python312_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1734,131 +1813,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", - "functionname": "integration-tests-python-XXXX-sync-metrics_python312", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python312", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python312", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1869,36 +1955,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/sync-metrics_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index fca4631c..86c817ae 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python313.log +++ b/tests/integration/snapshots/logs/sync-metrics_python313.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.13.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,7 +13,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -22,132 +22,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -158,36 +165,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -196,9 +205,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -209,7 +217,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +226,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", "functionname": "integration-tests-python-XXXX-sync-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -308,36 +322,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -346,9 +362,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -359,16 +374,17 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -376,158 +392,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -538,36 +561,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -576,9 +601,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -589,7 +613,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -597,118 +622,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -719,36 +751,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -757,9 +791,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -770,7 +803,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -778,133 +812,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -915,36 +956,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -953,9 +996,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -966,7 +1008,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -974,126 +1017,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1104,36 +1154,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1142,9 +1194,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1155,7 +1206,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1163,135 +1215,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1302,36 +1361,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1340,9 +1401,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1353,7 +1413,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1361,124 +1422,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1489,36 +1557,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1527,9 +1597,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1540,7 +1609,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1548,123 +1618,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1675,36 +1752,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1713,9 +1792,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1726,7 +1804,8 @@ START "runtime:python3.13", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python313_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1734,131 +1813,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", - "functionname": "integration-tests-python-XXXX-sync-metrics_python313", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python313", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python313", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1869,36 +1955,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/sync-metrics_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log index 8b6eb8f0..c1398b0c 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python314.log +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.14.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,7 +13,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -22,132 +22,139 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -158,36 +165,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -196,9 +205,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -209,7 +217,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -217,87 +226,92 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", "functionname": "integration-tests-python-XXXX-sync-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -308,36 +322,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -346,9 +362,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -359,16 +374,17 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -376,158 +392,165 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.dynamodb", + "peer.service": "integration-tests-python", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -538,36 +561,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -576,9 +601,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -589,7 +613,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -597,118 +622,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", "_dd.p.dm": "-0", "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "eventbridge" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -719,36 +751,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -757,9 +791,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -770,7 +803,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -778,133 +812,140 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -915,36 +956,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -953,9 +996,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -966,7 +1008,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -974,126 +1017,133 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1104,36 +1154,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1142,9 +1194,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1155,7 +1206,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1163,135 +1215,142 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_name": "ObjectCreated:Put", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", + "peer.service": "integration-tests-python", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1302,36 +1361,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1340,9 +1401,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1353,7 +1413,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1361,124 +1422,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_id": "XXXX", + "operation_name": "aws.sns", + "peer.service": "integration-tests-python", + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1489,36 +1557,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1527,9 +1597,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1540,7 +1609,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1548,123 +1618,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "operation_name": "aws.sqs", + "peer.service": "integration-tests-python", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1675,36 +1752,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1713,9 +1792,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1726,7 +1804,8 @@ START "runtime:python3.14", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python314_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zstd","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1734,131 +1813,138 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_dd.svc_src": "m", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", - "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", + "peer.service": "integration-tests-python", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python314", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", - "span.kind": "server", + "_dd.svc_src": "m", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", - "functionname": "integration-tests-python-XXXX-sync-metrics_python314", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python314", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1869,36 +1955,38 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", + "_dd.base_service": "integration-tests-python", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", "language": "python", - "_dd.tags.process": "entrypoint.basedir:runtime,entrypoint.name:bootstrap,entrypoint.type:script,entrypoint.workdir:task,svc.user:true" + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log index 32296126..1293ded9 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python38.log +++ b/tests/integration/snapshots/logs/sync-metrics_python38.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.8.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,7 +13,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -22,131 +22,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", + "language": "python", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -157,35 +157,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -194,9 +194,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -207,7 +206,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -215,86 +215,86 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", + "language": "python", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "runtime-id": "XXXX", "span.kind": "server", - "language": "python" + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -305,35 +305,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -342,9 +342,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -355,16 +354,17 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -372,157 +372,157 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", + "language": "python", + "operation_name": "aws.dynamodb", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -533,35 +533,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -570,9 +570,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -583,7 +582,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -591,117 +591,117 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "detail_type": "testdetail", + "language": "python", + "operation_name": "aws.eventbridge", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "eventbridge" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -712,35 +712,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -749,9 +749,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -762,7 +761,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -770,132 +770,132 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", + "endpoint": "/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", + "language": "python", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -906,35 +906,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -943,9 +943,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -956,7 +955,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -964,125 +964,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1093,35 +1093,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1130,9 +1130,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1143,7 +1142,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1151,134 +1151,134 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1289,35 +1289,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1326,9 +1326,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1339,7 +1338,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1347,123 +1347,123 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "language": "python", + "message_id": "XXXX", + "operation_name": "aws.sns", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1474,35 +1474,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1511,9 +1511,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1524,7 +1523,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1532,122 +1532,122 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", + "operation_name": "aws.sqs", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1658,35 +1658,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1695,9 +1695,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1708,7 +1707,8 @@ START "runtime:python3.8", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python38_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1716,130 +1716,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", + "language": "python", + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python38", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", - "functionname": "integration-tests-python-XXXX-sync-metrics_python38", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python38", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python38", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1850,35 +1850,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/integration/snapshots/logs/sync-metrics_python39.log b/tests/integration/snapshots/logs/sync-metrics_python39.log index 1c1496d3..507eeda0 100644 --- a/tests/integration/snapshots/logs/sync-metrics_python39.log +++ b/tests/integration/snapshots/logs/sync-metrics_python39.log @@ -1,9 +1,8 @@ INIT_START Runtime Version: python:3.9.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -14,7 +13,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -22,131 +22,131 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.us-east-2.amazonaws.com", - "resource": "GET /", - "name": "aws.apigateway", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", - "endpoint": "/", - "http.method": "GET", - "resource_names": "GET /", - "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", - "span.kind": "server", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "Prod", - "request_id": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "sync", "_inferred_span.tag_source": "self", - "http.status_code": "200", - "http.route": "/", + "apiid": "XXXX", + "apiname": "XXXX", "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/70ixmpl4fl/stages/Prod", + "endpoint": "/", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/", + "http.useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", + "language": "python", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway", "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "true", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "http.method": "GET", "http.route": "/", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/Prod/", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -157,35 +157,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -194,9 +194,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -207,7 +206,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -215,86 +215,86 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", + "language": "python", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "runtime-id": "XXXX", "span.kind": "server", - "language": "python" + "span.name": "aws.lambda" }, "metrics": { - "process_id": XXXX, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -305,35 +305,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -342,9 +342,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -355,16 +354,17 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } { - "m": "datadog.serverless.dynamodb.stream.type", - "v": 1, "e": XXXX, + "m": "datadog.serverless.dynamodb.stream.type", "t": [ "streamtype:NEW_AND_OLD_IMAGES", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -372,157 +372,157 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "ExampleTableWithStream", - "resource": "ExampleTableWithStream", - "name": "aws.dynamodb", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.dynamodb", - "resource_names": "ExampleTableWithStream", - "span.kind": "server", - "tablename": "ExampleTableWithStream", - "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", - "event_id": "XXXX", - "event_name": "INSERT", - "event_version": "1.1", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_id": "XXXX", + "event_name": "INSERT", + "event_source_arn": "arn:aws:dynamodb:us-east-1:XXXX:us-east-1/ExampleTableWithStream/stream/2015-06-27T00:48:05.899", + "event_version": "1.1", + "language": "python", + "operation_name": "aws.dynamodb", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" }, { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.dynamodb.item", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "e2af34d333891f765c7f02d2da80895e", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", + "function_trigger.event_source": "dynamodb", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "dynamodb", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -533,35 +533,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -570,9 +570,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -583,7 +582,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -591,117 +591,117 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "eventbridge.custom.event.sender", - "resource": "eventbridge.custom.event.sender", - "name": "aws.eventbridge", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.eventbridge", - "resource_names": "eventbridge.custom.event.sender", - "span.kind": "server", - "detail_type": "testdetail", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "detail_type": "testdetail", + "language": "python", + "operation_name": "aws.eventbridge", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.eventbridge", "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", + "function_trigger.event_source": "eventbridge", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "eventbridge" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -712,35 +712,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -749,9 +749,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -762,7 +761,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -770,132 +770,132 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "GET /httpapi/get", - "name": "aws.httpapi", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "endpoint": "/httpapi/get", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", + "apiid": "XXXX", + "apiname": "XXXX", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", + "endpoint": "/httpapi/get", "http.method": "GET", "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", "http.source_ip": "XXXX", - "http.useragent": "curl/7.64.1", - "resource_names": "GET /httpapi/get", - "request_id": "XXXX", - "apiid": "XXXX", - "apiname": "XXXX", - "stage": "$default", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "http.route": "/httpapi/get", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/x02yirxc7a/stages/$default", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "http.useragent": "curl/7.64.1", + "language": "python", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.httpapi", "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX$default", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "http.method": "GET", "http.route": "/httpapi/get", - "http.status_code": "200" + "http.status_code": "200", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -906,35 +906,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -943,9 +943,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -956,7 +955,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -964,125 +964,125 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "EXAMPLE", - "resource": "EXAMPLE", - "name": "aws.kinesis", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.kinesis", - "resource_names": "EXAMPLE", - "span.kind": "server", - "streamname": "EXAMPLE", - "shardid": "shardId-XXXX", - "event_source_arn": "arn:aws:kinesis:EXAMPLE", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "async", + "_inferred_span.tag_source": "self", + "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "event_id": "XXXX", "event_name": "aws:kinesis:record", + "event_source_arn": "arn:aws:kinesis:EXAMPLE", "event_version": "1.0", + "language": "python", + "operation_name": "aws.kinesis", "partition_key": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", - "dd_resource_key": "arn:aws:kinesis:EXAMPLE", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.kinesis", "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", + "function_trigger.event_source": "kinesis", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "kinesis", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1093,35 +1093,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1130,9 +1130,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1143,7 +1142,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1151,134 +1151,134 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "example-bucket", - "resource": "example-bucket", - "name": "aws.s3", "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.s3", - "resource_names": "example-bucket", - "span.kind": "server", - "event_name": "ObjectCreated:Put", - "bucketname": "example-bucket", - "bucket_arn": "arn:aws:s3:::example-bucket", - "object_key": "test/key", - "object_size": "1024", - "object_etag": "XXXX", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", + "bucket_arn": "arn:aws:s3:::example-bucket", + "bucketname": "example-bucket", "dd_resource_key": "arn:aws:s3:::example-bucket", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", + "object_key": "test/key", + "object_size": "1024", + "operation_name": "aws.s3", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web", + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", "span_links": [ { - "trace_id": "XXXX", - "span_id": "XXXX", "attributes": { - "ptr.kind": "aws.s3.object", + "link.kind": "span-pointer", "ptr.dir": "u", "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", - "link.kind": "span-pointer" - } + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" } - ] + ], + "trace_id": "XXXX", + "type": "web" }, { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", + "function_trigger.event_source": "s3", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "s3", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1289,35 +1289,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1326,9 +1326,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1339,7 +1338,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1347,123 +1347,123 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "sns-lambda", - "resource": "sns-lambda", - "name": "aws.sns", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.sns", - "resource_names": "sns-lambda", - "span.kind": "server", - "topicname": "sns-lambda", - "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", - "message_id": "XXXX", - "type": "Notification", - "subject": "TestInvoke", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "language": "python", + "message_id": "XXXX", + "operation_name": "aws.sns", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "resource_names": "sns-lambda", + "runtime-id": "XXXX", + "span.kind": "server", + "subject": "TestInvoke", + "topic_arn": "arn:aws:sns:us-east-2:XXXX:us-east-2-lambda", + "topicname": "sns-lambda", + "type": "Notification" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sns", "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "sns", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1474,35 +1474,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1511,9 +1511,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1524,7 +1523,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1532,122 +1532,122 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "my-queue", - "resource": "my-queue", - "name": "aws.sqs", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", - "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", - "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", "_inferred_span.synchronicity": "async", "_inferred_span.tag_source": "self", "dd_resource_key": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", + "operation_name": "aws.sqs", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.sqs", "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", + "datadog_lambda": "X.X.X", + "dd_trace": "X.X.X", "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "XXXX", "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "request_id": "XXXX", "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", - "datadog_lambda": "X.X.X", - "dd_trace": "X.X.X", - "span.name": "aws.lambda", "span.kind": "server", - "function_trigger.event_source": "sqs", - "function_trigger.event_source_arn": "XXXX" + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1658,35 +1658,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1695,9 +1695,8 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept END Duration: XXXX ms Memory Used: XXXX MB START { - "m": "aws.lambda.enhanced.invocations", - "v": 1, "e": XXXX, + "m": "aws.lambda.enhanced.invocations", "t": [ "region:eu-west-1", "account_id:XXXX", @@ -1708,7 +1707,8 @@ START "runtime:python3.9", "datadog_lambda:vXX", "dd_lambda_layer:datadog-python39_X.X.X" - ] + ], + "v": 1 } HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","Accept:*/*","Connection:keep-alive","User-Agent:python-requests/X.X.X","traceparent:XXX","tracestate:XXX @@ -1716,130 +1716,130 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "XXXX.execute-api.eu-west-1.amazonaws.com", - "resource": "$default", - "name": "aws.apigateway.websocket", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", - "operation_name": "aws.apigateway.websocket", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", - "endpoint": "$default", - "resource_names": "$default", - "span.kind": "server", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "_dd.peer.service.source": "peer.service", + "_inferred_span.synchronicity": "sync", + "_inferred_span.tag_source": "self", "apiid": "XXXX", "apiname": "XXXX", - "stage": "dev", - "request_id": "XXXX", "connection_id": "XXXX=", + "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "endpoint": "$default", "event_type": "MESSAGE", - "message_direction": "IN", - "_inferred_span.synchronicity": "sync", - "_inferred_span.tag_source": "self", "http.status_code": "200", - "dd_resource_key": "arn:aws:apigateway:eu-west-1:XXXX:eu-west-1/restapis/p62c47itsb/stages/dev", + "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default", + "language": "python", + "message_direction": "IN", + "operation_name": "aws.apigateway.websocket", "peer.service": "integration-tests-python", - "_dd.peer.service.source": "peer.service", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" }, "metrics": { - "process_id": XXXX, "_dd._inferred_span": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, - "type": "web" - }, - { - "trace_id": "XXXX", + "name": "aws.apigateway.websocket", "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", "span_id": "XXXX", - "service": "integration-tests-python", - "resource": "integration-tests-python-XXXX-sync-metrics_python39", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "cold_start": "false", - "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", - "function_version": "$LATEST", - "request_id": "XXXX", - "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", - "functionname": "integration-tests-python-XXXX-sync-metrics_python39", "datadog_lambda": "X.X.X", "dd_trace": "X.X.X", - "span.name": "aws.lambda", + "function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-sync-metrics_python39", "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "XXXX", - "span.kind": "server", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", + "http.status_code": "200", "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.status_code": "200" + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", + "span.kind": "server", + "span.name": "aws.lambda" }, "metrics": { "_dd.top_level": 1 }, - "type": "serverless" - }, - { - "trace_id": "XXXX", + "name": "aws.lambda", "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python39", + "service": "integration-tests-python", "span_id": "XXXX", - "service": "requests", - "resource": "GET /", - "name": "requests.request", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1 }, - "type": "http" - }, - { - "trace_id": "XXXX", + "name": "requests.request", "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", "resource": "GET /", - "name": "requests.request", - "error": 0, + "service": "requests", + "span_id": "XXXX", "start": "XXXX", + "trace_id": "XXXX", + "type": "http" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "GET", + "http.status_code": "200", "http.url": "https://www.datadoghq.com/", + "http.useragent": "python-requests/X.X.X", "out.host": "www.datadoghq.com", - "http.status_code": "200", - "http.useragent": "python-requests/X.X.X" + "span.kind": "client" }, "metrics": { "_dd.measured": 1 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] @@ -1850,35 +1850,35 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { - "trace_id": "XXXX", - "parent_id": "XXXX", - "span_id": "XXXX", - "service": "requests", - "resource": "POST /api/v1/distribution_points", - "name": "requests.request", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { - "runtime-id": "XXXX", "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", "component": "requests", - "span.kind": "client", "http.method": "POST", - "http.url": "https://api.datadoghq.com/api/v1/distribution_points", - "out.host": "api.datadoghq.com", "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", - "_dd.p.dm": "-0", - "_dd.p.tid": "XXXX", - "language": "python" + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" }, "metrics": { - "process_id": XXXX, "_dd.measured": 1, "_dd.top_level": 1, - "_sampling_priority_v1": 1 + "_sampling_priority_v1": 1, + "process_id": XXXX }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "POST /api/v1/distribution_points", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" } ] diff --git a/tests/test_tracing.py b/tests/test_tracing.py index 3a3d9e89..986bc9e4 100644 --- a/tests/test_tracing.py +++ b/tests/test_tracing.py @@ -6,13 +6,14 @@ import pytest import os import unittest +from types import SimpleNamespace from unittest.mock import Mock, patch, call, ANY import ddtrace from ddtrace.trace import Context, tracer -from ddtrace._trace._span_pointer import _SpanPointer +from ddtrace._trace.span import Span from ddtrace._trace._span_pointer import _SpanPointerDirection from ddtrace._trace._span_pointer import _SpanPointerDescription @@ -1053,6 +1054,26 @@ def test_set_correlation_ids_handle_empty_trace_context(self): self.assertIsNone(span) +def _expected_span_pointer_link( + pointer_kind, + pointer_direction, + pointer_hash, + extra_attributes=None, +): + extra_attributes = extra_attributes or {} + return SimpleNamespace( + trace_id=0, + span_id=0, + attributes={ + "ptr.kind": pointer_kind, + "ptr.dir": pointer_direction.value, + "ptr.hash": pointer_hash, + "link.kind": "span-pointer", + **extra_attributes, + }, + ) + + class TestFunctionSpanTags(unittest.TestCase): def test_function(self): ctx = get_mock_context() @@ -1070,7 +1091,10 @@ def test_function(self): self.assertEqual(span.get_tag("function_version"), "$LATEST") self.assertEqual(span.get_tag("resource_names"), "Function") self.assertEqual(span.get_tag("functionname"), "function") - self.assertEqual(span._links, []) + try: + self.assertEqual(Span._get_links(span), []) + except: + self.assertEqual(span._links, []) def test_function_with_version(self): function_version = "1" @@ -1151,23 +1175,29 @@ def test_function_with_span_pointers(self): ), ], ) - self.assertEqual( - span._links, - [ - _SpanPointer( - pointer_kind="some.kind", - pointer_direction=_SpanPointerDirection.UPSTREAM, - pointer_hash="some.hash", - extra_attributes={}, - ), - _SpanPointer( - pointer_kind="other.kind", - pointer_direction=_SpanPointerDirection.DOWNSTREAM, - pointer_hash="other.hash", - extra_attributes={"extra": "stuff"}, - ), - ], - ) + try: + actual_links = Span._get_links(span) + except: + actual_links = span._links + expected_links = [ + _expected_span_pointer_link( + "some.kind", + _SpanPointerDirection.UPSTREAM, + "some.hash", + {}, + ), + _expected_span_pointer_link( + "other.kind", + _SpanPointerDirection.DOWNSTREAM, + "other.hash", + {"extra": "stuff"}, + ), + ] + self.assertEqual(len(actual_links), len(expected_links)) + for actual, expected in zip(actual_links, expected_links): + self.assertEqual(actual.trace_id, expected.trace_id) + self.assertEqual(actual.span_id, expected.span_id) + self.assertEqual(actual.attributes, expected.attributes) class TestSetTraceRootSpan(unittest.TestCase): diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index b1aa1ae8..56c8e612 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -26,7 +26,6 @@ def setUp(self): # Force @datadog_lambda_wrapper to always create a real # (not no-op) wrapper. patch("ddtrace.internal.remoteconfig.worker.RemoteConfigPoller").start() - patch("ddtrace.internal.writer.AgentWriter.flush_queue").start() wrapper.datadog_lambda_wrapper._force_wrap = True patcher = patch( From 0b818dd9e6c60caa6e5795e62361762678e7ba12 Mon Sep 17 00:00:00 2001 From: Rey Abolofia Date: Mon, 4 May 2026 21:27:54 +0200 Subject: [PATCH 097/107] ci: install upstream ddtrace wheel during PR-triggered unit tests (#813) --- ci/input_files/build.yaml.tpl | 16 +++---- scripts/_spec_ddtrace_dep.sh | 82 +++++++++++++++++++++++++++++++++++ scripts/build_layers.sh | 74 ++++--------------------------- scripts/setup_python_env.sh | 69 +++++++++++++++++++++++++++++ 4 files changed, 166 insertions(+), 75 deletions(-) create mode 100644 scripts/_spec_ddtrace_dep.sh create mode 100755 scripts/setup_python_env.sh diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 420eea64..9d2f1a9f 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -7,13 +7,6 @@ stages: - publish - e2e -.python-before-script: &python-before-script - - pip install virtualenv - - virtualenv venv - - source venv/bin/activate - - pip install .[dev] - - pip install poetry - default: retry: max: 1 @@ -73,7 +66,8 @@ lint python: tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: *python-before-script + before_script: + - PYTHON_VERSION={{ $runtime.python_version }} ./scripts/setup_python_env.sh script: - source venv/bin/activate - ./scripts/check_format.sh @@ -83,7 +77,8 @@ unit-test ({{ $runtime.name }}-{{ $runtime.arch }}): tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: *python-before-script + before_script: + - PYTHON_VERSION={{ $runtime.python_version }} ./scripts/setup_python_env.sh script: - source venv/bin/activate - pytest -vv @@ -195,7 +190,8 @@ publish-pypi-package: stage: publish tags: ["arch:amd64"] image: registry.ddbuild.io/images/docker:20.10-py3 - before_script: *python-before-script + before_script: + - ./scripts/setup_python_env.sh cache: [] rules: - if: '$CI_COMMIT_TAG =~ /^v.*/' diff --git a/scripts/_spec_ddtrace_dep.sh b/scripts/_spec_ddtrace_dep.sh new file mode 100644 index 00000000..08ec4c70 --- /dev/null +++ b/scripts/_spec_ddtrace_dep.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com/). + +# Shared helpers for rewriting the ddtrace dependency in pyproject.toml. +# Sourced by scripts/build_layers.sh and scripts/setup_python_env.sh, so the +# layer build and the unit-test/lint/publish jobs use the same env-var +# contract and resolve the dep in a single pip pass. +# +# Env-var contract (highest precedence first): +# DD_TRACE_COMMIT Specific dd-trace-py commit SHA from GitHub. +# DD_TRACE_COMMIT_BRANCH dd-trace-py branch name from GitHub. +# DD_TRACE_WHEEL Path to a pre-built ddtrace .whl file. +# UPSTREAM_PIPELINE_ID GitLab pipeline ID from dd-trace-py. Looks up the +# matching wheel from S3, trying the smaller +# serverless build first then falling back to the +# standard manylinux2014 build. +# +# When none of these are set, spec_ddtrace_dep is a no-op. +# +# When UPSTREAM_PIPELINE_ID is set, also requires: +# PYTHON_VERSION e.g. "3.12" (used to build the cpXY platform tag) +# ARCH "amd64" (default) or "arm64" + +# Replace the ddtrace dependency block in pyproject.toml. +# Usage: replace_ddtrace_dep "ddtrace = { ... }" +replace_ddtrace_dep() { + echo "Replacing ddtrace dep with: $1" + perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml +} + +# Search S3 for a wheel matching basename + index, then rewrite the ddtrace +# dep to point at the downloaded file. Globals required: +# S3_BASE, PY_TAG, PLATFORM +# Returns 0 on success, 1 if no matching wheel was found at the index. +_search_and_spec_s3_wheel() { + local basename=$1 + local index=$2 + local search_pattern="${basename}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" + local index_url="${S3_BASE}/index-${index}.html" + echo "Searching for wheel ${search_pattern} in ${index_url}" + local wheel_file + wheel_file=$(curl -sSfL "${index_url}" | grep -o "${search_pattern}" | head -n 1 || true) + if [ -z "$wheel_file" ]; then + return 1 + fi + curl -sSfL "${S3_BASE}/${wheel_file}" -o "${wheel_file}" + echo "Using S3 wheel: ${wheel_file}" + replace_ddtrace_dep "${basename} = { file = \"${wheel_file}\" }" +} + +# Rewrite pyproject.toml's ddtrace dep based on the env-var precedence above. +# No-op if no override env var is set. Returns non-zero if UPSTREAM_PIPELINE_ID +# is set but no matching S3 wheel is found. +spec_ddtrace_dep() { + if [ -n "${DD_TRACE_COMMIT:-}" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"${DD_TRACE_COMMIT}\" }" + elif [ -n "${DD_TRACE_COMMIT_BRANCH:-}" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"${DD_TRACE_COMMIT_BRANCH}\" }" + elif [ -n "${DD_TRACE_WHEEL:-}" ]; then + local basename + basename=$(sed 's/^.*\///' <<< "${DD_TRACE_WHEEL%%-*}") + replace_ddtrace_dep "${basename} = { file = \"${DD_TRACE_WHEEL}\" }" + elif [ -n "${UPSTREAM_PIPELINE_ID:-}" ]; then + if [ -z "${PYTHON_VERSION:-}" ]; then + echo "ERROR: PYTHON_VERSION must be set when UPSTREAM_PIPELINE_ID is set" >&2 + return 1 + fi + S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" + PY_TAG="cp$(echo "$PYTHON_VERSION" | tr -d '.')" + if [ "${ARCH:-amd64}" = "amd64" ]; then + PLATFORM="manylinux2014_x86_64" + else + PLATFORM="manylinux2014_aarch64" + fi + _search_and_spec_s3_wheel "ddtrace_serverless" "serverless" \ + || _search_and_spec_s3_wheel "ddtrace" "manylinux2014" \ + || { echo "ERROR: No matching ddtrace wheel for ${PY_TAG} ${PLATFORM} in pipeline ${UPSTREAM_PIPELINE_ID}" >&2; return 1; } + fi +} diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 8cdfc153..7c3bd5fa 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -88,68 +88,16 @@ cleanup() { } trap cleanup EXIT -# Helper: replace the multi-line ddtrace dependency in pyproject.toml. -# Uses perl instead of sed -z for macOS/Linux portability. -replace_ddtrace_dep() { - echo "Replacing dep with $1" - perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml -} +# Source the shared ddtrace-dep specification logic. spec_ddtrace_dep reads +# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / UPSTREAM_PIPELINE_ID +# (PYTHON_VERSION + ARCH for the S3 path) and rewrites the ddtrace dep block +# in pyproject.toml. +source "$(dirname "$0")/_spec_ddtrace_dep.sh" function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } -function search_wheel { - # Args: [wheel base name] [index] - - WHEEL_BASENAME=$1 - INDEX=$2 - - SEARCH_PATTERN="${WHEEL_BASENAME}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" - INDEX_URL="${S3_BASE}/index-${INDEX}.html" - echo "Searching for wheel ${SEARCH_PATTERN}" - export WHEEL_FILE=$(curl -sSfL ${INDEX_URL} | grep -o "$SEARCH_PATTERN" | head -n 1) - if [ ! -z "${WHEEL_FILE}" ]; then - curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" - echo "Using S3 wheel: ${WHEEL_FILE}" - replace_ddtrace_dep "${WHEEL_BASENAME} = { file = \"${WHEEL_FILE}\" }" - fi -} - -function find_and_spec_wheel { - # Args: [python version] [wheel base name] [index] - - arch=$2 - wheel_basename=$3 - index=$4 - - # Restore pyproject.toml to a clean state for each build iteration - cp pyproject.toml.bak pyproject.toml - - # Replace ddtrace source if necessary - if [ -n "$DD_TRACE_COMMIT" ]; then - replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" - elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then - replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" - elif [ -n "$DD_TRACE_WHEEL" ]; then - wheel_basename=$(sed 's/^.*\///' <<< ${DD_TRACE_WHEEL%%-*}) - replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" - elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then - S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" - if [ "${arch}" = "amd64" ]; then - PLATFORM="manylinux2014_x86_64" - else - PLATFORM="manylinux2014_aarch64" - fi - PY_TAG="cp$(echo "$1" | tr -d '.')" - search_wheel ${wheel_basename} ${index} - if [ -z "${WHEEL_FILE}" ]; then - echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" - return 1 - fi - fi -} - function docker_build_zip { # Args: [python version] [zip destination] @@ -180,14 +128,10 @@ do for architecture in "${ARCHS[@]}" do echo "Building layer for Python ${python_version} arch=${architecture}" - set +e - find_and_spec_wheel ${python_version} ${architecture} "ddtrace_serverless" "serverless" - FAILURE=$? - if [ $FAILURE != 0 ]; then - echo "Attempting layer build again with package ddtrace" - find_and_spec_wheel ${python_version} ${architecture} "ddtrace" "manylinux2014" - fi - set -e + # Restore pyproject.toml to a clean state before each iteration so the + # rewrite is deterministic regardless of what the previous loop did. + cp pyproject.toml.bak pyproject.toml + PYTHON_VERSION="${python_version}" ARCH="${architecture}" spec_ddtrace_dep docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} done done diff --git a/scripts/setup_python_env.sh b/scripts/setup_python_env.sh new file mode 100755 index 00000000..cf877bb6 --- /dev/null +++ b/scripts/setup_python_env.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com/). + +# Sets up the Python environment for the lint, unit-test, and publish-pypi +# CI jobs (and for local repro of those flows). Replaces the inline +# .python-before-script anchor previously defined in +# ci/input_files/build.yaml.tpl. +# +# Steps: +# 1. (Optional) Rewrite pyproject.toml's ddtrace dep based on the +# env-var contract documented in scripts/_spec_ddtrace_dep.sh +# (DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / +# UPSTREAM_PIPELINE_ID). When dd-trace-py's CI triggers this repo's +# pipeline it sets UPSTREAM_PIPELINE_ID, so the unit-test job +# exercises the PR's wheel rather than the released ddtrace. +# 2. Create and activate a virtualenv ("venv/"). +# 3. Install lambda-python's runtime + dev dependencies. pip resolves the +# whole graph in one pass against the (possibly rewritten) pyproject.toml, +# so any version conflicts surface as install errors instead of +# runtime surprises. +# 4. Install poetry. +# +# Same dep-resolution path as scripts/build_layers.sh — both source +# scripts/_spec_ddtrace_dep.sh. +# +# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH build ddtrace from source, which +# requires cargo, cmake, and a C/C++ toolchain — not present in the slim +# Python runner images. They are intended for local repro / git-bisect +# workflows. The dd-trace-py CI trigger uses UPSTREAM_PIPELINE_ID. +# +# Venv contract: this script sources venv/bin/activate inside its own +# subshell, so the activation does NOT persist into the calling job. Calling +# jobs must `source venv/bin/activate` themselves before running their +# command (matching the existing pattern in build.yaml.tpl). +# +# Environment variables: +# PYTHON_VERSION Python minor version (e.g. 3.12 or just 12). Required +# when the UPSTREAM_PIPELINE_ID branch is taken. + +set -e + +# Normalize Python version shorthand (e.g. 12 -> 3.12, 3.12 -> 3.12) +if [ -n "${PYTHON_VERSION:-}" ]; then + if [[ "$PYTHON_VERSION" =~ ^[0-9]+$ ]]; then + PYTHON_VERSION="3.${PYTHON_VERSION}" + fi +fi + +# Backup pyproject.toml so the rewrite doesn't persist across runs (matters +# for local invocations; CI runners are ephemeral but cheap to be tidy). +cp pyproject.toml pyproject.toml.bak +cleanup() { + mv pyproject.toml.bak pyproject.toml 2>/dev/null || true +} +trap cleanup EXIT + +source "$(dirname "$0")/_spec_ddtrace_dep.sh" +spec_ddtrace_dep + +pip install virtualenv +virtualenv venv +source venv/bin/activate +pip install .[dev] +pip install poetry + +python -c "import ddtrace; print('ddtrace version:', ddtrace.__version__)" From 42b2e54d95328a2f7413820594ee66b5396cb530 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Mon, 4 May 2026 16:01:47 -0400 Subject: [PATCH 098/107] Revert "ci: install upstream ddtrace wheel during PR-triggered unit tests (#813)" (#814) This reverts commit 0b818dd9e6c60caa6e5795e62361762678e7ba12. --- ci/input_files/build.yaml.tpl | 16 ++++--- scripts/_spec_ddtrace_dep.sh | 82 ----------------------------------- scripts/build_layers.sh | 74 +++++++++++++++++++++++++++---- scripts/setup_python_env.sh | 69 ----------------------------- 4 files changed, 75 insertions(+), 166 deletions(-) delete mode 100644 scripts/_spec_ddtrace_dep.sh delete mode 100755 scripts/setup_python_env.sh diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 9d2f1a9f..420eea64 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -7,6 +7,13 @@ stages: - publish - e2e +.python-before-script: &python-before-script + - pip install virtualenv + - virtualenv venv + - source venv/bin/activate + - pip install .[dev] + - pip install poetry + default: retry: max: 1 @@ -66,8 +73,7 @@ lint python: tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: - - PYTHON_VERSION={{ $runtime.python_version }} ./scripts/setup_python_env.sh + before_script: *python-before-script script: - source venv/bin/activate - ./scripts/check_format.sh @@ -77,8 +83,7 @@ unit-test ({{ $runtime.name }}-{{ $runtime.arch }}): tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: - - PYTHON_VERSION={{ $runtime.python_version }} ./scripts/setup_python_env.sh + before_script: *python-before-script script: - source venv/bin/activate - pytest -vv @@ -190,8 +195,7 @@ publish-pypi-package: stage: publish tags: ["arch:amd64"] image: registry.ddbuild.io/images/docker:20.10-py3 - before_script: - - ./scripts/setup_python_env.sh + before_script: *python-before-script cache: [] rules: - if: '$CI_COMMIT_TAG =~ /^v.*/' diff --git a/scripts/_spec_ddtrace_dep.sh b/scripts/_spec_ddtrace_dep.sh deleted file mode 100644 index 08ec4c70..00000000 --- a/scripts/_spec_ddtrace_dep.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -# Unless explicitly stated otherwise all files in this repository are licensed -# under the Apache License Version 2.0. -# This product includes software developed at Datadog (https://www.datadoghq.com/). - -# Shared helpers for rewriting the ddtrace dependency in pyproject.toml. -# Sourced by scripts/build_layers.sh and scripts/setup_python_env.sh, so the -# layer build and the unit-test/lint/publish jobs use the same env-var -# contract and resolve the dep in a single pip pass. -# -# Env-var contract (highest precedence first): -# DD_TRACE_COMMIT Specific dd-trace-py commit SHA from GitHub. -# DD_TRACE_COMMIT_BRANCH dd-trace-py branch name from GitHub. -# DD_TRACE_WHEEL Path to a pre-built ddtrace .whl file. -# UPSTREAM_PIPELINE_ID GitLab pipeline ID from dd-trace-py. Looks up the -# matching wheel from S3, trying the smaller -# serverless build first then falling back to the -# standard manylinux2014 build. -# -# When none of these are set, spec_ddtrace_dep is a no-op. -# -# When UPSTREAM_PIPELINE_ID is set, also requires: -# PYTHON_VERSION e.g. "3.12" (used to build the cpXY platform tag) -# ARCH "amd64" (default) or "arm64" - -# Replace the ddtrace dependency block in pyproject.toml. -# Usage: replace_ddtrace_dep "ddtrace = { ... }" -replace_ddtrace_dep() { - echo "Replacing ddtrace dep with: $1" - perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml -} - -# Search S3 for a wheel matching basename + index, then rewrite the ddtrace -# dep to point at the downloaded file. Globals required: -# S3_BASE, PY_TAG, PLATFORM -# Returns 0 on success, 1 if no matching wheel was found at the index. -_search_and_spec_s3_wheel() { - local basename=$1 - local index=$2 - local search_pattern="${basename}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" - local index_url="${S3_BASE}/index-${index}.html" - echo "Searching for wheel ${search_pattern} in ${index_url}" - local wheel_file - wheel_file=$(curl -sSfL "${index_url}" | grep -o "${search_pattern}" | head -n 1 || true) - if [ -z "$wheel_file" ]; then - return 1 - fi - curl -sSfL "${S3_BASE}/${wheel_file}" -o "${wheel_file}" - echo "Using S3 wheel: ${wheel_file}" - replace_ddtrace_dep "${basename} = { file = \"${wheel_file}\" }" -} - -# Rewrite pyproject.toml's ddtrace dep based on the env-var precedence above. -# No-op if no override env var is set. Returns non-zero if UPSTREAM_PIPELINE_ID -# is set but no matching S3 wheel is found. -spec_ddtrace_dep() { - if [ -n "${DD_TRACE_COMMIT:-}" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"${DD_TRACE_COMMIT}\" }" - elif [ -n "${DD_TRACE_COMMIT_BRANCH:-}" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"${DD_TRACE_COMMIT_BRANCH}\" }" - elif [ -n "${DD_TRACE_WHEEL:-}" ]; then - local basename - basename=$(sed 's/^.*\///' <<< "${DD_TRACE_WHEEL%%-*}") - replace_ddtrace_dep "${basename} = { file = \"${DD_TRACE_WHEEL}\" }" - elif [ -n "${UPSTREAM_PIPELINE_ID:-}" ]; then - if [ -z "${PYTHON_VERSION:-}" ]; then - echo "ERROR: PYTHON_VERSION must be set when UPSTREAM_PIPELINE_ID is set" >&2 - return 1 - fi - S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" - PY_TAG="cp$(echo "$PYTHON_VERSION" | tr -d '.')" - if [ "${ARCH:-amd64}" = "amd64" ]; then - PLATFORM="manylinux2014_x86_64" - else - PLATFORM="manylinux2014_aarch64" - fi - _search_and_spec_s3_wheel "ddtrace_serverless" "serverless" \ - || _search_and_spec_s3_wheel "ddtrace" "manylinux2014" \ - || { echo "ERROR: No matching ddtrace wheel for ${PY_TAG} ${PLATFORM} in pipeline ${UPSTREAM_PIPELINE_ID}" >&2; return 1; } - fi -} diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 7c3bd5fa..8cdfc153 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -88,16 +88,68 @@ cleanup() { } trap cleanup EXIT -# Source the shared ddtrace-dep specification logic. spec_ddtrace_dep reads -# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / UPSTREAM_PIPELINE_ID -# (PYTHON_VERSION + ARCH for the S3 path) and rewrites the ddtrace dep block -# in pyproject.toml. -source "$(dirname "$0")/_spec_ddtrace_dep.sh" +# Helper: replace the multi-line ddtrace dependency in pyproject.toml. +# Uses perl instead of sed -z for macOS/Linux portability. +replace_ddtrace_dep() { + echo "Replacing dep with $1" + perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml +} function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } +function search_wheel { + # Args: [wheel base name] [index] + + WHEEL_BASENAME=$1 + INDEX=$2 + + SEARCH_PATTERN="${WHEEL_BASENAME}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" + INDEX_URL="${S3_BASE}/index-${INDEX}.html" + echo "Searching for wheel ${SEARCH_PATTERN}" + export WHEEL_FILE=$(curl -sSfL ${INDEX_URL} | grep -o "$SEARCH_PATTERN" | head -n 1) + if [ ! -z "${WHEEL_FILE}" ]; then + curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" + echo "Using S3 wheel: ${WHEEL_FILE}" + replace_ddtrace_dep "${WHEEL_BASENAME} = { file = \"${WHEEL_FILE}\" }" + fi +} + +function find_and_spec_wheel { + # Args: [python version] [wheel base name] [index] + + arch=$2 + wheel_basename=$3 + index=$4 + + # Restore pyproject.toml to a clean state for each build iteration + cp pyproject.toml.bak pyproject.toml + + # Replace ddtrace source if necessary + if [ -n "$DD_TRACE_COMMIT" ]; then + replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" + elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then + replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" + elif [ -n "$DD_TRACE_WHEEL" ]; then + wheel_basename=$(sed 's/^.*\///' <<< ${DD_TRACE_WHEEL%%-*}) + replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" + elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then + S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" + if [ "${arch}" = "amd64" ]; then + PLATFORM="manylinux2014_x86_64" + else + PLATFORM="manylinux2014_aarch64" + fi + PY_TAG="cp$(echo "$1" | tr -d '.')" + search_wheel ${wheel_basename} ${index} + if [ -z "${WHEEL_FILE}" ]; then + echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" + return 1 + fi + fi +} + function docker_build_zip { # Args: [python version] [zip destination] @@ -128,10 +180,14 @@ do for architecture in "${ARCHS[@]}" do echo "Building layer for Python ${python_version} arch=${architecture}" - # Restore pyproject.toml to a clean state before each iteration so the - # rewrite is deterministic regardless of what the previous loop did. - cp pyproject.toml.bak pyproject.toml - PYTHON_VERSION="${python_version}" ARCH="${architecture}" spec_ddtrace_dep + set +e + find_and_spec_wheel ${python_version} ${architecture} "ddtrace_serverless" "serverless" + FAILURE=$? + if [ $FAILURE != 0 ]; then + echo "Attempting layer build again with package ddtrace" + find_and_spec_wheel ${python_version} ${architecture} "ddtrace" "manylinux2014" + fi + set -e docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} done done diff --git a/scripts/setup_python_env.sh b/scripts/setup_python_env.sh deleted file mode 100755 index cf877bb6..00000000 --- a/scripts/setup_python_env.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -# Unless explicitly stated otherwise all files in this repository are licensed -# under the Apache License Version 2.0. -# This product includes software developed at Datadog (https://www.datadoghq.com/). - -# Sets up the Python environment for the lint, unit-test, and publish-pypi -# CI jobs (and for local repro of those flows). Replaces the inline -# .python-before-script anchor previously defined in -# ci/input_files/build.yaml.tpl. -# -# Steps: -# 1. (Optional) Rewrite pyproject.toml's ddtrace dep based on the -# env-var contract documented in scripts/_spec_ddtrace_dep.sh -# (DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / -# UPSTREAM_PIPELINE_ID). When dd-trace-py's CI triggers this repo's -# pipeline it sets UPSTREAM_PIPELINE_ID, so the unit-test job -# exercises the PR's wheel rather than the released ddtrace. -# 2. Create and activate a virtualenv ("venv/"). -# 3. Install lambda-python's runtime + dev dependencies. pip resolves the -# whole graph in one pass against the (possibly rewritten) pyproject.toml, -# so any version conflicts surface as install errors instead of -# runtime surprises. -# 4. Install poetry. -# -# Same dep-resolution path as scripts/build_layers.sh — both source -# scripts/_spec_ddtrace_dep.sh. -# -# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH build ddtrace from source, which -# requires cargo, cmake, and a C/C++ toolchain — not present in the slim -# Python runner images. They are intended for local repro / git-bisect -# workflows. The dd-trace-py CI trigger uses UPSTREAM_PIPELINE_ID. -# -# Venv contract: this script sources venv/bin/activate inside its own -# subshell, so the activation does NOT persist into the calling job. Calling -# jobs must `source venv/bin/activate` themselves before running their -# command (matching the existing pattern in build.yaml.tpl). -# -# Environment variables: -# PYTHON_VERSION Python minor version (e.g. 3.12 or just 12). Required -# when the UPSTREAM_PIPELINE_ID branch is taken. - -set -e - -# Normalize Python version shorthand (e.g. 12 -> 3.12, 3.12 -> 3.12) -if [ -n "${PYTHON_VERSION:-}" ]; then - if [[ "$PYTHON_VERSION" =~ ^[0-9]+$ ]]; then - PYTHON_VERSION="3.${PYTHON_VERSION}" - fi -fi - -# Backup pyproject.toml so the rewrite doesn't persist across runs (matters -# for local invocations; CI runners are ephemeral but cheap to be tidy). -cp pyproject.toml pyproject.toml.bak -cleanup() { - mv pyproject.toml.bak pyproject.toml 2>/dev/null || true -} -trap cleanup EXIT - -source "$(dirname "$0")/_spec_ddtrace_dep.sh" -spec_ddtrace_dep - -pip install virtualenv -virtualenv venv -source venv/bin/activate -pip install .[dev] -pip install poetry - -python -c "import ddtrace; print('ddtrace version:', ddtrace.__version__)" From 6b7c27647f62f062afcf429cb1f1fc3153ab33dc Mon Sep 17 00:00:00 2001 From: Olivier Nzia Date: Wed, 6 May 2026 16:30:40 -0400 Subject: [PATCH 099/107] v8.125.0 (#819) --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 0c1404f8..8c976bcc 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.125.0.dev0" +__version__ = "8.125.0" diff --git a/pyproject.toml b/pyproject.toml index 105fa4d5..5ec6e3b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.125.0.dev0" +version = "8.125.0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 619a1d548eb6f5aef6108f047fecc1a1227c22f6 Mon Sep 17 00:00:00 2001 From: Olivier John Ndjike Nzia Date: Thu, 7 May 2026 12:06:19 -0400 Subject: [PATCH 100/107] v8.126.0.dev0 --- datadog_lambda/version.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/datadog_lambda/version.py b/datadog_lambda/version.py index 8c976bcc..e43f119b 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.125.0" +__version__ = "8.126.0.dev0" diff --git a/pyproject.toml b/pyproject.toml index 5ec6e3b3..daa9b3c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.125.0" +version = "8.126.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" From 8b7b4e5148f05cbf3d54ce63d85909f58fe4433e Mon Sep 17 00:00:00 2001 From: Nicolas Catoni Date: Thu, 7 May 2026 18:37:59 +0200 Subject: [PATCH 101/107] ci: skip empty scenarios only on pull_request (#817) --- .github/workflows/system_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/system_tests.yml b/.github/workflows/system_tests.yml index bc6b05e9..e0e829f0 100644 --- a/.github/workflows/system_tests.yml +++ b/.github/workflows/system_tests.yml @@ -36,5 +36,5 @@ jobs: library: python_lambda binaries_artifact: binaries scenarios_groups: tracer_release - skip_empty_scenarios: true + skip_empty_scenarios: ${{ github.event_name == 'pull_request' }} push_to_test_optimization: true From 91d8249b9bebba6f2aad9cbc3881ac4d169419a5 Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Thu, 7 May 2026 14:51:36 -0400 Subject: [PATCH 102/107] Revert "Revert "ci: install upstream ddtrace wheel during PR-triggered unit tests"" (#815) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "Revert "ci: install upstream ddtrace wheel during PR-triggered unit t…" This reverts commit 42b2e54d95328a2f7413820594ee66b5396cb530. * skip 3.8 * more gating * remove layer bundle * faulthandler? * debug * Apply suggestion from @purple4reina * Skip wheel install when not found. * env var * disable profiling * only use normal wheel * remove env var * core dump * reuse serverless * use arm wheel? * no profiling stack fast * remove extra wheel * remove cache * moving var * removing profiling var * reduce stuff done for linting * remove extraneous bits --------- Co-authored-by: Rey Abolofia --- ci/input_files/build.yaml.tpl | 16 +++---- scripts/_spec_ddtrace_dep.sh | 82 +++++++++++++++++++++++++++++++++++ scripts/build_layers.sh | 74 ++++--------------------------- scripts/setup_python_env.sh | 74 +++++++++++++++++++++++++++++++ 4 files changed, 171 insertions(+), 75 deletions(-) create mode 100644 scripts/_spec_ddtrace_dep.sh create mode 100755 scripts/setup_python_env.sh diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 420eea64..7ecd532d 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -7,13 +7,6 @@ stages: - publish - e2e -.python-before-script: &python-before-script - - pip install virtualenv - - virtualenv venv - - source venv/bin/activate - - pip install .[dev] - - pip install poetry - default: retry: max: 1 @@ -73,7 +66,8 @@ lint python: tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: *python-before-script + before_script: + - PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} IS_LINT="1" ./scripts/setup_python_env.sh script: - source venv/bin/activate - ./scripts/check_format.sh @@ -83,7 +77,8 @@ unit-test ({{ $runtime.name }}-{{ $runtime.arch }}): tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: *python-before-script + before_script: + - PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} ./scripts/setup_python_env.sh script: - source venv/bin/activate - pytest -vv @@ -195,7 +190,8 @@ publish-pypi-package: stage: publish tags: ["arch:amd64"] image: registry.ddbuild.io/images/docker:20.10-py3 - before_script: *python-before-script + before_script: + - ./scripts/setup_python_env.sh cache: [] rules: - if: '$CI_COMMIT_TAG =~ /^v.*/' diff --git a/scripts/_spec_ddtrace_dep.sh b/scripts/_spec_ddtrace_dep.sh new file mode 100644 index 00000000..bb64bb17 --- /dev/null +++ b/scripts/_spec_ddtrace_dep.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com/). + +# Shared helpers for rewriting the ddtrace dependency in pyproject.toml. +# Sourced by scripts/build_layers.sh and scripts/setup_python_env.sh, so the +# layer build and the unit-test/lint/publish jobs use the same env-var +# contract and resolve the dep in a single pip pass. +# +# Env-var contract (highest precedence first): +# DD_TRACE_COMMIT Specific dd-trace-py commit SHA from GitHub. +# DD_TRACE_COMMIT_BRANCH dd-trace-py branch name from GitHub. +# DD_TRACE_WHEEL Path to a pre-built ddtrace .whl file. +# UPSTREAM_PIPELINE_ID GitLab pipeline ID from dd-trace-py. Looks up the +# matching wheel from S3, trying the smaller +# serverless build first then falling back to the +# standard manylinux2014 build. +# +# When none of these are set, spec_ddtrace_dep is a no-op. +# +# When UPSTREAM_PIPELINE_ID is set, also requires: +# PYTHON_VERSION e.g. "3.12" (used to build the cpXY platform tag) +# ARCH "amd64" (default) or "arm64" + +# Replace the ddtrace dependency block in pyproject.toml. +# Usage: replace_ddtrace_dep "ddtrace = { ... }" +replace_ddtrace_dep() { + echo "Replacing ddtrace dep with: $1" + perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml +} + +# Search S3 for a wheel matching basename + index, then rewrite the ddtrace +# dep to point at the downloaded file. Globals required: +# S3_BASE, PY_TAG, PLATFORM +# Returns 0 on success, 1 if no matching wheel was found at the index. +_search_and_spec_s3_wheel() { + local basename=$1 + local index=$2 + local search_pattern="${basename}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" + local index_url="${S3_BASE}/index-${index}.html" + echo "Searching for wheel ${search_pattern} in ${index_url}" + local wheel_file + wheel_file=$(curl -sSfL "${index_url}" | grep -o "${search_pattern}" | head -n 1 || true) + if [ -z "$wheel_file" ]; then + return 1 + fi + curl -sSfL "${S3_BASE}/${wheel_file}" -o "${wheel_file}" + echo "Using S3 wheel: ${wheel_file}" + replace_ddtrace_dep "${basename} = { file = \"${wheel_file}\" }" +} + +# Rewrite pyproject.toml's ddtrace dep based on the env-var precedence above. +# No-op if no override env var is set. Returns non-zero if UPSTREAM_PIPELINE_ID +# is set but no matching S3 wheel is found. +spec_ddtrace_dep() { + if [ -n "${DD_TRACE_COMMIT:-}" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"${DD_TRACE_COMMIT}\" }" + elif [ -n "${DD_TRACE_COMMIT_BRANCH:-}" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"${DD_TRACE_COMMIT_BRANCH}\" }" + elif [ -n "${DD_TRACE_WHEEL:-}" ]; then + local basename + basename=$(sed 's/^.*\///' <<< "${DD_TRACE_WHEEL%%-*}") + replace_ddtrace_dep "${basename} = { file = \"${DD_TRACE_WHEEL}\" }" + elif [ -n "${UPSTREAM_PIPELINE_ID:-}" ]; then + if [ -z "${PYTHON_VERSION:-}" ]; then + echo "ERROR: PYTHON_VERSION must be set when UPSTREAM_PIPELINE_ID is set" >&2 + return 1 + fi + S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" + PY_TAG="cp$(echo "$PYTHON_VERSION" | tr -d '.')" + if [ "$ARCH" = "amd64" ]; then + PLATFORM="manylinux2014_x86_64" + else + PLATFORM="manylinux2014_aarch64" + fi + _search_and_spec_s3_wheel "ddtrace_serverless" "serverless" \ + || _search_and_spec_s3_wheel "ddtrace" "manylinux2014" \ + || { echo "ERROR: No matching ddtrace wheel for ${PY_TAG} ${PLATFORM} in pipeline ${UPSTREAM_PIPELINE_ID}, skipping version patch!" >&2; } + fi +} diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 8cdfc153..7c3bd5fa 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -88,68 +88,16 @@ cleanup() { } trap cleanup EXIT -# Helper: replace the multi-line ddtrace dependency in pyproject.toml. -# Uses perl instead of sed -z for macOS/Linux portability. -replace_ddtrace_dep() { - echo "Replacing dep with $1" - perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml -} +# Source the shared ddtrace-dep specification logic. spec_ddtrace_dep reads +# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / UPSTREAM_PIPELINE_ID +# (PYTHON_VERSION + ARCH for the S3 path) and rewrites the ddtrace dep block +# in pyproject.toml. +source "$(dirname "$0")/_spec_ddtrace_dep.sh" function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } -function search_wheel { - # Args: [wheel base name] [index] - - WHEEL_BASENAME=$1 - INDEX=$2 - - SEARCH_PATTERN="${WHEEL_BASENAME}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" - INDEX_URL="${S3_BASE}/index-${INDEX}.html" - echo "Searching for wheel ${SEARCH_PATTERN}" - export WHEEL_FILE=$(curl -sSfL ${INDEX_URL} | grep -o "$SEARCH_PATTERN" | head -n 1) - if [ ! -z "${WHEEL_FILE}" ]; then - curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" - echo "Using S3 wheel: ${WHEEL_FILE}" - replace_ddtrace_dep "${WHEEL_BASENAME} = { file = \"${WHEEL_FILE}\" }" - fi -} - -function find_and_spec_wheel { - # Args: [python version] [wheel base name] [index] - - arch=$2 - wheel_basename=$3 - index=$4 - - # Restore pyproject.toml to a clean state for each build iteration - cp pyproject.toml.bak pyproject.toml - - # Replace ddtrace source if necessary - if [ -n "$DD_TRACE_COMMIT" ]; then - replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" - elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then - replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" - elif [ -n "$DD_TRACE_WHEEL" ]; then - wheel_basename=$(sed 's/^.*\///' <<< ${DD_TRACE_WHEEL%%-*}) - replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" - elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then - S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" - if [ "${arch}" = "amd64" ]; then - PLATFORM="manylinux2014_x86_64" - else - PLATFORM="manylinux2014_aarch64" - fi - PY_TAG="cp$(echo "$1" | tr -d '.')" - search_wheel ${wheel_basename} ${index} - if [ -z "${WHEEL_FILE}" ]; then - echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" - return 1 - fi - fi -} - function docker_build_zip { # Args: [python version] [zip destination] @@ -180,14 +128,10 @@ do for architecture in "${ARCHS[@]}" do echo "Building layer for Python ${python_version} arch=${architecture}" - set +e - find_and_spec_wheel ${python_version} ${architecture} "ddtrace_serverless" "serverless" - FAILURE=$? - if [ $FAILURE != 0 ]; then - echo "Attempting layer build again with package ddtrace" - find_and_spec_wheel ${python_version} ${architecture} "ddtrace" "manylinux2014" - fi - set -e + # Restore pyproject.toml to a clean state before each iteration so the + # rewrite is deterministic regardless of what the previous loop did. + cp pyproject.toml.bak pyproject.toml + PYTHON_VERSION="${python_version}" ARCH="${architecture}" spec_ddtrace_dep docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} done done diff --git a/scripts/setup_python_env.sh b/scripts/setup_python_env.sh new file mode 100755 index 00000000..42dfa710 --- /dev/null +++ b/scripts/setup_python_env.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com/). + +# Sets up the Python environment for the lint, unit-test, and publish-pypi +# CI jobs (and for local repro of those flows). Replaces the inline +# .python-before-script anchor previously defined in +# ci/input_files/build.yaml.tpl. +# +# Steps: +# 1. (Optional) Rewrite pyproject.toml's ddtrace dep based on the +# env-var contract documented in scripts/_spec_ddtrace_dep.sh +# (DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / +# UPSTREAM_PIPELINE_ID). When dd-trace-py's CI triggers this repo's +# pipeline it sets UPSTREAM_PIPELINE_ID, so the unit-test job +# exercises the PR's wheel rather than the released ddtrace. +# 2. Create and activate a virtualenv ("venv/"). +# 3. Install lambda-python's runtime + dev dependencies. pip resolves the +# whole graph in one pass against the (possibly rewritten) pyproject.toml, +# so any version conflicts surface as install errors instead of +# runtime surprises. +# 4. Install poetry. +# +# Same dep-resolution path as scripts/build_layers.sh — both source +# scripts/_spec_ddtrace_dep.sh. +# +# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH build ddtrace from source, which +# requires cargo, cmake, and a C/C++ toolchain — not present in the slim +# Python runner images. They are intended for local repro / git-bisect +# workflows. The dd-trace-py CI trigger uses UPSTREAM_PIPELINE_ID. +# +# Venv contract: this script sources venv/bin/activate inside its own +# subshell, so the activation does NOT persist into the calling job. Calling +# jobs must `source venv/bin/activate` themselves before running their +# command (matching the existing pattern in build.yaml.tpl). +# +# Environment variables: +# PYTHON_VERSION Python minor version (e.g. 3.12 or just 12). Required +# when the UPSTREAM_PIPELINE_ID branch is taken. +# ARCH "amd64" or "arm64". Required for correct ddtrace wheel +# selection when UPSTREAM_PIPELINE_ID is set (GitLab matrix +# should pass the runtime arch; if unset, host arch is used). + +set -e + +if [ -z "${IS_LINT:-}" ] || [ "${IS_LINT}" = "0" ] || [ "${IS_LINT}" = "false" ]; then + # Normalize Python version shorthand (e.g. 12 -> 3.12, 3.12 -> 3.12) + if [ -n "${PYTHON_VERSION:-}" ]; then + if [[ "$PYTHON_VERSION" =~ ^[0-9]+$ ]]; then + PYTHON_VERSION="3.${PYTHON_VERSION}" + fi + fi + + # Backup pyproject.toml so the rewrite doesn't persist across runs (matters + # for local invocations; CI runners are ephemeral but cheap to be tidy). + cp pyproject.toml pyproject.toml.bak + cleanup() { + mv pyproject.toml.bak pyproject.toml 2>/dev/null || true + } + trap cleanup EXIT + + source "$(dirname "$0")/_spec_ddtrace_dep.sh" + spec_ddtrace_dep +fi + +pip install virtualenv +virtualenv venv +source venv/bin/activate +pip install .[dev] +pip install poetry + +python -c "import ddtrace; print('ddtrace version:', ddtrace.__version__)" From d831ec2051acba152ef96d149a2d9b5c563a3794 Mon Sep 17 00:00:00 2001 From: Brett Langdon Date: Thu, 7 May 2026 15:23:25 -0400 Subject: [PATCH 103/107] =?UTF-8?q?Revert=20"Revert=20"Revert=20"ci:=20ins?= =?UTF-8?q?tall=20upstream=20ddtrace=20wheel=20during=20PR-triggere?= =?UTF-8?q?=E2=80=A6"=20(#822)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 91d8249b9bebba6f2aad9cbc3881ac4d169419a5. --- ci/input_files/build.yaml.tpl | 16 ++++--- scripts/_spec_ddtrace_dep.sh | 82 ----------------------------------- scripts/build_layers.sh | 74 +++++++++++++++++++++++++++---- scripts/setup_python_env.sh | 74 ------------------------------- 4 files changed, 75 insertions(+), 171 deletions(-) delete mode 100644 scripts/_spec_ddtrace_dep.sh delete mode 100755 scripts/setup_python_env.sh diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 7ecd532d..420eea64 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -7,6 +7,13 @@ stages: - publish - e2e +.python-before-script: &python-before-script + - pip install virtualenv + - virtualenv venv + - source venv/bin/activate + - pip install .[dev] + - pip install poetry + default: retry: max: 1 @@ -66,8 +73,7 @@ lint python: tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: - - PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} IS_LINT="1" ./scripts/setup_python_env.sh + before_script: *python-before-script script: - source venv/bin/activate - ./scripts/check_format.sh @@ -77,8 +83,7 @@ unit-test ({{ $runtime.name }}-{{ $runtime.arch }}): tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: - - PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} ./scripts/setup_python_env.sh + before_script: *python-before-script script: - source venv/bin/activate - pytest -vv @@ -190,8 +195,7 @@ publish-pypi-package: stage: publish tags: ["arch:amd64"] image: registry.ddbuild.io/images/docker:20.10-py3 - before_script: - - ./scripts/setup_python_env.sh + before_script: *python-before-script cache: [] rules: - if: '$CI_COMMIT_TAG =~ /^v.*/' diff --git a/scripts/_spec_ddtrace_dep.sh b/scripts/_spec_ddtrace_dep.sh deleted file mode 100644 index bb64bb17..00000000 --- a/scripts/_spec_ddtrace_dep.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -# Unless explicitly stated otherwise all files in this repository are licensed -# under the Apache License Version 2.0. -# This product includes software developed at Datadog (https://www.datadoghq.com/). - -# Shared helpers for rewriting the ddtrace dependency in pyproject.toml. -# Sourced by scripts/build_layers.sh and scripts/setup_python_env.sh, so the -# layer build and the unit-test/lint/publish jobs use the same env-var -# contract and resolve the dep in a single pip pass. -# -# Env-var contract (highest precedence first): -# DD_TRACE_COMMIT Specific dd-trace-py commit SHA from GitHub. -# DD_TRACE_COMMIT_BRANCH dd-trace-py branch name from GitHub. -# DD_TRACE_WHEEL Path to a pre-built ddtrace .whl file. -# UPSTREAM_PIPELINE_ID GitLab pipeline ID from dd-trace-py. Looks up the -# matching wheel from S3, trying the smaller -# serverless build first then falling back to the -# standard manylinux2014 build. -# -# When none of these are set, spec_ddtrace_dep is a no-op. -# -# When UPSTREAM_PIPELINE_ID is set, also requires: -# PYTHON_VERSION e.g. "3.12" (used to build the cpXY platform tag) -# ARCH "amd64" (default) or "arm64" - -# Replace the ddtrace dependency block in pyproject.toml. -# Usage: replace_ddtrace_dep "ddtrace = { ... }" -replace_ddtrace_dep() { - echo "Replacing ddtrace dep with: $1" - perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml -} - -# Search S3 for a wheel matching basename + index, then rewrite the ddtrace -# dep to point at the downloaded file. Globals required: -# S3_BASE, PY_TAG, PLATFORM -# Returns 0 on success, 1 if no matching wheel was found at the index. -_search_and_spec_s3_wheel() { - local basename=$1 - local index=$2 - local search_pattern="${basename}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" - local index_url="${S3_BASE}/index-${index}.html" - echo "Searching for wheel ${search_pattern} in ${index_url}" - local wheel_file - wheel_file=$(curl -sSfL "${index_url}" | grep -o "${search_pattern}" | head -n 1 || true) - if [ -z "$wheel_file" ]; then - return 1 - fi - curl -sSfL "${S3_BASE}/${wheel_file}" -o "${wheel_file}" - echo "Using S3 wheel: ${wheel_file}" - replace_ddtrace_dep "${basename} = { file = \"${wheel_file}\" }" -} - -# Rewrite pyproject.toml's ddtrace dep based on the env-var precedence above. -# No-op if no override env var is set. Returns non-zero if UPSTREAM_PIPELINE_ID -# is set but no matching S3 wheel is found. -spec_ddtrace_dep() { - if [ -n "${DD_TRACE_COMMIT:-}" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"${DD_TRACE_COMMIT}\" }" - elif [ -n "${DD_TRACE_COMMIT_BRANCH:-}" ]; then - replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"${DD_TRACE_COMMIT_BRANCH}\" }" - elif [ -n "${DD_TRACE_WHEEL:-}" ]; then - local basename - basename=$(sed 's/^.*\///' <<< "${DD_TRACE_WHEEL%%-*}") - replace_ddtrace_dep "${basename} = { file = \"${DD_TRACE_WHEEL}\" }" - elif [ -n "${UPSTREAM_PIPELINE_ID:-}" ]; then - if [ -z "${PYTHON_VERSION:-}" ]; then - echo "ERROR: PYTHON_VERSION must be set when UPSTREAM_PIPELINE_ID is set" >&2 - return 1 - fi - S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" - PY_TAG="cp$(echo "$PYTHON_VERSION" | tr -d '.')" - if [ "$ARCH" = "amd64" ]; then - PLATFORM="manylinux2014_x86_64" - else - PLATFORM="manylinux2014_aarch64" - fi - _search_and_spec_s3_wheel "ddtrace_serverless" "serverless" \ - || _search_and_spec_s3_wheel "ddtrace" "manylinux2014" \ - || { echo "ERROR: No matching ddtrace wheel for ${PY_TAG} ${PLATFORM} in pipeline ${UPSTREAM_PIPELINE_ID}, skipping version patch!" >&2; } - fi -} diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 7c3bd5fa..8cdfc153 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -88,16 +88,68 @@ cleanup() { } trap cleanup EXIT -# Source the shared ddtrace-dep specification logic. spec_ddtrace_dep reads -# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / UPSTREAM_PIPELINE_ID -# (PYTHON_VERSION + ARCH for the S3 path) and rewrites the ddtrace dep block -# in pyproject.toml. -source "$(dirname "$0")/_spec_ddtrace_dep.sh" +# Helper: replace the multi-line ddtrace dependency in pyproject.toml. +# Uses perl instead of sed -z for macOS/Linux portability. +replace_ddtrace_dep() { + echo "Replacing dep with $1" + perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml +} function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } +function search_wheel { + # Args: [wheel base name] [index] + + WHEEL_BASENAME=$1 + INDEX=$2 + + SEARCH_PATTERN="${WHEEL_BASENAME}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" + INDEX_URL="${S3_BASE}/index-${INDEX}.html" + echo "Searching for wheel ${SEARCH_PATTERN}" + export WHEEL_FILE=$(curl -sSfL ${INDEX_URL} | grep -o "$SEARCH_PATTERN" | head -n 1) + if [ ! -z "${WHEEL_FILE}" ]; then + curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" + echo "Using S3 wheel: ${WHEEL_FILE}" + replace_ddtrace_dep "${WHEEL_BASENAME} = { file = \"${WHEEL_FILE}\" }" + fi +} + +function find_and_spec_wheel { + # Args: [python version] [wheel base name] [index] + + arch=$2 + wheel_basename=$3 + index=$4 + + # Restore pyproject.toml to a clean state for each build iteration + cp pyproject.toml.bak pyproject.toml + + # Replace ddtrace source if necessary + if [ -n "$DD_TRACE_COMMIT" ]; then + replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" + elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then + replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" + elif [ -n "$DD_TRACE_WHEEL" ]; then + wheel_basename=$(sed 's/^.*\///' <<< ${DD_TRACE_WHEEL%%-*}) + replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" + elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then + S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" + if [ "${arch}" = "amd64" ]; then + PLATFORM="manylinux2014_x86_64" + else + PLATFORM="manylinux2014_aarch64" + fi + PY_TAG="cp$(echo "$1" | tr -d '.')" + search_wheel ${wheel_basename} ${index} + if [ -z "${WHEEL_FILE}" ]; then + echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" + return 1 + fi + fi +} + function docker_build_zip { # Args: [python version] [zip destination] @@ -128,10 +180,14 @@ do for architecture in "${ARCHS[@]}" do echo "Building layer for Python ${python_version} arch=${architecture}" - # Restore pyproject.toml to a clean state before each iteration so the - # rewrite is deterministic regardless of what the previous loop did. - cp pyproject.toml.bak pyproject.toml - PYTHON_VERSION="${python_version}" ARCH="${architecture}" spec_ddtrace_dep + set +e + find_and_spec_wheel ${python_version} ${architecture} "ddtrace_serverless" "serverless" + FAILURE=$? + if [ $FAILURE != 0 ]; then + echo "Attempting layer build again with package ddtrace" + find_and_spec_wheel ${python_version} ${architecture} "ddtrace" "manylinux2014" + fi + set -e docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} done done diff --git a/scripts/setup_python_env.sh b/scripts/setup_python_env.sh deleted file mode 100755 index 42dfa710..00000000 --- a/scripts/setup_python_env.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/bash - -# Unless explicitly stated otherwise all files in this repository are licensed -# under the Apache License Version 2.0. -# This product includes software developed at Datadog (https://www.datadoghq.com/). - -# Sets up the Python environment for the lint, unit-test, and publish-pypi -# CI jobs (and for local repro of those flows). Replaces the inline -# .python-before-script anchor previously defined in -# ci/input_files/build.yaml.tpl. -# -# Steps: -# 1. (Optional) Rewrite pyproject.toml's ddtrace dep based on the -# env-var contract documented in scripts/_spec_ddtrace_dep.sh -# (DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / -# UPSTREAM_PIPELINE_ID). When dd-trace-py's CI triggers this repo's -# pipeline it sets UPSTREAM_PIPELINE_ID, so the unit-test job -# exercises the PR's wheel rather than the released ddtrace. -# 2. Create and activate a virtualenv ("venv/"). -# 3. Install lambda-python's runtime + dev dependencies. pip resolves the -# whole graph in one pass against the (possibly rewritten) pyproject.toml, -# so any version conflicts surface as install errors instead of -# runtime surprises. -# 4. Install poetry. -# -# Same dep-resolution path as scripts/build_layers.sh — both source -# scripts/_spec_ddtrace_dep.sh. -# -# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH build ddtrace from source, which -# requires cargo, cmake, and a C/C++ toolchain — not present in the slim -# Python runner images. They are intended for local repro / git-bisect -# workflows. The dd-trace-py CI trigger uses UPSTREAM_PIPELINE_ID. -# -# Venv contract: this script sources venv/bin/activate inside its own -# subshell, so the activation does NOT persist into the calling job. Calling -# jobs must `source venv/bin/activate` themselves before running their -# command (matching the existing pattern in build.yaml.tpl). -# -# Environment variables: -# PYTHON_VERSION Python minor version (e.g. 3.12 or just 12). Required -# when the UPSTREAM_PIPELINE_ID branch is taken. -# ARCH "amd64" or "arm64". Required for correct ddtrace wheel -# selection when UPSTREAM_PIPELINE_ID is set (GitLab matrix -# should pass the runtime arch; if unset, host arch is used). - -set -e - -if [ -z "${IS_LINT:-}" ] || [ "${IS_LINT}" = "0" ] || [ "${IS_LINT}" = "false" ]; then - # Normalize Python version shorthand (e.g. 12 -> 3.12, 3.12 -> 3.12) - if [ -n "${PYTHON_VERSION:-}" ]; then - if [[ "$PYTHON_VERSION" =~ ^[0-9]+$ ]]; then - PYTHON_VERSION="3.${PYTHON_VERSION}" - fi - fi - - # Backup pyproject.toml so the rewrite doesn't persist across runs (matters - # for local invocations; CI runners are ephemeral but cheap to be tidy). - cp pyproject.toml pyproject.toml.bak - cleanup() { - mv pyproject.toml.bak pyproject.toml 2>/dev/null || true - } - trap cleanup EXIT - - source "$(dirname "$0")/_spec_ddtrace_dep.sh" - spec_ddtrace_dep -fi - -pip install virtualenv -virtualenv venv -source venv/bin/activate -pip install .[dev] -pip install poetry - -python -c "import ddtrace; print('ddtrace version:', ddtrace.__version__)" From 9f64dff11f7a0fd3c374a879863a224e45670a6e Mon Sep 17 00:00:00 2001 From: Rithika Narayan <93233069+rithikanarayan@users.noreply.github.com> Date: Fri, 8 May 2026 09:34:49 -0400 Subject: [PATCH 104/107] Revert "Revert "Revert "Revert "ci: install upstream ddtrace wheel during PR-triggered unit tests"""" (#823) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "Revert "Revert "Revert "ci: install upstream ddtrace wheel during PR-…" This reverts commit d831ec2051acba152ef96d149a2d9b5c563a3794. * arch stuff --- ci/input_files/build.yaml.tpl | 23 +++++----- scripts/_spec_ddtrace_dep.sh | 82 +++++++++++++++++++++++++++++++++++ scripts/build_layers.sh | 74 ++++--------------------------- scripts/setup_python_env.sh | 74 +++++++++++++++++++++++++++++++ 4 files changed, 177 insertions(+), 76 deletions(-) create mode 100644 scripts/_spec_ddtrace_dep.sh create mode 100755 scripts/setup_python_env.sh diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 420eea64..54066af4 100644 --- a/ci/input_files/build.yaml.tpl +++ b/ci/input_files/build.yaml.tpl @@ -7,13 +7,6 @@ stages: - publish - e2e -.python-before-script: &python-before-script - - pip install virtualenv - - virtualenv venv - - source venv/bin/activate - - pip install .[dev] - - pip install poetry - default: retry: max: 1 @@ -73,17 +66,24 @@ lint python: tags: ["arch:amd64"] image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: *python-before-script + before_script: + - PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} IS_LINT="1" ./scripts/setup_python_env.sh script: - source venv/bin/activate - ./scripts/check_format.sh unit-test ({{ $runtime.name }}-{{ $runtime.arch }}): stage: test - tags: ["arch:amd64"] + tags: + {{ if eq $runtime.arch "arm64" }} + - "arch:arm64" + {{ else }} + - "arch:amd64" + {{ end }} image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }} cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache - before_script: *python-before-script + before_script: + - PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} ./scripts/setup_python_env.sh script: - source venv/bin/activate - pytest -vv @@ -195,7 +195,8 @@ publish-pypi-package: stage: publish tags: ["arch:amd64"] image: registry.ddbuild.io/images/docker:20.10-py3 - before_script: *python-before-script + before_script: + - ./scripts/setup_python_env.sh cache: [] rules: - if: '$CI_COMMIT_TAG =~ /^v.*/' diff --git a/scripts/_spec_ddtrace_dep.sh b/scripts/_spec_ddtrace_dep.sh new file mode 100644 index 00000000..bb64bb17 --- /dev/null +++ b/scripts/_spec_ddtrace_dep.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com/). + +# Shared helpers for rewriting the ddtrace dependency in pyproject.toml. +# Sourced by scripts/build_layers.sh and scripts/setup_python_env.sh, so the +# layer build and the unit-test/lint/publish jobs use the same env-var +# contract and resolve the dep in a single pip pass. +# +# Env-var contract (highest precedence first): +# DD_TRACE_COMMIT Specific dd-trace-py commit SHA from GitHub. +# DD_TRACE_COMMIT_BRANCH dd-trace-py branch name from GitHub. +# DD_TRACE_WHEEL Path to a pre-built ddtrace .whl file. +# UPSTREAM_PIPELINE_ID GitLab pipeline ID from dd-trace-py. Looks up the +# matching wheel from S3, trying the smaller +# serverless build first then falling back to the +# standard manylinux2014 build. +# +# When none of these are set, spec_ddtrace_dep is a no-op. +# +# When UPSTREAM_PIPELINE_ID is set, also requires: +# PYTHON_VERSION e.g. "3.12" (used to build the cpXY platform tag) +# ARCH "amd64" (default) or "arm64" + +# Replace the ddtrace dependency block in pyproject.toml. +# Usage: replace_ddtrace_dep "ddtrace = { ... }" +replace_ddtrace_dep() { + echo "Replacing ddtrace dep with: $1" + perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml +} + +# Search S3 for a wheel matching basename + index, then rewrite the ddtrace +# dep to point at the downloaded file. Globals required: +# S3_BASE, PY_TAG, PLATFORM +# Returns 0 on success, 1 if no matching wheel was found at the index. +_search_and_spec_s3_wheel() { + local basename=$1 + local index=$2 + local search_pattern="${basename}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" + local index_url="${S3_BASE}/index-${index}.html" + echo "Searching for wheel ${search_pattern} in ${index_url}" + local wheel_file + wheel_file=$(curl -sSfL "${index_url}" | grep -o "${search_pattern}" | head -n 1 || true) + if [ -z "$wheel_file" ]; then + return 1 + fi + curl -sSfL "${S3_BASE}/${wheel_file}" -o "${wheel_file}" + echo "Using S3 wheel: ${wheel_file}" + replace_ddtrace_dep "${basename} = { file = \"${wheel_file}\" }" +} + +# Rewrite pyproject.toml's ddtrace dep based on the env-var precedence above. +# No-op if no override env var is set. Returns non-zero if UPSTREAM_PIPELINE_ID +# is set but no matching S3 wheel is found. +spec_ddtrace_dep() { + if [ -n "${DD_TRACE_COMMIT:-}" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"${DD_TRACE_COMMIT}\" }" + elif [ -n "${DD_TRACE_COMMIT_BRANCH:-}" ]; then + replace_ddtrace_dep "ddtrace = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"${DD_TRACE_COMMIT_BRANCH}\" }" + elif [ -n "${DD_TRACE_WHEEL:-}" ]; then + local basename + basename=$(sed 's/^.*\///' <<< "${DD_TRACE_WHEEL%%-*}") + replace_ddtrace_dep "${basename} = { file = \"${DD_TRACE_WHEEL}\" }" + elif [ -n "${UPSTREAM_PIPELINE_ID:-}" ]; then + if [ -z "${PYTHON_VERSION:-}" ]; then + echo "ERROR: PYTHON_VERSION must be set when UPSTREAM_PIPELINE_ID is set" >&2 + return 1 + fi + S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" + PY_TAG="cp$(echo "$PYTHON_VERSION" | tr -d '.')" + if [ "$ARCH" = "amd64" ]; then + PLATFORM="manylinux2014_x86_64" + else + PLATFORM="manylinux2014_aarch64" + fi + _search_and_spec_s3_wheel "ddtrace_serverless" "serverless" \ + || _search_and_spec_s3_wheel "ddtrace" "manylinux2014" \ + || { echo "ERROR: No matching ddtrace wheel for ${PY_TAG} ${PLATFORM} in pipeline ${UPSTREAM_PIPELINE_ID}, skipping version patch!" >&2; } + fi +} diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 8cdfc153..7c3bd5fa 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -88,68 +88,16 @@ cleanup() { } trap cleanup EXIT -# Helper: replace the multi-line ddtrace dependency in pyproject.toml. -# Uses perl instead of sed -z for macOS/Linux portability. -replace_ddtrace_dep() { - echo "Replacing dep with $1" - perl -i -0777 -pe "s|ddtrace = \[[^\]]*\]|$1|gs" pyproject.toml -} +# Source the shared ddtrace-dep specification logic. spec_ddtrace_dep reads +# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / UPSTREAM_PIPELINE_ID +# (PYTHON_VERSION + ARCH for the S3 path) and rewrites the ddtrace dep block +# in pyproject.toml. +source "$(dirname "$0")/_spec_ddtrace_dep.sh" function make_path_absolute { echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")" } -function search_wheel { - # Args: [wheel base name] [index] - - WHEEL_BASENAME=$1 - INDEX=$2 - - SEARCH_PATTERN="${WHEEL_BASENAME}-[^\"]*${PY_TAG}[^\"]*${PLATFORM}[^\"]*\.whl" - INDEX_URL="${S3_BASE}/index-${INDEX}.html" - echo "Searching for wheel ${SEARCH_PATTERN}" - export WHEEL_FILE=$(curl -sSfL ${INDEX_URL} | grep -o "$SEARCH_PATTERN" | head -n 1) - if [ ! -z "${WHEEL_FILE}" ]; then - curl -sSfL "${S3_BASE}/${WHEEL_FILE}" -o "${WHEEL_FILE}" - echo "Using S3 wheel: ${WHEEL_FILE}" - replace_ddtrace_dep "${WHEEL_BASENAME} = { file = \"${WHEEL_FILE}\" }" - fi -} - -function find_and_spec_wheel { - # Args: [python version] [wheel base name] [index] - - arch=$2 - wheel_basename=$3 - index=$4 - - # Restore pyproject.toml to a clean state for each build iteration - cp pyproject.toml.bak pyproject.toml - - # Replace ddtrace source if necessary - if [ -n "$DD_TRACE_COMMIT" ]; then - replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", rev = \"$DD_TRACE_COMMIT\" }" - elif [ -n "$DD_TRACE_COMMIT_BRANCH" ]; then - replace_ddtrace_dep "${wheel_basename} = { git = \"https://github.com/DataDog/dd-trace-py.git\", branch = \"$DD_TRACE_COMMIT_BRANCH\" }" - elif [ -n "$DD_TRACE_WHEEL" ]; then - wheel_basename=$(sed 's/^.*\///' <<< ${DD_TRACE_WHEEL%%-*}) - replace_ddtrace_dep "${wheel_basename} = { file = \"$DD_TRACE_WHEEL\" }" - elif [ -n "$UPSTREAM_PIPELINE_ID" ]; then - S3_BASE="https://dd-trace-py-builds.s3.amazonaws.com/${UPSTREAM_PIPELINE_ID}" - if [ "${arch}" = "amd64" ]; then - PLATFORM="manylinux2014_x86_64" - else - PLATFORM="manylinux2014_aarch64" - fi - PY_TAG="cp$(echo "$1" | tr -d '.')" - search_wheel ${wheel_basename} ${index} - if [ -z "${WHEEL_FILE}" ]; then - echo "No S3 wheel found for ${PY_TAG} ${PLATFORM}, using default pyproject.toml version" - return 1 - fi - fi -} - function docker_build_zip { # Args: [python version] [zip destination] @@ -180,14 +128,10 @@ do for architecture in "${ARCHS[@]}" do echo "Building layer for Python ${python_version} arch=${architecture}" - set +e - find_and_spec_wheel ${python_version} ${architecture} "ddtrace_serverless" "serverless" - FAILURE=$? - if [ $FAILURE != 0 ]; then - echo "Attempting layer build again with package ddtrace" - find_and_spec_wheel ${python_version} ${architecture} "ddtrace" "manylinux2014" - fi - set -e + # Restore pyproject.toml to a clean state before each iteration so the + # rewrite is deterministic regardless of what the previous loop did. + cp pyproject.toml.bak pyproject.toml + PYTHON_VERSION="${python_version}" ARCH="${architecture}" spec_ddtrace_dep docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} done done diff --git a/scripts/setup_python_env.sh b/scripts/setup_python_env.sh new file mode 100755 index 00000000..42dfa710 --- /dev/null +++ b/scripts/setup_python_env.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +# Unless explicitly stated otherwise all files in this repository are licensed +# under the Apache License Version 2.0. +# This product includes software developed at Datadog (https://www.datadoghq.com/). + +# Sets up the Python environment for the lint, unit-test, and publish-pypi +# CI jobs (and for local repro of those flows). Replaces the inline +# .python-before-script anchor previously defined in +# ci/input_files/build.yaml.tpl. +# +# Steps: +# 1. (Optional) Rewrite pyproject.toml's ddtrace dep based on the +# env-var contract documented in scripts/_spec_ddtrace_dep.sh +# (DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH / DD_TRACE_WHEEL / +# UPSTREAM_PIPELINE_ID). When dd-trace-py's CI triggers this repo's +# pipeline it sets UPSTREAM_PIPELINE_ID, so the unit-test job +# exercises the PR's wheel rather than the released ddtrace. +# 2. Create and activate a virtualenv ("venv/"). +# 3. Install lambda-python's runtime + dev dependencies. pip resolves the +# whole graph in one pass against the (possibly rewritten) pyproject.toml, +# so any version conflicts surface as install errors instead of +# runtime surprises. +# 4. Install poetry. +# +# Same dep-resolution path as scripts/build_layers.sh — both source +# scripts/_spec_ddtrace_dep.sh. +# +# DD_TRACE_COMMIT / DD_TRACE_COMMIT_BRANCH build ddtrace from source, which +# requires cargo, cmake, and a C/C++ toolchain — not present in the slim +# Python runner images. They are intended for local repro / git-bisect +# workflows. The dd-trace-py CI trigger uses UPSTREAM_PIPELINE_ID. +# +# Venv contract: this script sources venv/bin/activate inside its own +# subshell, so the activation does NOT persist into the calling job. Calling +# jobs must `source venv/bin/activate` themselves before running their +# command (matching the existing pattern in build.yaml.tpl). +# +# Environment variables: +# PYTHON_VERSION Python minor version (e.g. 3.12 or just 12). Required +# when the UPSTREAM_PIPELINE_ID branch is taken. +# ARCH "amd64" or "arm64". Required for correct ddtrace wheel +# selection when UPSTREAM_PIPELINE_ID is set (GitLab matrix +# should pass the runtime arch; if unset, host arch is used). + +set -e + +if [ -z "${IS_LINT:-}" ] || [ "${IS_LINT}" = "0" ] || [ "${IS_LINT}" = "false" ]; then + # Normalize Python version shorthand (e.g. 12 -> 3.12, 3.12 -> 3.12) + if [ -n "${PYTHON_VERSION:-}" ]; then + if [[ "$PYTHON_VERSION" =~ ^[0-9]+$ ]]; then + PYTHON_VERSION="3.${PYTHON_VERSION}" + fi + fi + + # Backup pyproject.toml so the rewrite doesn't persist across runs (matters + # for local invocations; CI runners are ephemeral but cheap to be tidy). + cp pyproject.toml pyproject.toml.bak + cleanup() { + mv pyproject.toml.bak pyproject.toml 2>/dev/null || true + } + trap cleanup EXIT + + source "$(dirname "$0")/_spec_ddtrace_dep.sh" + spec_ddtrace_dep +fi + +pip install virtualenv +virtualenv venv +source venv/bin/activate +pip install .[dev] +pip install poetry + +python -c "import ddtrace; print('ddtrace version:', ddtrace.__version__)" From 018b43c357b16f3984f2787bc31f1fe4b3076b0e Mon Sep 17 00:00:00 2001 From: Thomas Kowalski Date: Fri, 15 May 2026 16:39:30 +0200 Subject: [PATCH 105/107] test: avoid side effects from mutating environ (#826) * test: avoid side effects from mutating environ * test: stop profiler at end --- tests/test_api.py | 3 +-- tests/test_wrapper.py | 33 ++++++++++++++++++++++----------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/tests/test_api.py b/tests/test_api.py index 3b42cfd7..0cb42a0a 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -23,7 +23,7 @@ def setUp(self): self.env_patcher.start() def tearDown(self): - del os.environ["AWS_REGION"] + self.env_patcher.stop() @patch("datadog_lambda.config.Config.fips_mode_enabled", True) @patch("botocore.session.Session.create_client") @@ -172,7 +172,6 @@ def test_no_fips_for_standard_regions(self, mock_boto3_client): mock_client.get_secret_value.return_value = {"SecretString": "test-api-key"} mock_boto3_client.return_value = mock_client - os.environ.clear() os.environ["AWS_REGION"] = "us-west-2" os.environ["DD_API_KEY_SECRET_ARN"] = ( "arn:aws:secretsmanager:us-west-2:1234567890:secret:key-name-123ABC" diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 56c8e612..ba2cce5e 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -113,6 +113,7 @@ def lambda_handler(event, context): self.mock_inject_correlation_ids.assert_called() def test_datadog_lambda_wrapper_flush_to_log(self): + self.addCleanup(os.environ.pop, "DD_FLUSH_TO_LOG", None) os.environ["DD_FLUSH_TO_LOG"] = "True" @wrapper.datadog_lambda_wrapper @@ -124,8 +125,6 @@ def lambda_handler(event, context): self.mock_threadstats_flush_distributions.assert_not_called() - del os.environ["DD_FLUSH_TO_LOG"] - def test_datadog_lambda_wrapper_flush_in_thread(self): # force ThreadStats to flush in thread import datadog_lambda.metric as metric_module @@ -183,6 +182,7 @@ def lambda_handler(event, context): @patch("datadog_lambda.config.Config.trace_enabled", False) def test_datadog_lambda_wrapper_inject_correlation_ids(self): + self.addCleanup(os.environ.pop, "DD_LOGS_INJECTION", None) os.environ["DD_LOGS_INJECTION"] = "True" @wrapper.datadog_lambda_wrapper @@ -194,8 +194,6 @@ def lambda_handler(event, context): self.mock_set_correlation_ids.assert_called() self.mock_inject_correlation_ids.assert_called() - del os.environ["DD_LOGS_INJECTION"] - def test_invocations_metric(self): @wrapper.datadog_lambda_wrapper def lambda_handler(event, context): @@ -484,6 +482,7 @@ def lambda_handler(event, context): def test_dd_requests_service_name_default(self): # TODO(astuyve) this is now set by CI, so we need to null it out for this case + self.addCleanup(os.environ.pop, "DD_SERVICE", None) os.environ["DD_SERVICE"] = "aws.lambda" @wrapper.datadog_lambda_wrapper @@ -493,6 +492,7 @@ def lambda_handler(event, context): self.assertEqual(os.environ.get("DD_REQUESTS_SERVICE_NAME"), "aws.lambda") def test_dd_requests_service_name_set(self): + self.addCleanup(os.environ.pop, "DD_SERVICE", None) os.environ["DD_SERVICE"] = "myAwesomeService" @wrapper.datadog_lambda_wrapper @@ -500,7 +500,6 @@ def lambda_handler(event, context): pass self.assertEqual(os.environ.get("DD_REQUESTS_SERVICE_NAME"), "myAwesomeService") - del os.environ["DD_SERVICE"] @patch("datadog_lambda.config.Config.make_inferred_span", False) def test_encode_authorizer_span(self): @@ -563,12 +562,13 @@ class TestLambdaWrapperWithTraceContext(unittest.TestCase): f"Root={xray_root};Parent={xray_parent};Sampled=1;Lineage=c6c5b1b9:0" ) - @patch( - "os.environ", + @patch.dict( + os.environ, { "AWS_XRAY_DAEMON_ADDRESS": xray_daemon_envvar, "_X_AMZN_TRACE_ID": xray_trace_envvar, }, + clear=True, ) def test_event_bridge_sqs_payload(self): reset_xray_connection() @@ -782,6 +782,7 @@ def lambda_handler(event, context): lambda_handler(self.api_gateway_request, get_mock_context()) def test_no_blocking_appsec_disabled(self): + self.addCleanup(os.environ.pop, "DD_APPSEC_ENABLED", None) os.environ["DD_APPSEC_ENABLED"] = "false" importlib.reload(wrapper) @@ -855,17 +856,25 @@ def lambda_handler(event, context): def test_profiling_enabled(monkeypatch): importlib.reload(wrapper) - original_Profiler_start = wrapper.profiler.Profiler.start - Profiler_start_calls = [] + Profiler_start_calls: list = [] + Profiler_stop_calls: list = [] - def Profiler_start(*args, **kwargs): + real_Profiler_start = wrapper.profiler.Profiler.start + real_Profiler_stop = wrapper.profiler.Profiler.stop + + def Profiler_start(*args: object, **kwargs: object) -> None: Profiler_start_calls.append((args, kwargs)) - return original_Profiler_start(*args, **kwargs) + return real_Profiler_start(*args, **kwargs) + + def Profiler_stop(*args: object, **kwargs: object) -> None: + Profiler_stop_calls.append((args, kwargs)) + return real_Profiler_stop(*args, **kwargs) monkeypatch.setattr("datadog_lambda.wrapper.is_new_sandbox", lambda: True) monkeypatch.setattr( "datadog_lambda.wrapper.profiler.Profiler.start", Profiler_start ) + monkeypatch.setattr("datadog_lambda.wrapper.profiler.Profiler.stop", Profiler_stop) expected_response = { "statusCode": 200, @@ -881,6 +890,8 @@ def lambda_handler(event, context): assert response == expected_response assert len(Profiler_start_calls) == 1 + lambda_handler.prof.stop() + @patch("datadog_lambda.config.Config.llmobs_enabled", True) def test_llmobs_enabled(monkeypatch): From 53b46d4c142df30346a13ac0d6b626c55821a7ea Mon Sep 17 00:00:00 2001 From: pablomartinezbernardo <134320516+pablomartinezbernardo@users.noreply.github.com> Date: Wed, 20 May 2026 15:50:22 +0200 Subject: [PATCH 106/107] Remove update_deps.yml (#827) --- .github/workflows/update_deps.yml | 43 ------------------------------- 1 file changed, 43 deletions(-) delete mode 100644 .github/workflows/update_deps.yml diff --git a/.github/workflows/update_deps.yml b/.github/workflows/update_deps.yml deleted file mode 100644 index 15a3ac66..00000000 --- a/.github/workflows/update_deps.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: update-deps - -on: - schedule: - - cron: "0 10 * * *" # Run at 10 am every day - workflow_dispatch: - -jobs: - check: - runs-on: ubuntu-latest - environment: - name: protected-main-env - steps: - - name: Generate token - id: generate_token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 - with: - app-id: ${{ secrets.GH_APP_ID }} - private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} - - - uses: actions/checkout@v3 - with: - token: ${{ steps.generate_token.outputs.token }} - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: 3.13 - - - name: Update Dependencies - run: | - pip install poetry - poetry update - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v3 - with: - token: ${{ steps.generate_token.outputs.token }} - commit-message: update dependencies - title: Update Dependencies - body: | - Autogenerated PR to update all deps to latest versions - branch: update-dependencies From f7a595599ae5ae691bf871228adb7f77818f836a Mon Sep 17 00:00:00 2001 From: Yiming Luo <10097700+lym953@users.noreply.github.com> Date: Thu, 21 May 2026 14:45:38 -0400 Subject: [PATCH 107/107] [SVLS-8493] feat: Rename durable span tags from aws_lambda.durable_function.* to aws.durable.* (#829) * Rename durable span tags from aws_lambda.durable_function.* to aws.durable.* Co-Authored-By: Claude Opus 4.7 (1M context) * style: fix black formatting in durable.py Co-Authored-By: Claude Opus 4.7 (1M context) --------- Co-authored-by: Claude Opus 4.7 (1M context) --- datadog_lambda/durable.py | 8 +++----- datadog_lambda/wrapper.py | 2 +- tests/test_durable.py | 12 ++++++------ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/datadog_lambda/durable.py b/datadog_lambda/durable.py index 9a28b36b..df023a9c 100644 --- a/datadog_lambda/durable.py +++ b/datadog_lambda/durable.py @@ -47,11 +47,9 @@ def extract_durable_function_tags(event): operations = event.get("InitialExecutionState", {}).get("Operations", []) is_first_invocation = len(operations) == 1 return { - "aws_lambda.durable_function.execution_name": execution_name, - "aws_lambda.durable_function.execution_id": execution_id, - "aws_lambda.durable_function.first_invocation": str( - is_first_invocation - ).lower(), + "aws.durable.execution_name": execution_name, + "aws.durable.execution_id": execution_id, + "aws.durable.first_invocation": str(is_first_invocation).lower(), } diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 767816a5..d955480c 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -346,7 +346,7 @@ def _after(self, event, context): durable_status = extract_durable_execution_status(self.response, event) if durable_status: self.span.set_tag( - "aws_lambda.durable_function.execution_status", + "aws.durable.execution_status", durable_status, ) diff --git a/tests/test_durable.py b/tests/test_durable.py index 36a3e8c5..a4f7c2f2 100644 --- a/tests/test_durable.py +++ b/tests/test_durable.py @@ -57,9 +57,9 @@ def test_sets_first_invocation_true_when_only_execution_operation(self): self.assertEqual( result, { - "aws_lambda.durable_function.execution_name": "my-execution", - "aws_lambda.durable_function.execution_id": "550e8400-e29b-41d4-a716-446655440004", - "aws_lambda.durable_function.first_invocation": "true", + "aws.durable.execution_name": "my-execution", + "aws.durable.execution_id": "550e8400-e29b-41d4-a716-446655440004", + "aws.durable.first_invocation": "true", }, ) @@ -79,9 +79,9 @@ def test_sets_first_invocation_false_when_multiple_operations(self): self.assertEqual( result, { - "aws_lambda.durable_function.execution_name": "my-execution", - "aws_lambda.durable_function.execution_id": "550e8400-e29b-41d4-a716-446655440004", - "aws_lambda.durable_function.first_invocation": "false", + "aws.durable.execution_name": "my-execution", + "aws.durable.execution_id": "550e8400-e29b-41d4-a716-446655440004", + "aws.durable.first_invocation": "false", }, )