diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d218bdefd..787b5da36 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: @@ -41,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 789868ed0..e21f16336 100644 --- a/.github/workflows/build_layer.yml +++ b/.github/workflows/build_layer.yml @@ -1,6 +1,8 @@ name: Build Layers for system-Tests on: + workflow_dispatch: + pull_request: push: branches: - "main" @@ -10,23 +12,32 @@ jobs: runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} strategy: + fail-fast: false 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", "3.14"] steps: - name: Checkout uses: actions/checkout@v4 - - name: Patch pyproject.toml + - name: Download ddtrace Wheel + id: find-ddtrace-wheel 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 + # Convert matrix.arch into pip platform tag + if [ "${{ matrix.arch }}" = "amd64" ]; then + PLATFORM_TAG="manylinux_2_17_x86_64" + else + PLATFORM_TAG="manylinux_2_17_aarch64" + fi + + 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: 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/.github/workflows/system_tests.yml b/.github/workflows/system_tests.yml index b61725b1a..e0e829f0f 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: @@ -27,12 +29,12 @@ jobs: needs: - build uses: DataDog/system-tests/.github/workflows/system-tests.yml@main - secrets: inherit permissions: contents: read - packages: write + id-token: write with: library: python_lambda binaries_artifact: binaries - scenarios_groups: appsec - skip_empty_scenarios: true + scenarios_groups: tracer_release + skip_empty_scenarios: ${{ github.event_name == 'pull_request' }} + push_to_test_optimization: true diff --git a/.github/workflows/update-snapshots.yml b/.github/workflows/update-snapshots.yml index ed7097aed..81e0c5394 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 }} diff --git a/.github/workflows/update_deps.yml b/.github/workflows/update_deps.yml deleted file mode 100644 index 15a3ac665..000000000 --- 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 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0f36a781d..417398ec4 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/Dockerfile b/Dockerfile index 8da968fb2..1e112f81d 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 @@ -24,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 @@ -31,11 +33,32 @@ 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 -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 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/ \ + ./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* + # 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 \ @@ -49,7 +72,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 @@ -58,10 +82,18 @@ 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.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 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 && \ + 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 @@ -72,12 +104,14 @@ 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 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 / diff --git a/README.md b/README.md index 658babc28..a1199e8eb 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 f9456d396..2b19cf1c4 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/get_secrets.sh b/ci/get_secrets.sh index 9d9c957c0..d854a9a40 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" diff --git a/ci/input_files/build.yaml.tpl b/ci/input_files/build.yaml.tpl index 8624a8060..54066af47 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 @@ -27,8 +20,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 @@ -54,6 +47,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 @@ -71,25 +66,37 @@ 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 + 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 @@ -142,6 +150,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"' @@ -185,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.*/' @@ -247,6 +258,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,30 +282,9 @@ e2e-test-status: image: registry.ddbuild.io/images/docker:20.10-py3 tags: ["arch:amd64"] timeout: 3h - 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 + rules: + - if: '$SKIP_E2E_TESTS == "true"' + when: never + - when: on_success + script: + - ci/poll_e2e.sh diff --git a/ci/poll_e2e.sh b/ci/poll_e2e.sh new file mode 100755 index 000000000..3d56926a6 --- /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 diff --git a/ci/publish_layers.sh b/ci/publish_layers.sh index 9654582a2..d15931ac1 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/datadog_lambda/__init__.py b/datadog_lambda/__init__.py index 2034d3cbf..059cead9e 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/api.py b/datadog_lambda/api.py index 4921dae90..88f2cbe27 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/datadog_lambda/asm.py b/datadog_lambda/asm.py index 7bd8272f8..29648021a 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: @@ -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/datadog_lambda/cold_start.py b/datadog_lambda/cold_start.py index a40e2fcb3..260d491b8 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 aaa1af5e8..ce4924af8 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-")) @@ -103,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): @@ -144,3 +140,22 @@ def _reset(self): "Python Lambda Layer FIPS mode is %s.", "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" + +# 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 + and not config.sca_enabled + and not config.appsec_enabled +): + os.environ["DD_INSTRUMENTATION_TELEMETRY_ENABLED"] = "false" diff --git a/datadog_lambda/durable.py b/datadog_lambda/durable.py new file mode 100644 index 000000000..df023a9c3 --- /dev/null +++ b/datadog_lambda/durable.py @@ -0,0 +1,67 @@ +# 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 + # 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.durable.execution_name": execution_name, + "aws.durable.execution_id": execution_id, + "aws.durable.first_invocation": str(is_first_invocation).lower(), + } + + +VALID_DURABLE_STATUSES = {"SUCCEEDED", "FAILED", "PENDING"} + + +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/metric.py b/datadog_lambda/metric.py index 73bbeca3c..5df0812f1 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/tag_object.py b/datadog_lambda/tag_object.py index 744e48933..67f6a14d7 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/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index 51157f6a7..3c7d9f115 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() @@ -209,6 +204,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 +636,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 @@ -914,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 @@ -963,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 ) @@ -1034,6 +1044,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 @@ -1048,6 +1059,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( @@ -1059,11 +1072,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, @@ -1078,7 +1091,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 @@ -1090,6 +1103,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 @@ -1127,13 +1141,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, @@ -1154,10 +1167,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 @@ -1224,6 +1238,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 @@ -1265,6 +1280,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 @@ -1300,6 +1316,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 @@ -1332,6 +1349,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 @@ -1368,6 +1386,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 @@ -1408,10 +1427,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 @@ -1425,6 +1445,7 @@ def create_function_execution_span( trace_context_source, merge_xray_traces, trigger_tags, + durable_function_tags=None, parent_span=None, span_pointers=None, ): @@ -1435,6 +1456,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, @@ -1453,6 +1475,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: @@ -1499,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/trigger.py b/datadog_lambda/trigger.py index e0c3c4fa1..e60de8f0c 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/datadog_lambda/version.py b/datadog_lambda/version.py index 653b589b9..e43f119bf 100644 --- a/datadog_lambda/version.py +++ b/datadog_lambda/version.py @@ -1 +1 @@ -__version__ = "8.115.0.dev0" +__version__ = "8.126.0.dev0" diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index 51e5bcfac..d955480c8 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 @@ -41,11 +42,21 @@ tracer, propagator, ) +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, ) +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. + if config.appsec_enabled: from datadog_lambda.asm import ( asm_set_context, @@ -57,17 +68,23 @@ 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 if config.exception_replay_enabled: from ddtrace.debugging._exception.replay import SpanExceptionHandler - from ddtrace.debugging._uploader import LogsIntakeUploaderV1 -logger = logging.getLogger(__name__) + try: + from ddtrace.debugging._uploader import SignalUploader + except ImportError: + from ddtrace.debugging._uploader import LogsIntakeUploaderV1 as SignalUploader DD_REQUESTS_SERVICE_NAME = "DD_REQUESTS_SERVICE_NAME" DD_SERVICE = "DD_SERVICE" @@ -133,13 +150,13 @@ 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: 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) @@ -174,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: @@ -187,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 @@ -230,6 +247,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, @@ -267,6 +285,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), ) @@ -275,16 +294,30 @@ 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(): - self.prof.start(stop_on_exit=False, profile_children=True) + if config.profiling_enabled and profiler and is_new_sandbox(): + self.prof.start() logger.debug("datadog_lambda_wrapper _before() done") except Exception as e: logger.error(format_err_with_traceback(e)) 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) + # 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( @@ -310,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.durable.execution_status", + durable_status, + ) + self.span.finish() if status_code: @@ -322,16 +362,21 @@ 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() - if should_trace_cold_start: - trace_ctx = tracer.current_trace_context() if self.inferred_span: 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) @@ -370,7 +415,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 diff --git a/poetry.lock b/poetry.lock index 4c37bf871..bf6c6fec4 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 aebd15b4d..daa9b3c4e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "datadog_lambda" -version = "8.115.0.dev0" +version = "8.126.0.dev0" description = "The Datadog AWS Lambda Library" authors = ["Datadog, Inc. "] license = "Apache-2.0" @@ -22,17 +22,34 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] [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 = ">=3.11.0,<4" -ujson = ">=5.9.0" +ddtrace = [ + {version = ">=3.19.1,<4", python = ">=3.8,<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"}, + {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/scripts/_spec_ddtrace_dep.sh b/scripts/_spec_ddtrace_dep.sh new file mode 100644 index 000000000..bb64bb178 --- /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/add_new_region.sh b/scripts/add_new_region.sh index 576d13e7f..210436294 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 23941b7a0..7c3bd5fae 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -6,17 +6,45 @@ # 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. +# 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 +# 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 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 [ -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 +56,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,9 +78,21 @@ else echo "EXITING SCRIPT." exit 1 fi - PYTHON_VERSIONS=$PYTHON_VERSION + PYTHON_VERSIONS=("$PYTHON_VERSION") 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 + +# 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")" @@ -56,7 +103,6 @@ function docker_build_zip { 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) @@ -82,6 +128,10 @@ 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 docker_build_zip ${python_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-${architecture}-${python_version}.zip ${architecture} done done diff --git a/scripts/check_format.sh b/scripts/check_format.sh index df5a67187..783a17d6a 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/check_layer_size.sh b/scripts/check_layer_size.sh index b074d74e4..de9a8c4d4 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 + 15) # 9231 KB MAX_LAYER_UNCOMPRESSED_SIZE_KB=$(expr 25 \* 1024) # 25600 KB diff --git a/scripts/list_layers.sh b/scripts/list_layers.sh index 6449e5115..d2710a7e7 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 5fd107b0e..19c8c17ca 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 @@ -88,7 +96,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 8c78093f8..31a514d13 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 f6e4f537c..aa47b279c 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." @@ -198,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 @@ -262,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/scripts/run_tests.sh b/scripts/run_tests.sh index 26f4e2156..59d572187 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/setup_python_env.sh b/scripts/setup_python_env.sh new file mode 100755 index 000000000..42dfa7108 --- /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__)" diff --git a/scripts/sign_layers.sh b/scripts/sign_layers.sh index eb40062f0..d3c890d38 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/event_samples/authorizer-request-api-gateway-v1.json b/tests/event_samples/authorizer-request-api-gateway-v1.json index d14b7aa01..7496c5ed2 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/event_samples/rum-appsync-no-headers.json b/tests/event_samples/rum-appsync-no-headers.json new file mode 100644 index 000000000..ce42c9722 --- /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 000000000..1ab6dba82 --- /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 000000000..ae085359f --- /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 000000000..dacf24e7e --- /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 000000000..c761c5503 --- /dev/null +++ b/tests/integration/package-lock.json @@ -0,0 +1,1194 @@ +{ + "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==", + "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.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": { + "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==", + "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==", + "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.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "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==", + "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.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "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/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", + "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==", + "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.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serverless-plugin-datadog": { + "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", + "dependencies": { + "node-fetch": "^2.6.1" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "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/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", + "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/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", + "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/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", + "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 1a1784620..a3ac9ef51 100644 --- a/tests/integration/package.json +++ b/tests/integration/package.json @@ -1,6 +1,12 @@ { "devDependencies": { "serverless-plugin-datadog": "^2.18.0", - "serverless-python-requirements": "^6.1.1" + "serverless-python-requirements": "^6.1.2" + }, + "resolutions": { + "minimatch": "^3.1.3" + }, + "overrides": { + "minimatch": "^3.1.3" } } diff --git a/tests/integration/parse-json.js b/tests/integration/parse-json.js index 0e54e0dc2..5aaed46e6 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/requirements.txt b/tests/integration/requirements.txt index 343ea0257..0275d888c 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/snapshots/logs/async-metrics_python310.log b/tests/integration/snapshots/logs/async-metrics_python310.log index d72afba39..78d81a62f 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,141 +42,284 @@ 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", - "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", + "_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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/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 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "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.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python310_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-async-metrics_python310", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python310", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -187,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 @@ -224,154 +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", + "_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", "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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -380,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", @@ -393,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 @@ -421,115 +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", + "_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", + "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_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -538,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", @@ -551,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 @@ -579,132 +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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -713,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", @@ -726,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 @@ -754,122 +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", "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_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -878,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", @@ -891,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 @@ -919,131 +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", + "_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", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", "object_key": "test/key", "object_size": "1024", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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 }, - "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" } ] @@ -1052,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", @@ -1065,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 @@ -1093,120 +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", + "_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", + "language": "python", + "message_id": "XXXX", "operation_name": "aws.sns", + "peer.service": "integration-tests-python", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1215,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", @@ -1228,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 @@ -1256,119 +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", + "_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", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1377,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", @@ -1390,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 @@ -1418,128 +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", + "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_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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", - "span.kind": "server", + "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 dac9c4277..a282c6d82 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,141 +42,284 @@ 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", - "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", + "_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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/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 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "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.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python311_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-async-metrics_python311", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python311", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -187,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 @@ -224,154 +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", + "_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", "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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -380,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", @@ -393,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 @@ -421,115 +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", + "_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", + "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_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -538,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", @@ -551,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 @@ -579,132 +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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -713,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", @@ -726,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 @@ -754,122 +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", "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_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -878,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", @@ -891,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 @@ -919,131 +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", + "_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", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", "object_key": "test/key", "object_size": "1024", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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 }, - "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" } ] @@ -1052,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", @@ -1065,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 @@ -1093,120 +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", + "_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", + "language": "python", + "message_id": "XXXX", "operation_name": "aws.sns", + "peer.service": "integration-tests-python", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1215,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", @@ -1228,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 @@ -1256,119 +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", + "_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", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1377,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", @@ -1390,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 @@ -1418,128 +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", + "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_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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", - "span.kind": "server", + "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 c2b624ff3..36221f26f 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,141 +42,284 @@ 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", - "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", + "_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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/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 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "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.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python312_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-async-metrics_python312", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python312", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -187,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 @@ -224,154 +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", + "_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", "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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -380,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", @@ -393,143 +547,154 @@ 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" - ] -} -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", + ], + "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 +{ + "traces": [ + [ + { "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", + "_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", + "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_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -538,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", @@ -551,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 @@ -579,132 +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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -713,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", @@ -726,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 @@ -754,122 +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", "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 }, + "name": "aws.kinesis", + "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", + "span_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", + "_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" } ] @@ -878,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", @@ -891,170 +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", + "_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", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", "object_key": "test/key", "object_size": "1024", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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 }, - "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" } ] ] } -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", @@ -1065,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 @@ -1093,120 +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", + "_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", + "language": "python", + "message_id": "XXXX", "operation_name": "aws.sns", + "peer.service": "integration-tests-python", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1215,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", @@ -1228,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 @@ -1256,119 +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", + "_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", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1377,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", @@ -1390,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 @@ -1418,128 +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", + "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_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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", - "span.kind": "server", + "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 9a5e763f9..82b719042 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,141 +42,284 @@ 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", - "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", + "_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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/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 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "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.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python313_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-async-metrics_python313", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python313", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", + "_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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -187,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 @@ -224,154 +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", + "_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", "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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -380,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", @@ -393,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 @@ -421,115 +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", + "_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", + "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_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -538,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", @@ -551,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 @@ -579,132 +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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -713,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", @@ -726,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 @@ -754,122 +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", "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_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -878,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", @@ -891,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 @@ -919,131 +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", + "_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", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", "object_key": "test/key", "object_size": "1024", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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 }, - "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" } ] @@ -1052,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", @@ -1065,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 @@ -1093,120 +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", + "_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", + "language": "python", + "message_id": "XXXX", "operation_name": "aws.sns", + "peer.service": "integration-tests-python", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1215,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", @@ -1228,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 @@ -1256,119 +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", + "_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", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1377,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", @@ -1390,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 @@ -1418,128 +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", + "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_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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", - "span.kind": "server", + "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 new file mode 100644 index 000000000..cb121e118 --- /dev/null +++ b/tests/integration/snapshots/logs/async-metrics_python314.log @@ -0,0 +1,1775 @@ +INIT_START Runtime Version: python:3.14.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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/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", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.apigateway", + "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_dd.svc_src": "m", + "cold_start": "true", + "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": "api-gateway", + "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "http.method": "GET", + "http.route": "/", + "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 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "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", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", + "span_links": [ + { + "attributes": { + "link.kind": "span-pointer", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" + }, + { + "attributes": { + "link.kind": "span-pointer", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" + }, + { + "attributes": { + "link.kind": "span-pointer", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" + } + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", + "language": "python", + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.eventbridge", + "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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.method": "GET", + "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", + "http.source_ip": "XXXX", + "http.status_code": "200", + "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", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.httpapi", + "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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": "api-gateway", + "function_trigger.event_source_arn": "XXXX$default", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python314", + "http.method": "GET", + "http.route": "/httpapi/get", + "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 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "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", + "peer.service": "integration-tests-python", + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.kinesis", + "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "error": 0, + "meta": { + "_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": "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", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", + "span_links": [ + { + "attributes": { + "link.kind": "span-pointer", + "ptr.dir": "u", + "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" + } + ], + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "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", + "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": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.sns", + "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "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", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.sqs", + "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python314_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "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", + "http.status_code": "200", + "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", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.apigateway.websocket", + "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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": "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", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python314", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-async-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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 diff --git a/tests/integration/snapshots/logs/async-metrics_python38.log b/tests/integration/snapshots/logs/async-metrics_python38.log index 9e6370b5b..d086acb20 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,141 +42,270 @@ 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", - "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", + "_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", + "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": "http" - }, - { - "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", - "http.url_details.path": "/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 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" }, { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "component": "requests", + "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", + "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 (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python38_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "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_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python38", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python38", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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", + "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { + "duration": "XXXX", "error": 0, + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -187,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 @@ -224,154 +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", + "_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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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", - "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_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" } ] @@ -380,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", @@ -393,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 @@ -421,115 +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", - "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_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" } ] @@ -538,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", @@ -551,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 @@ -579,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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", - "http.url_details.path": "/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" } ] @@ -713,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", @@ -726,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 @@ -754,122 +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", "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", - "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_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" } ] @@ -878,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", @@ -891,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 @@ -919,131 +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", + "_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", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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", - "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_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" } ] @@ -1052,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", @@ -1065,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 @@ -1093,120 +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", + "_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", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", - "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_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" } ] @@ -1215,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", @@ -1228,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 @@ -1256,119 +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", + "_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", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", - "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_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" } ] @@ -1377,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", @@ -1390,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 @@ -1418,128 +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", + "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 70f7a59f1..1383dd98a 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,141 +42,270 @@ 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", - "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", + "_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", + "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": "http" - }, - { - "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", - "http.url_details.path": "/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 }, + "name": "requests.request", + "parent_id": "XXXX", + "resource": "GET /", + "service": "requests", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", "type": "http" }, { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "component": "requests", + "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", + "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 (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "hello.dog", + "t": [ + "team:serverless", + "role:hello", + "dd_lambda_layer:datadog-python39_X.X.X" + ], + "v": 1 +} +{ + "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 +{ + "traces": [ + [ + { + "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_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-async-metrics_python39", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-async-metrics_python39", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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", + "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { + "duration": "XXXX", "error": 0, + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { "duration": "XXXX", + "error": 0, "meta": { - "_dd.p.tid": "XXXX", "_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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -187,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 @@ -224,154 +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", + "_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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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", - "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_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" } ] @@ -380,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", @@ -393,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 @@ -421,115 +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", - "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_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" } ] @@ -538,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", @@ -551,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 @@ -579,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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", - "http.url_details.path": "/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" } ] @@ -713,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", @@ -726,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 @@ -754,122 +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", "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", - "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_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" } ] @@ -878,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", @@ -891,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 @@ -919,131 +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", + "_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", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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", - "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_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" } ] @@ -1052,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", @@ -1065,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 @@ -1093,120 +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", + "_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", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", - "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_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" } ] @@ -1215,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", @@ -1228,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 @@ -1256,119 +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", + "_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", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", - "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_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" } ] @@ -1377,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", @@ -1390,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 @@ -1418,128 +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", + "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 7d504bdcb..a230501ed 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,130 +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", - "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", + "_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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -156,46 +165,205 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-sync-metrics_python310", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python310", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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": "POST /api/v1/distribution_points", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { "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" + "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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -206,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 @@ -223,154 +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", + "_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", "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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -381,35 +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" + "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" } ] @@ -418,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", @@ -431,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 @@ -439,115 +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", + "_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", + "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_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -558,35 +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" + "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" } ] @@ -595,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", @@ -608,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 @@ -616,132 +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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -752,35 +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" + "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" } ] @@ -789,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", @@ -802,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 @@ -810,122 +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", "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_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -936,35 +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" + "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" } ] @@ -973,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", @@ -986,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 @@ -994,131 +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", + "_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", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", "object_key": "test/key", "object_size": "1024", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python310", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -1129,35 +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" + "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" } ] @@ -1166,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", @@ -1179,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 @@ -1187,120 +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", + "_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", + "language": "python", + "message_id": "XXXX", "operation_name": "aws.sns", + "peer.service": "integration-tests-python", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1311,35 +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" + "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" } ] @@ -1348,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", @@ -1361,127 +1609,139 @@ 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 { "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", + "_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", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1492,35 +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" + "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" } ] @@ -1529,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", @@ -1542,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 @@ -1550,128 +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", + "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_python310", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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", - "span.kind": "server", + "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" } ] @@ -1682,35 +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" + "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_python311.log b/tests/integration/snapshots/logs/sync-metrics_python311.log index aa242652d..41e8bc27b 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,130 +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", - "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", + "_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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -156,46 +165,205 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-sync-metrics_python311", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python311", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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": "POST /api/v1/distribution_points", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { "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" + "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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -206,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 @@ -223,154 +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", + "_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", "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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -381,35 +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" + "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" } ] @@ -418,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", @@ -431,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 @@ -439,115 +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", + "_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", + "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_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -558,35 +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" + "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" } ] @@ -595,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", @@ -608,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 @@ -616,132 +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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -752,35 +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" + "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" } ] @@ -789,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", @@ -802,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 @@ -810,122 +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", "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_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -936,35 +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" + "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" } ] @@ -973,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", @@ -986,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 @@ -994,131 +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", + "_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", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", "object_key": "test/key", "object_size": "1024", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python311", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -1129,35 +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" + "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" } ] @@ -1166,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", @@ -1179,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 @@ -1187,120 +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", + "_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", + "language": "python", + "message_id": "XXXX", "operation_name": "aws.sns", + "peer.service": "integration-tests-python", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1311,35 +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" + "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" } ] @@ -1348,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", @@ -1361,127 +1609,139 @@ 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 { "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", + "_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", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1492,35 +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" + "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" } ] @@ -1529,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", @@ -1542,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 @@ -1550,128 +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", + "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_python311", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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", - "span.kind": "server", + "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" } ] @@ -1682,35 +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" + "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_python312.log b/tests/integration/snapshots/logs/sync-metrics_python312.log index 99471eaf8..ba64c5f90 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,130 +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", - "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", + "_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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -156,46 +165,205 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-sync-metrics_python312", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python312", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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": "POST /api/v1/distribution_points", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { "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" + "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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -206,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 @@ -223,154 +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", + "_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", "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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -381,35 +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" + "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" } ] @@ -418,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", @@ -431,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 @@ -439,115 +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", + "_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", + "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_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -558,35 +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" + "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" } ] @@ -595,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", @@ -608,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 @@ -616,132 +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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -752,35 +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" + "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" } ] @@ -789,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", @@ -802,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 @@ -810,122 +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", "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_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -936,35 +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" + "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" } ] @@ -973,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", @@ -986,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 @@ -994,131 +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", + "_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", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", "object_key": "test/key", "object_size": "1024", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python312", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -1129,35 +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" + "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" } ] @@ -1166,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", @@ -1179,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 @@ -1187,120 +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", + "_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", + "language": "python", + "message_id": "XXXX", "operation_name": "aws.sns", + "peer.service": "integration-tests-python", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1311,35 +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" + "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" } ] @@ -1348,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", @@ -1361,127 +1609,139 @@ 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 { "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", + "_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", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1492,35 +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" + "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" } ] @@ -1529,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", @@ -1542,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 @@ -1550,128 +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", + "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_python312", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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", - "span.kind": "server", + "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" } ] @@ -1682,35 +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" + "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_python313.log b/tests/integration/snapshots/logs/sync-metrics_python313.log index e53aae508..86c817aea 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,130 +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", - "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", + "_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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -156,46 +165,205 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-sync-metrics_python313", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python313", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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": "POST /api/v1/distribution_points", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { "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" + "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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -206,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 @@ -223,154 +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", + "_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", "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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -381,35 +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" + "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" } ] @@ -418,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", @@ -431,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 @@ -439,115 +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", + "_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", + "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_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -558,35 +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" + "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" } ] @@ -595,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", @@ -608,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 @@ -616,132 +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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", + "_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", - "span.kind": "server", - "http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com", - "http.url_details.path": "/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" } ] @@ -752,35 +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" + "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" } ] @@ -789,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", @@ -802,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 @@ -810,122 +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", "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_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -936,35 +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" + "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" } ] @@ -973,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", @@ -986,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 @@ -994,131 +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", + "_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", + "event_name": "ObjectCreated:Put", + "language": "python", + "object_etag": "XXXX", "object_key": "test/key", "object_size": "1024", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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_python313", - "name": "aws.lambda", - "error": 0, - "start": "XXXX", "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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" } ] @@ -1129,35 +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" + "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" } ] @@ -1166,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", @@ -1179,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 @@ -1187,120 +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", + "_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", + "language": "python", + "message_id": "XXXX", "operation_name": "aws.sns", + "peer.service": "integration-tests-python", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1311,35 +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" + "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" } ] @@ -1348,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", @@ -1361,127 +1609,139 @@ 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 { "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", + "_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", + "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", + "language": "python", "operation_name": "aws.sqs", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", + "_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" } ] @@ -1492,35 +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" + "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" } ] @@ -1529,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", @@ -1542,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 @@ -1550,128 +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", + "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_python313", - "name": "aws.lambda", - "error": 0, "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { "duration": "XXXX", + "error": 0, "meta": { "_dd.origin": "lambda", + "_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", - "span.kind": "server", + "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" } ] @@ -1682,35 +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" + "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_python314.log b/tests/integration/snapshots/logs/sync-metrics_python314.log new file mode 100644 index 000000000..c1398b0c8 --- /dev/null +++ b/tests/integration/snapshots/logs/sync-metrics_python314.log @@ -0,0 +1,1995 @@ +INIT_START Runtime Version: python:3.14.vX Runtime Version ARN: arn:aws:lambda:eu-west-1:XXXX:eu-west-1 +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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/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", + "request_id": "XXXX", + "resource_names": "GET /", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "Prod" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.apigateway", + "parent_id": "XXXX", + "resource": "GET /", + "service": "XXXX.execute-api.us-east-2.amazonaws.com", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_dd.svc_src": "m", + "cold_start": "true", + "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": "api-gateway", + "function_trigger.event_source_arn": "XXXX", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "http.method": "GET", + "http.route": "/", + "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 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "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", + "resource_names": "ExampleTableWithStream", + "runtime-id": "XXXX", + "size_bytes": "26", + "span.kind": "server", + "stream_view_type": "NEW_AND_OLD_IMAGES", + "tablename": "ExampleTableWithStream" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.dynamodb", + "parent_id": "XXXX", + "resource": "ExampleTableWithStream", + "service": "ExampleTableWithStream", + "span_id": "XXXX", + "span_links": [ + { + "attributes": { + "link.kind": "span-pointer", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" + }, + { + "attributes": { + "link.kind": "span-pointer", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" + }, + { + "attributes": { + "link.kind": "span-pointer", + "ptr.dir": "u", + "ptr.hash": "e2af34d333891f765c7f02d2da80895e", + "ptr.kind": "aws.dynamodb.item" + }, + "span_id": "XXXX", + "trace_id": "XXXX" + } + ], + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "async", + "_inferred_span.tag_source": "self", + "detail_type": "testdetail", + "language": "python", + "operation_name": "aws.eventbridge", + "peer.service": "integration-tests-python", + "resource_names": "eventbridge.custom.event.sender", + "runtime-id": "XXXX", + "span.kind": "server" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.eventbridge", + "parent_id": "XXXX", + "resource": "eventbridge.custom.event.sender", + "service": "eventbridge.custom.event.sender", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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.method": "GET", + "http.protocol": "HTTP/1.1", + "http.route": "/httpapi/get", + "http.source_ip": "XXXX", + "http.status_code": "200", + "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", + "request_id": "XXXX", + "resource_names": "GET /httpapi/get", + "runtime-id": "XXXX", + "stage": "$default" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.httpapi", + "parent_id": "XXXX", + "resource": "GET /httpapi/get", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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": "api-gateway", + "function_trigger.event_source_arn": "XXXX$default", + "function_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python314", + "http.method": "GET", + "http.route": "/httpapi/get", + "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 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "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", + "peer.service": "integration-tests-python", + "resource_names": "EXAMPLE", + "runtime-id": "XXXX", + "shardid": "shardId-XXXX", + "span.kind": "server", + "streamname": "EXAMPLE" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.kinesis", + "parent_id": "XXXX", + "resource": "EXAMPLE", + "service": "EXAMPLE", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "error": 0, + "meta": { + "_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": "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", + "resource_names": "example-bucket", + "runtime-id": "XXXX", + "span.kind": "server" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.s3", + "parent_id": "XXXX", + "resource": "example-bucket", + "service": "example-bucket", + "span_id": "XXXX", + "span_links": [ + { + "attributes": { + "link.kind": "span-pointer", + "ptr.dir": "u", + "ptr.hash": "1dc3e5d00dae48c1f07d95371a747788", + "ptr.kind": "aws.s3.object" + }, + "span_id": "XXXX", + "trace_id": "XXXX" + } + ], + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "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", + "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": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.sns", + "parent_id": "XXXX", + "resource": "sns-lambda", + "service": "sns-lambda", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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": "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", + "queuename": "my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "span.kind": "server" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.sqs", + "parent_id": "XXXX", + "resource": "my-queue", + "service": "my-queue", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "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", + "http.status_code": "200", + "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", + "request_id": "XXXX", + "resource_names": "$default", + "runtime-id": "XXXX", + "span.kind": "server", + "stage": "dev" + }, + "metrics": { + "_dd._inferred_span": 1, + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_id": XXXX + }, + "name": "aws.apigateway.websocket", + "parent_id": "XXXX", + "resource": "$default", + "service": "XXXX.execute-api.eu-west-1.amazonaws.com", + "span_id": "XXXX", + "start": "XXXX", + "trace_id": "XXXX", + "type": "web" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_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": "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", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python314", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1 + }, + "name": "aws.lambda", + "parent_id": "XXXX", + "resource": "integration-tests-python-XXXX-sync-metrics_python314", + "service": "integration-tests-python", + "span_id": "XXXX", + "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", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.base_service": "integration-tests-python", + "_dd.origin": "lambda", + "_dd.p.tid": "XXXX", + "_dd.svc_src": "requests", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { + "duration": "XXXX", + "error": 0, + "meta": { + "_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", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/tests/integration/snapshots/logs/sync-metrics_python38.log b/tests/integration/snapshots/logs/sync-metrics_python38.log index 9cbf45648..1293ded9b 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,130 +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", - "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", + "_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", + "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": "http" - }, - { - "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", - "http.url_details.path": "/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" } ] @@ -156,46 +157,193 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "component": "requests", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "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_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python38", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python38", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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": "POST /api/v1/distribution_points", + "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", "error": 0, + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { "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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -206,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 @@ -223,154 +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", + "_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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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", - "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_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" } ] @@ -381,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" } ] @@ -418,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", @@ -431,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 @@ -439,115 +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", - "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_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" } ] @@ -558,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" } ] @@ -595,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", @@ -608,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 @@ -616,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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", - "http.url_details.path": "/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" } ] @@ -752,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" } ] @@ -789,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", @@ -802,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 @@ -810,122 +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", "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", - "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_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" } ] @@ -936,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" } ] @@ -973,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", @@ -986,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 @@ -994,131 +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", + "_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", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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", - "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_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" } ] @@ -1129,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" } ] @@ -1166,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", @@ -1179,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 @@ -1187,120 +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", + "_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", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", - "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_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" } ] @@ -1311,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" } ] @@ -1348,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", @@ -1361,127 +1523,131 @@ 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 { "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", + "_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", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", - "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_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" } ] @@ -1492,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" } ] @@ -1529,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", @@ -1542,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 @@ -1550,128 +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", + "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" } ] @@ -1682,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 cc0407c1b..507eeda04 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,130 +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", - "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", + "_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", + "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": "http" - }, - { - "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", - "http.url_details.path": "/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" } ] @@ -156,46 +157,193 @@ HTTP POST https://api.datadoghq.com/api/v1/distribution_points Headers: ["Accept "traces": [ [ { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "_dd.p.dm": "-0", + "_dd.p.tid": "XXXX", + "component": "requests", + "http.method": "POST", + "http.status_code": "202", + "http.url": "https://api.datadoghq.com/api/v1/distribution_points", + "http.useragent": "datadogpy/XX (python XX; os linux; arch XXXX)", + "language": "python", + "out.host": "api.datadoghq.com", + "runtime-id": "XXXX", + "span.kind": "client" + }, + "metrics": { + "_dd.measured": 1, + "_dd.top_level": 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" + } + ] + ] +} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "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" + ], + "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 +{ + "traces": [ + [ + { + "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_version": "$LATEST", + "functionname": "integration-tests-python-XXXX-sync-metrics_python39", + "language": "python", + "request_id": "XXXX", + "resource_names": "integration-tests-python-XXXX-sync-metrics_python39", + "runtime-id": "XXXX", + "span.kind": "server", + "span.name": "aws.lambda" + }, + "metrics": { + "_dd.top_level": 1, + "_sampling_priority_v1": 1, + "process_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": "POST /api/v1/distribution_points", + "start": "XXXX", + "trace_id": "XXXX", + "type": "serverless" + }, + { + "duration": "XXXX", + "error": 0, + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "http.method": "GET", + "http.status_code": "200", + "http.url": "https://datadoghq.com/", + "http.useragent": "python-requests/X.X.X", + "out.host": "datadoghq.com", + "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" + }, + { + "duration": "XXXX", "error": 0, + "meta": { + "_dd.origin": "lambda", + "component": "requests", + "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", + "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" + } + ] + ] +} +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": [ + [ + { "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" } ] ] } -END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +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", @@ -206,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 @@ -223,154 +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", + "_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", - "stream_view_type": "NEW_AND_OLD_IMAGES", - "size_bytes": "26", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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", - "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_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" } ] @@ -381,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" } ] @@ -418,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", @@ -431,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 @@ -439,115 +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", - "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_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" } ] @@ -558,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" } ] @@ -595,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", @@ -608,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 @@ -616,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", - "operation_name": "aws.httpapi", + "_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.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", + "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": "http" - }, - { - "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", - "http.url_details.path": "/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" } ] @@ -752,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" } ] @@ -789,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", @@ -802,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 @@ -810,122 +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", "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", - "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_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" } ] @@ -936,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" } ] @@ -973,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", @@ -986,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 @@ -994,131 +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", + "_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", - "object_etag": "XXXX", - "_inferred_span.synchronicity": "async", - "_inferred_span.tag_source": "self", + "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", - "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_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" } ] @@ -1129,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" } ] @@ -1166,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", @@ -1179,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 @@ -1187,120 +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", + "_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", "resource_names": "sns-lambda", + "runtime-id": "XXXX", "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" + "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", - "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_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" } ] @@ -1311,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" } ] @@ -1348,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", @@ -1361,127 +1523,131 @@ 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 { "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", + "_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", - "resource_names": "my-queue", - "span.kind": "server", + "peer.service": "integration-tests-python", "queuename": "my-queue", - "event_source_arn": "arn:aws:sqs:us-east-2:XXXX:us-east-2-queue", "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "resource_names": "my-queue", + "runtime-id": "XXXX", "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" + "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", - "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_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" } ] @@ -1492,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" } ] @@ -1529,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", @@ -1542,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 @@ -1550,128 +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", + "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" } ] @@ -1682,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/return_values/async-metrics_appsync.json b/tests/integration/snapshots/return_values/async-metrics_appsync.json new file mode 100644 index 000000000..1ad668ecc --- /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 000000000..1ad668ecc --- /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 37cb357d5..fc8b4d916 100644 --- a/tests/integration/yarn.lock +++ b/tests/integration/yarn.lock @@ -4,7 +4,7 @@ "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" @@ -12,52 +12,52 @@ "@iarna/toml@^2.2.5": version "2.2.5" - resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz" + 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.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - 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" @@ -110,7 +110,7 @@ cross-spawn@^6.0.5: 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, d@^1.0.1, d@^1.0.2: 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,17 +235,17 @@ 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" @@ -253,62 +253,62 @@ inflight@^1.0.4: 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,45 +465,52 @@ 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.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.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" appdirectory "^0.1.0" @@ -517,12 +531,12 @@ serverless-python-requirements@^6.1.1: 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,48 +544,48 @@ 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" @@ -580,64 +594,89 @@ stream-promise@^3.2.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, string_decoder@~1.1.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.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + 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" diff --git a/tests/test_api.py b/tests/test_api.py index 7fcc3c221..0cb42a0ac 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") @@ -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() @@ -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") @@ -130,11 +172,10 @@ 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" + 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_asm.py b/tests/test_asm.py index 1e11b102d..3aab8dd73 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( diff --git a/tests/test_cold_start.py b/tests/test_cold_start.py index d75b5f43a..5fc11e2cf 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 @@ -264,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 diff --git a/tests/test_config.py b/tests/test_config.py index 92002439d..9c5da63a2 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 - ), ) diff --git a/tests/test_durable.py b/tests/test_durable.py new file mode 100644 index 000000000..a4f7c2f2d --- /dev/null +++ b/tests/test_durable.py @@ -0,0 +1,178 @@ +# 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, + extract_durable_execution_status, +) + + +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_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": [{"OperationType": "EXECUTION"}]}, + } + result = extract_durable_function_tags(event) + self.assertEqual( + result, + { + "aws.durable.execution_name": "my-execution", + "aws.durable.execution_id": "550e8400-e29b-41d4-a716-446655440004", + "aws.durable.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.durable.execution_name": "my-execution", + "aws.durable.execution_id": "550e8400-e29b-41d4-a716-446655440004", + "aws.durable.first_invocation": "false", + }, + ) + + 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, {}) + + +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_pending(self): + event = { + "DurableExecutionArn": "arn:aws:lambda:us-east-1:123:function:f:1/durable-execution/n/id" + } + response = {"Status": "PENDING"} + self.assertEqual(extract_durable_execution_status(response, event), "PENDING") + + 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)) diff --git a/tests/test_metric.py b/tests/test_metric.py index aa537d346..fe3df247d 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_tag_object.py b/tests/test_tag_object.py index 574bb331a..bd04bf4c7 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", diff --git a/tests/test_tracing.py b/tests/test_tracing.py index c87a09711..986bc9e47 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 @@ -48,7 +49,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 +180,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 +622,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 ): @@ -1007,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() @@ -1024,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" @@ -1105,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): @@ -1334,7 +1410,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 @@ -1343,7 +1418,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( @@ -1360,14 +1434,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" ) @@ -1410,14 +1482,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" ) @@ -1758,7 +1828,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", @@ -1768,7 +1838,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", @@ -1780,7 +1850,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", @@ -1790,7 +1860,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", @@ -1802,7 +1872,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", @@ -1812,7 +1882,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", @@ -1824,7 +1894,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", @@ -1836,8 +1906,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", @@ -1849,7 +1918,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", @@ -1859,7 +1928,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", @@ -1871,7 +1940,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", @@ -1881,7 +1950,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", @@ -2140,7 +2209,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", @@ -2150,7 +2219,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", @@ -2162,7 +2231,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", @@ -2173,7 +2242,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", @@ -2185,7 +2254,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", @@ -2195,7 +2264,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", @@ -2207,7 +2276,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", @@ -2218,7 +2287,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", @@ -2230,7 +2299,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", @@ -2240,7 +2309,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", @@ -2252,7 +2321,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", @@ -2262,7 +2331,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", @@ -2274,7 +2343,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", @@ -2284,7 +2353,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", @@ -2369,6 +2438,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( diff --git a/tests/test_trigger.py b/tests/test_trigger.py index 182e61d8e..f10fcbbf0 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", }, ) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 0083b3faa..ba2cce5e9 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 @@ -24,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( @@ -112,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 @@ -123,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 @@ -182,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 @@ -193,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): @@ -483,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 @@ -492,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 @@ -499,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): @@ -562,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() @@ -763,7 +764,25 @@ 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): + self.addCleanup(os.environ.pop, "DD_APPSEC_ENABLED", None) os.environ["DD_APPSEC_ENABLED"] = "false" importlib.reload(wrapper) @@ -789,3 +808,191 @@ 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) + + Profiler_start_calls: list = [] + Profiler_stop_calls: list = [] + + 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 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, + "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 + + lambda_handler.prof.stop() + + +@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 + + +@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 + + +@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") diff --git a/tests/test_xray.py b/tests/test_xray.py index 7f33f8915..8177e46e8 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: