From 862621fb758c47a1ebd590e0e4b7744499e77b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 16:47:13 -0400 Subject: [PATCH 01/26] update `ddtrace` gem to `1.11.0` --- datadog-lambda.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datadog-lambda.gemspec b/datadog-lambda.gemspec index 18efcc8..778a478 100644 --- a/datadog-lambda.gemspec +++ b/datadog-lambda.gemspec @@ -33,7 +33,7 @@ Gem::Specification.new do |spec| spec.add_dependency 'aws-xray-sdk', '~> 0.11.3' # We don't add this as a direct dependency, because it has # native modules that are difficult to package for lambda - spec.add_development_dependency 'ddtrace', '~>1.5.0' + spec.add_development_dependency 'ddtrace', '~>1.11.0' # Development dependencies spec.add_development_dependency 'rake', '~> 12.3' From f120226405b695d4d11164712cdc15359801bc83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 16:47:45 -0400 Subject: [PATCH 02/26] update `Dockerfile` with latest `ddtrace` gem --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4338f13..1e14f28 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,8 @@ WORKDIR /var/task/datadog-lambda-ruby RUN gem build datadog-lambda RUN gem install datadog-lambda --install-dir "/opt/ruby/gems/${runtime}" # v0.48 has a bug : https://github.com/DataDog/dd-trace-rb/issues/1475 -RUN gem install ddtrace -v 1.5.0 --install-dir "/opt/ruby/gems/${runtime}" +RUN gem install ddtrace -v 1.11.0 --install-dir "/opt/ruby/gems/${runtime}" # Cache files zipped gem files, that aren't used by during runtime, only during # installation, so they are safe to delete RUN rm -rf "/opt/ruby/gems/${runtime}/cache" -RUN cd /opt \ No newline at end of file +RUN cd /opt From 2a4a3300623ee3bcee5ddb29c82859b2a4add2de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 16:49:05 -0400 Subject: [PATCH 03/26] update `build_layers.sh` allow ARM builds and Ruby 3.2 support --- scripts/build_layers.sh | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 19e8c50..5923776 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -10,7 +10,7 @@ set -e LAYER_DIR=".layers" LAYER_FILES_PREFIX="datadog-lambda_ruby" -RUBY_VERSIONS=("2.7") +RUBY_VERSIONS=("2.7" "3.2") if [ -z "$RUBY_VERSION" ]; then echo "Ruby version not specified, running for all ruby versions." @@ -29,19 +29,23 @@ function make_path_absolute { } function docker_build_zip { - # Args: [ruby version] [zip destination] + # Args: [ruby version] [zip destination] [architecture] destination=$(make_path_absolute $2) + arch=$3 # Install datadog ruby in a docker container to avoid the mess from switching # between different ruby runtimes. temp_dir=$(mktemp -d) - docker build -t datadog-lambda-layer-ruby:$1 . --no-cache \ - --build-arg "image=lambci/lambda:build-ruby${1}" --build-arg "runtime=${1}.0" + docker buildx build -t datadog-lambda-ruby-${arch}:$1 . --no-cache \ + --build-arg "image=ruby:${1}" \ + --build-arg "runtime=${1}.0" \ + --platform linux/${arch} \ + --load # Run the image by runtime tag, tar its generatd `ruby` directory to sdout, # then extract it to a temp directory. - docker run --rm datadog-lambda-layer-ruby:$1 tar cf - /opt/ruby | tar -xf - -C $temp_dir + docker run --rm datadog-lambda-ruby-${arch}:$1 tar cf - /opt/ruby | tar -xf - -C $temp_dir # Zip to destination, and keep directory structure as based in $temp_dir (cd $temp_dir/opt/ && zip -q -r $destination ./) @@ -55,10 +59,13 @@ mkdir $LAYER_DIR for ruby_version in "${RUBY_VERSIONS[@]}" do - echo "Building layer for ruby${ruby_version}" - docker_build_zip ${ruby_version} $LAYER_DIR/${LAYER_FILES_PREFIX}${ruby_version}.zip + echo "Building layer for Ruby ${ruby_version} arch=arm64" + docker_build_zip ${ruby_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-arm64-${ruby_version}.zip arm64 + + echo "Building layer for Ruby ${ruby_version} arch=amd64" + docker_build_zip ${ruby_version} $LAYER_DIR/${LAYER_FILES_PREFIX}-amd64-${ruby_version}.zip amd64 done echo "Done creating layers:" -ls $LAYER_DIR | xargs -I _ echo "$LAYER_DIR/_" \ No newline at end of file +ls $LAYER_DIR | xargs -I _ echo "$LAYER_DIR/_" From 1e12d44e4e0de3307f8baa80c5c8b7a4ad81147a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:22:56 -0400 Subject: [PATCH 04/26] update scripts to list, publish, and sign layers also to add new region and check layer size --- scripts/add_new_region.sh | 4 ++-- scripts/check_layer_size.sh | 2 +- scripts/list_layers.sh | 2 +- scripts/publish_layers.sh | 8 ++++---- scripts/sign_layers.sh | 7 ++++++- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/scripts/add_new_region.sh b/scripts/add_new_region.sh index fa8afc5..a6e5171 100755 --- a/scripts/add_new_region.sh +++ b/scripts/add_new_region.sh @@ -12,8 +12,8 @@ set -e OLD_REGION='us-east-1' -RUBY_VERSIONS_FOR_AWS_CLI=("ruby2.7") -LAYER_NAMES=("Datadog-Ruby2-7") +RUBY_VERSIONS_FOR_AWS_CLI=("ruby2.7" "ruby3.2") +LAYER_NAMES=("Datadog-Ruby2-7" "Datadog-Ruby3-2") NEW_REGION=$1 publish_layer() { diff --git a/scripts/check_layer_size.sh b/scripts/check_layer_size.sh index 5716b85..361f7dc 100755 --- a/scripts/check_layer_size.sh +++ b/scripts/check_layer_size.sh @@ -16,7 +16,7 @@ MAX_LAYER_UNCOMPRESSED_SIZE_KB=$(expr 100 \* 1024) LAYER_FILES_PREFIX="datadog-lambda_ruby" LAYER_DIR=".layers" -VERSIONS=("2.7") +VERSIONS=("2.7" "3.2") for version in "${VERSIONS[@]}" do diff --git a/scripts/list_layers.sh b/scripts/list_layers.sh index 9bc248b..36805c7 100755 --- a/scripts/list_layers.sh +++ b/scripts/list_layers.sh @@ -10,7 +10,7 @@ set -e -LAYER_NAMES=("Datadog-Ruby2-7") +LAYER_NAMES=("Datadog-Ruby2-7" "Datadog-Ruby2-7-ARM" "Datadog-Ruby3-2" "Datadog-Ruby3-2-ARM") AVAILABLE_REGIONS=$(aws ec2 describe-regions | jq -r '.[] | .[] | .RegionName') LAYERS_MISSING_REGIONS=() diff --git a/scripts/publish_layers.sh b/scripts/publish_layers.sh index ac9425b..d9c23f0 100755 --- a/scripts/publish_layers.sh +++ b/scripts/publish_layers.sh @@ -10,9 +10,9 @@ # VERSION is required. set -e -RUBY_VERSIONS_FOR_AWS_CLI=("ruby2.7") -LAYER_PATHS=(".layers/datadog-lambda_ruby2.7.zip") -AVAILABLE_LAYERS=("Datadog-Ruby2-7") +RUBY_VERSIONS_FOR_AWS_CLI=("ruby2.7" "ruby3.2") +LAYER_PATHS=(".layers/datadog-lambda_ruby-amd64-2.7.zip" ".layers/datadog-lambda_ruby-arm64-2.7.zip" ".layers/datadog-lambda_ruby-amd64-3.2.zip" ".layers/datadog-lambda_ruby-arm64-3.2.zip") +AVAILABLE_LAYERS=("Datadog-Ruby2-7" "Datadog-Ruby2-7-ARM" "Datadog-Ruby3-2" "Datadog-Ruby3-2-ARM") AVAILABLE_REGIONS=$(aws ec2 describe-regions | jq -r '.[] | .[] | .RegionName') @@ -137,4 +137,4 @@ do done done -echo "Done !" \ No newline at end of file +echo "Done !" diff --git a/scripts/sign_layers.sh b/scripts/sign_layers.sh index 1a56739..faefef3 100755 --- a/scripts/sign_layers.sh +++ b/scripts/sign_layers.sh @@ -8,7 +8,12 @@ set -e LAYER_DIR=".layers" -LAYER_FILES=("datadog-lambda_ruby2.7.zip") +LAYER_FILES=( + "datadog-lambda_ruby-amd64-2.7.zip" + "datadog-lambda_ruby-arm64-2.7.zip" + "datadog-lambda_ruby-amd64-3.2.zip" + "datadog-lambda_ruby-arm64-3.2.zip" +) SIGNING_PROFILE_NAME="DatadogLambdaSigningProfile" # Check account parameter From e175ae1013fb2e9c845f3aa8cb2804619fa028f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:23:10 -0400 Subject: [PATCH 05/26] update github actions --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 47c37e4..2fa8060 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: strategy: max-parallel: 4 matrix: - ruby-version: [2.7] + ruby-version: [2.7, 3.2] steps: - name: Checkout uses: actions/checkout@v3 @@ -51,7 +51,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - runtime-param: [2.7] + runtime-param: [2.7, 3.2] steps: - name: Checkout From 7a8f732938b15626d096e98e5fe06ee5fced3d2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:23:22 -0400 Subject: [PATCH 06/26] update `README.md` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1545e60..f093486 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,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-rb/blob/main/LICENSE) -Datadog Lambda Library for Ruby (2.7) enables enhanced Lambda metrics, distributed tracing, and custom metric submission from AWS Lambda functions. +Datadog Lambda Library for Ruby (2.7, and 3.2) enables enhanced Lambda metrics, distributed tracing, and custom metric submission from AWS Lambda functions. ## Installation From 037ebac01c5c7d5a8cadb2b2f3a23b917b95c6ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:23:36 -0400 Subject: [PATCH 07/26] update test scripts --- scripts/run_integration_tests.sh | 5 +++-- scripts/run_tests.sh | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index 2d2e0b0..a7b82fd 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -11,7 +11,7 @@ set -e # These values need to be in sync with serverless.yml, where there needs to be a function # defined for every handler_runtime combination LAMBDA_HANDLERS=("async-metrics" "sync-metrics" "http-requests" "http-error" "process-input-traced") -RUNTIMES=("ruby27") +RUNTIMES=("ruby27" "ruby32") LOGS_WAIT_SECONDS=45 @@ -29,8 +29,9 @@ mismatch_found=false # [1]: ruby version # [2]: random 8-character ID to avoid collisions with other runs ruby27=("ruby2.7" "2.7" $(xxd -l 4 -c 4 -p Date: Thu, 27 Apr 2023 17:24:10 -0400 Subject: [PATCH 08/26] update how options are being sent to the tracer to ensure it works as expected for 3.2 --- lib/datadog/lambda/trace/ddtrace.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/datadog/lambda/trace/ddtrace.rb b/lib/datadog/lambda/trace/ddtrace.rb index fadd104..89697c6 100644 --- a/lib/datadog/lambda/trace/ddtrace.rb +++ b/lib/datadog/lambda/trace/ddtrace.rb @@ -33,7 +33,7 @@ def wrap_datadog(options, &block) return block.call end - Datadog::Tracing.trace('aws.lambda', options) do |_span| + Datadog::Tracing.trace('aws.lambda', **options) do |_span| block.call end end From 594af9378e62fff488e586435b6fb3d07a894646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:56:48 -0400 Subject: [PATCH 09/26] update integration tests `.yml` to use correct zip --- integration_tests/serverless.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration_tests/serverless.yml b/integration_tests/serverless.yml index 9bf72a0..7282406 100644 --- a/integration_tests/serverless.yml +++ b/integration_tests/serverless.yml @@ -20,7 +20,7 @@ provider: layers: ruby: package: - artifact: ../.layers/datadog-lambda_ruby${env:RUBY_VERSION}.zip + artifact: ../.layers/datadog-lambda_ruby-amd64-${env:RUBY_VERSION}.zip functions: # async-metrics From 723b09489fd7a54711699a0553bdc885b97b17d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:57:09 -0400 Subject: [PATCH 10/26] remove runtime specific check --- test/datadog/lambda.spec.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/test/datadog/lambda.spec.rb b/test/datadog/lambda.spec.rb index a8c9632..71881a4 100644 --- a/test/datadog/lambda.spec.rb +++ b/test/datadog/lambda.spec.rb @@ -67,7 +67,6 @@ functionname: "hello-dog-ruby-dev-helloRuby#{dd_lambda_layer_tag}", memorysize: 128, region: 'us-east-1', - runtime: include('Ruby 2.'), resource: "hello-dog-ruby-dev-helloRuby#{dd_lambda_layer_tag}" ) end @@ -81,8 +80,7 @@ functionname: 'Ruby-test', memorysize: 128, region: 'us-east-1', - resource: 'Ruby-test:1', - runtime: include('Ruby 2.') } + resource: 'Ruby-test:1' } ) end end @@ -96,8 +94,7 @@ memorysize: 128, region: 'us-east-1', resource: 'Ruby-test:my-alias', - executedversion: '1', - runtime: include('Ruby 2.') } + executedversion: '1' } ) end end From 7160a45a6ba37273671ef169b1d68680527631f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 18:02:50 -0400 Subject: [PATCH 11/26] update integration tests script to mask changing values --- scripts/run_integration_tests.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index a7b82fd..f7acdce 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -175,7 +175,7 @@ for handler_name in "${LAMBDA_HANDLERS[@]}"; do # Filter serverless cli errors sed '/Serverless: Recoverable error occurred/d' | # Normalize Lambda runtime report logs - perl -p -e 's/(RequestId|Duration|Memory Used|"e"|init):( )?[a-z0-9\.\-]+/\1:\2XXXX/g' | + perl -p -e 's/(RequestId|Duration|Memory Used|"e"|init|"date"):( )?[a-z0-9\.\-]+/\1:\2XXXX/g' | # Normalize DD APM headers and AWS account ID perl -p -e "s/(x-datadog-parent-id:|x-datadog-trace-id:|account_id:)[0-9]+/\1XXXX/g" | # Strip API key from logged requests @@ -204,6 +204,8 @@ for handler_name in "${LAMBDA_HANDLERS[@]}"; do sed '/XRAY TraceId:/d' | # Warning Log for unresolved bug in dd-trace perl -p -e 's/(WARN |W, \[|Client:)( )?[a-zA-Z0-9\.\:\s\-\#]+/\1XXXX/g' | + # Information Log for Datadog Configuration + perl -p -e 's/(INFO |I, \[)( )?[a-zA-Z0-9\.\:\s\-\#]+/\1XXXX/g' | # Filter out INIT runtime logs perl -p -e "s/INIT_START.*//g" | sort From 5c3bacf7690cae67c60faf470fcd2a8e6f449ba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 18:24:02 -0400 Subject: [PATCH 12/26] mask changing logs in correct command --- scripts/run_integration_tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index f7acdce..938a75e 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -175,7 +175,7 @@ for handler_name in "${LAMBDA_HANDLERS[@]}"; do # Filter serverless cli errors sed '/Serverless: Recoverable error occurred/d' | # Normalize Lambda runtime report logs - perl -p -e 's/(RequestId|Duration|Memory Used|"e"|init|"date"):( )?[a-z0-9\.\-]+/\1:\2XXXX/g' | + perl -p -e 's/(RequestId|Duration|Memory Used|"e"|init):( )?[a-z0-9\.\-]+/\1:\2XXXX/g' | # Normalize DD APM headers and AWS account ID perl -p -e "s/(x-datadog-parent-id:|x-datadog-trace-id:|account_id:)[0-9]+/\1XXXX/g" | # Strip API key from logged requests @@ -189,7 +189,7 @@ for handler_name in "${LAMBDA_HANDLERS[@]}"; do # Normalize minor package version tag so that these snapshots aren't broken on version bumps perl -p -e "s/(dd_lambda_layer:[0-9]+\.)[0-9]+\.[0-9]+/\1XX\.X/g" | perl -p -e "s/(dd_trace:[0-9]+\.)[0-9]+\.[0-9]+/\1XX\.X/g" | - perl -p -e 's/"(span_id|parent_id|trace_id|start|duration|tcp\.local\.address|tcp\.local\.port|dns\.address|request_id|function_arn|x-datadog-trace-id|x-datadog-parent-id|datadog_lambda|dd_trace|allocations)":("?)[a-zA-Z0-9\.:\-]+("?)/"\1":\2XXXX\3/g' | + perl -p -e 's/"(span_id|parent_id|trace_id|start|duration|tcp\.local\.address|tcp\.local\.port|dns\.address|request_id|function_arn|x-datadog-trace-id|x-datadog-parent-id|datadog_lambda|dd_trace|allocations|date)":("?)[a-zA-Z0-9\.:\-\+]+("?)/"\1":\2XXXX\3/g' | # Strip out run ID (from function name, resource, etc.) perl -p -e "s/${!run_id}/XXXX/g" | # Normalize line numbers in stack traces From 141d8dd476892900a09e05a04be5d5e59e795d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 18:24:17 -0400 Subject: [PATCH 13/26] update logs and snapshots --- .../snapshots/logs/async-metrics_ruby27.log | 2 +- .../snapshots/logs/async-metrics_ruby32.log | 23 +++++++++++++++++++ .../snapshots/logs/http-error_ruby27.log | 2 +- .../snapshots/logs/http-error_ruby32.log | 20 ++++++++++++++++ .../snapshots/logs/http-requests_ruby27.log | 2 +- .../snapshots/logs/http-requests_ruby32.log | 20 ++++++++++++++++ .../logs/process-input-traced_ruby27.log | 2 +- .../logs/process-input-traced_ruby32.log | 17 ++++++++++++++ .../snapshots/logs/sync-metrics_ruby27.log | 2 +- .../snapshots/logs/sync-metrics_ruby32.log | 23 +++++++++++++++++++ .../async-metrics_ruby32_api-gateway-get.json | 5 ++++ .../async-metrics_ruby32_sns.json | 7 ++++++ .../async-metrics_ruby32_sqs.json | 8 +++++++ .../http-error_ruby32_api-gateway-get.json | 3 +++ .../return_values/http-error_ruby32_sns.json | 3 +++ .../return_values/http-error_ruby32_sqs.json | 3 +++ .../http-requests_ruby32_api-gateway-get.json | 3 +++ .../http-requests_ruby32_sns.json | 3 +++ .../http-requests_ruby32_sqs.json | 3 +++ ...s-input-traced_ruby32_api-gateway-get.json | 5 ++++ .../process-input-traced_ruby32_sns.json | 7 ++++++ .../process-input-traced_ruby32_sqs.json | 8 +++++++ .../sync-metrics_ruby32_api-gateway-get.json | 5 ++++ .../sync-metrics_ruby32_sns.json | 7 ++++++ .../sync-metrics_ruby32_sqs.json | 8 +++++++ 25 files changed, 186 insertions(+), 5 deletions(-) create mode 100644 integration_tests/snapshots/logs/async-metrics_ruby32.log create mode 100644 integration_tests/snapshots/logs/http-error_ruby32.log create mode 100644 integration_tests/snapshots/logs/http-requests_ruby32.log create mode 100644 integration_tests/snapshots/logs/process-input-traced_ruby32.log create mode 100644 integration_tests/snapshots/logs/sync-metrics_ruby32.log create mode 100644 integration_tests/snapshots/return_values/async-metrics_ruby32_api-gateway-get.json create mode 100644 integration_tests/snapshots/return_values/async-metrics_ruby32_sns.json create mode 100644 integration_tests/snapshots/return_values/async-metrics_ruby32_sqs.json create mode 100644 integration_tests/snapshots/return_values/http-error_ruby32_api-gateway-get.json create mode 100644 integration_tests/snapshots/return_values/http-error_ruby32_sns.json create mode 100644 integration_tests/snapshots/return_values/http-error_ruby32_sqs.json create mode 100644 integration_tests/snapshots/return_values/http-requests_ruby32_api-gateway-get.json create mode 100644 integration_tests/snapshots/return_values/http-requests_ruby32_sns.json create mode 100644 integration_tests/snapshots/return_values/http-requests_ruby32_sqs.json create mode 100644 integration_tests/snapshots/return_values/process-input-traced_ruby32_api-gateway-get.json create mode 100644 integration_tests/snapshots/return_values/process-input-traced_ruby32_sns.json create mode 100644 integration_tests/snapshots/return_values/process-input-traced_ruby32_sqs.json create mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby32_api-gateway-get.json create mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby32_sns.json create mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby32_sqs.json diff --git a/integration_tests/snapshots/logs/async-metrics_ruby27.log b/integration_tests/snapshots/logs/async-metrics_ruby27.log index f724f34..3d46665 100644 --- a/integration_tests/snapshots/logs/async-metrics_ruby27.log +++ b/integration_tests/snapshots/logs/async-metrics_ruby27.log @@ -2,13 +2,13 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux-gnu","version":"1.11.0","lang":"ruby","lang_version":"2.7.7","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-2.7.7","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} Processed APIGateway request Processed SNS request Processed SQS request START START START -W, [XXXX] WARN XXXX[ddtrace] Failed to collect environment information: undefined method `client' for # Location: /opt/ruby/gems/2.7.0/gems/ddtrace-1.5.0/lib/datadog/core/diagnostics/environment_logger.rb:113:in `agent_url' {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} diff --git a/integration_tests/snapshots/logs/async-metrics_ruby32.log b/integration_tests/snapshots/logs/async-metrics_ruby32.log new file mode 100644 index 0000000..caad2e2 --- /dev/null +++ b/integration_tests/snapshots/logs/async-metrics_ruby32.log @@ -0,0 +1,23 @@ + +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +Processed APIGateway request +Processed SNS request +Processed SQS request +START +START +START +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:APIGateway"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SNS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SNS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-async-metrics_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-async-metrics_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-async-metrics_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} diff --git a/integration_tests/snapshots/logs/http-error_ruby27.log b/integration_tests/snapshots/logs/http-error_ruby27.log index e54cc73..8e604d4 100644 --- a/integration_tests/snapshots/logs/http-error_ruby27.log +++ b/integration_tests/snapshots/logs/http-error_ruby27.log @@ -2,13 +2,13 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux-gnu","version":"1.11.0","lang":"ruby","lang_version":"2.7.7","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-2.7.7","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} START START START Snapshot test http requests successfully made to URLs: https://httpstat.us/400 Snapshot test http requests successfully made to URLs: https://httpstat.us/400 Snapshot test http requests successfully made to URLs: https://httpstat.us/400 -W, [XXXX] WARN XXXX[ddtrace] Failed to collect environment information: undefined method `client' for # Location: /opt/ruby/gems/2.7.0/gems/ddtrace-1.5.0/lib/datadog/core/diagnostics/environment_logger.rb:113:in `agent_url' {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} diff --git a/integration_tests/snapshots/logs/http-error_ruby32.log b/integration_tests/snapshots/logs/http-error_ruby32.log new file mode 100644 index 0000000..931f3d9 --- /dev/null +++ b/integration_tests/snapshots/logs/http-error_ruby32.log @@ -0,0 +1,20 @@ + +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +START +START +START +Snapshot test http requests successfully made to URLs: https://httpstat.us/400 +Snapshot test http requests successfully made to URLs: https://httpstat.us/400 +Snapshot test http requests successfully made to URLs: https://httpstat.us/400 +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-http-error_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-http-error_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-http-error_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} diff --git a/integration_tests/snapshots/logs/http-requests_ruby27.log b/integration_tests/snapshots/logs/http-requests_ruby27.log index fbb7bf5..115dce2 100644 --- a/integration_tests/snapshots/logs/http-requests_ruby27.log +++ b/integration_tests/snapshots/logs/http-requests_ruby27.log @@ -2,13 +2,13 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux-gnu","version":"1.11.0","lang":"ruby","lang_version":"2.7.7","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-2.7.7","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} START START START Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] -W, [XXXX] WARN XXXX[ddtrace] Failed to collect environment information: undefined method `client' for # Location: /opt/ruby/gems/2.7.0/gems/ddtrace-1.5.0/lib/datadog/core/diagnostics/environment_logger.rb:113:in `agent_url' {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} diff --git a/integration_tests/snapshots/logs/http-requests_ruby32.log b/integration_tests/snapshots/logs/http-requests_ruby32.log new file mode 100644 index 0000000..ae3ce33 --- /dev/null +++ b/integration_tests/snapshots/logs/http-requests_ruby32.log @@ -0,0 +1,20 @@ + +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +START +START +START +Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] +Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] +Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-http-requests_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-http-requests_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-http-requests_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} diff --git a/integration_tests/snapshots/logs/process-input-traced_ruby27.log b/integration_tests/snapshots/logs/process-input-traced_ruby27.log index 1de3cc2..bd75cac 100644 --- a/integration_tests/snapshots/logs/process-input-traced_ruby27.log +++ b/integration_tests/snapshots/logs/process-input-traced_ruby27.log @@ -2,10 +2,10 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux-gnu","version":"1.11.0","lang":"ruby","lang_version":"2.7.7","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-2.7.7","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} START START START -W, [XXXX] WARN XXXX[ddtrace] Failed to collect environment information: undefined method `client' for # Location: /opt/ruby/gems/2.7.0/gems/ddtrace-1.5.0/lib/datadog/core/diagnostics/environment_logger.rb:113:in `agent_url' {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} diff --git a/integration_tests/snapshots/logs/process-input-traced_ruby32.log b/integration_tests/snapshots/logs/process-input-traced_ruby32.log new file mode 100644 index 0000000..458b7d0 --- /dev/null +++ b/integration_tests/snapshots/logs/process-input-traced_ruby32.log @@ -0,0 +1,17 @@ + +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +START +START +START +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"index","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"index","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"index","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_api_gateway_request_id","parent_id":"XXXX","resource":"get_api_gateway_request_id","service":"index","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} diff --git a/integration_tests/snapshots/logs/sync-metrics_ruby27.log b/integration_tests/snapshots/logs/sync-metrics_ruby27.log index 7c3b647..991f965 100644 --- a/integration_tests/snapshots/logs/sync-metrics_ruby27.log +++ b/integration_tests/snapshots/logs/sync-metrics_ruby27.log @@ -2,13 +2,13 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux-gnu","version":"1.11.0","lang":"ruby","lang_version":"2.7.7","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-2.7.7","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} Processed APIGateway request Processed SNS request Processed SQS request START START START -W, [XXXX] WARN XXXX[ddtrace] Failed to collect environment information: undefined method `client' for # Location: /opt/ruby/gems/2.7.0/gems/ddtrace-1.5.0/lib/datadog/core/diagnostics/environment_logger.rb:113:in `agent_url' {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} diff --git a/integration_tests/snapshots/logs/sync-metrics_ruby32.log b/integration_tests/snapshots/logs/sync-metrics_ruby32.log new file mode 100644 index 0000000..1c514bb --- /dev/null +++ b/integration_tests/snapshots/logs/sync-metrics_ruby32.log @@ -0,0 +1,23 @@ + +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +Processed APIGateway request +Processed SNS request +Processed SQS request +START +START +START +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:APIGateway"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SNS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SNS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-sync-metrics_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-sync-metrics_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-sync-metrics_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/async-metrics_ruby32_api-gateway-get.json new file mode 100644 index 0000000..6f453e9 --- /dev/null +++ b/integration_tests/snapshots/return_values/async-metrics_ruby32_api-gateway-get.json @@ -0,0 +1,5 @@ +{ + "message": "hello, dog!", + "eventType": "APIGateway", + "requestId": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9" +} diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby32_sns.json b/integration_tests/snapshots/return_values/async-metrics_ruby32_sns.json new file mode 100644 index 0000000..50064b8 --- /dev/null +++ b/integration_tests/snapshots/return_values/async-metrics_ruby32_sns.json @@ -0,0 +1,7 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ], + "eventType": "SNS" +} diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby32_sqs.json b/integration_tests/snapshots/return_values/async-metrics_ruby32_sqs.json new file mode 100644 index 0000000..c1ccfcb --- /dev/null +++ b/integration_tests/snapshots/return_values/async-metrics_ruby32_sqs.json @@ -0,0 +1,8 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ], + "eventType": "SQS" +} diff --git a/integration_tests/snapshots/return_values/http-error_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/http-error_ruby32_api-gateway-get.json new file mode 100644 index 0000000..eb1e9d3 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-error_ruby32_api-gateway-get.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/http-error_ruby32_sns.json b/integration_tests/snapshots/return_values/http-error_ruby32_sns.json new file mode 100644 index 0000000..eb1e9d3 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-error_ruby32_sns.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/http-error_ruby32_sqs.json b/integration_tests/snapshots/return_values/http-error_ruby32_sqs.json new file mode 100644 index 0000000..eb1e9d3 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-error_ruby32_sqs.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/http-requests_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/http-requests_ruby32_api-gateway-get.json new file mode 100644 index 0000000..eb1e9d3 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-requests_ruby32_api-gateway-get.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/http-requests_ruby32_sns.json b/integration_tests/snapshots/return_values/http-requests_ruby32_sns.json new file mode 100644 index 0000000..eb1e9d3 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-requests_ruby32_sns.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/http-requests_ruby32_sqs.json b/integration_tests/snapshots/return_values/http-requests_ruby32_sqs.json new file mode 100644 index 0000000..eb1e9d3 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-requests_ruby32_sqs.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/process-input-traced_ruby32_api-gateway-get.json new file mode 100644 index 0000000..12d7e1a --- /dev/null +++ b/integration_tests/snapshots/return_values/process-input-traced_ruby32_api-gateway-get.json @@ -0,0 +1,5 @@ +{ + "message": "hello, dog!", + "recordIds": [], + "eventType": "APIGateway" +} diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby32_sns.json b/integration_tests/snapshots/return_values/process-input-traced_ruby32_sns.json new file mode 100644 index 0000000..50064b8 --- /dev/null +++ b/integration_tests/snapshots/return_values/process-input-traced_ruby32_sns.json @@ -0,0 +1,7 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ], + "eventType": "SNS" +} diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby32_sqs.json b/integration_tests/snapshots/return_values/process-input-traced_ruby32_sqs.json new file mode 100644 index 0000000..c1ccfcb --- /dev/null +++ b/integration_tests/snapshots/return_values/process-input-traced_ruby32_sqs.json @@ -0,0 +1,8 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ], + "eventType": "SQS" +} diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/sync-metrics_ruby32_api-gateway-get.json new file mode 100644 index 0000000..6f453e9 --- /dev/null +++ b/integration_tests/snapshots/return_values/sync-metrics_ruby32_api-gateway-get.json @@ -0,0 +1,5 @@ +{ + "message": "hello, dog!", + "eventType": "APIGateway", + "requestId": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9" +} diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby32_sns.json b/integration_tests/snapshots/return_values/sync-metrics_ruby32_sns.json new file mode 100644 index 0000000..50064b8 --- /dev/null +++ b/integration_tests/snapshots/return_values/sync-metrics_ruby32_sns.json @@ -0,0 +1,7 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ], + "eventType": "SNS" +} diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby32_sqs.json b/integration_tests/snapshots/return_values/sync-metrics_ruby32_sqs.json new file mode 100644 index 0000000..c1ccfcb --- /dev/null +++ b/integration_tests/snapshots/return_values/sync-metrics_ruby32_sqs.json @@ -0,0 +1,8 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ], + "eventType": "SQS" +} From 133fdddae447c7671127214784adc6b2345ed974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 18:56:24 -0400 Subject: [PATCH 14/26] update base image and `Dockerfile` --- Dockerfile | 2 ++ scripts/build_layers.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 1e14f28..c8d449b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,8 @@ ARG runtime # Install dev dependencies COPY . /var/task/datadog-lambda-ruby WORKDIR /var/task/datadog-lambda-ruby +RUN apt-get update +RUN apt-get install -y gcc zip binutils RUN gem build datadog-lambda RUN gem install datadog-lambda --install-dir "/opt/ruby/gems/${runtime}" # v0.48 has a bug : https://github.com/DataDog/dd-trace-rb/issues/1475 diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 5923776..f18b752 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -38,7 +38,7 @@ function docker_build_zip { # between different ruby runtimes. temp_dir=$(mktemp -d) docker buildx build -t datadog-lambda-ruby-${arch}:$1 . --no-cache \ - --build-arg "image=ruby:${1}" \ + --build-arg "image=public.ecr.aws/lambda/ruby:${1}" \ --build-arg "runtime=${1}.0" \ --platform linux/${arch} \ --load From 2d3e54c416b27efb3af093c2f3c34e61e799a7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 19:02:01 -0400 Subject: [PATCH 15/26] update `Dockerfile` --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c8d449b..07ca8f4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,7 @@ ARG runtime # Install dev dependencies COPY . /var/task/datadog-lambda-ruby WORKDIR /var/task/datadog-lambda-ruby -RUN apt-get update -RUN apt-get install -y gcc zip binutils +RUN yum install -y gcc zip binutils RUN gem build datadog-lambda RUN gem install datadog-lambda --install-dir "/opt/ruby/gems/${runtime}" # v0.48 has a bug : https://github.com/DataDog/dd-trace-rb/issues/1475 From 1bab09dcf243c45964ea34052a7f535055372101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Thu, 27 Apr 2023 19:05:34 -0400 Subject: [PATCH 16/26] revert changes to base image and `Dockerfile` --- Dockerfile | 3 ++- scripts/build_layers.sh | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 07ca8f4..c8d449b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,8 @@ ARG runtime # Install dev dependencies COPY . /var/task/datadog-lambda-ruby WORKDIR /var/task/datadog-lambda-ruby -RUN yum install -y gcc zip binutils +RUN apt-get update +RUN apt-get install -y gcc zip binutils RUN gem build datadog-lambda RUN gem install datadog-lambda --install-dir "/opt/ruby/gems/${runtime}" # v0.48 has a bug : https://github.com/DataDog/dd-trace-rb/issues/1475 diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index f18b752..5923776 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -38,7 +38,7 @@ function docker_build_zip { # between different ruby runtimes. temp_dir=$(mktemp -d) docker buildx build -t datadog-lambda-ruby-${arch}:$1 . --no-cache \ - --build-arg "image=public.ecr.aws/lambda/ruby:${1}" \ + --build-arg "image=ruby:${1}" \ --build-arg "runtime=${1}.0" \ --platform linux/${arch} \ --load From d279a61028c4c74885a58d9ccb17a2e1694ba068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Fri, 28 Apr 2023 15:32:02 -0400 Subject: [PATCH 17/26] add another step to install crossbuild deps in gh actions --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2fa8060..fe3cd4f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -77,6 +77,10 @@ jobs: working-directory: integration_tests run: yarn install + - name: Install Crossbuild dependencies + run: | + sudo apt install -y qemu-user-static binfmt-support + - name: Run tests env: BUILD_LAYERS: true From 5cfcacdd2bb81cc7bb0a19e613c32c59a1fbc6a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Fri, 28 Apr 2023 15:33:49 -0400 Subject: [PATCH 18/26] add `--fix-missing` and update --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fe3cd4f..c14bb08 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,6 +79,7 @@ jobs: - name: Install Crossbuild dependencies run: | + sudo apt-get update --allow-releaseinfo-change --fix-missing sudo apt install -y qemu-user-static binfmt-support - name: Run tests From 9a9a07429f8b62be4d908581f99939ca37e0d0bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Fri, 28 Apr 2023 15:59:28 -0400 Subject: [PATCH 19/26] update integration tests to use the same return values for every runtime --- ...ateway-get.json => async-metrics_api-gateway-get.json} | 0 ...ync-metrics_ruby27_sns.json => async-metrics_sns.json} | 0 ...ync-metrics_ruby27_sqs.json => async-metrics_sqs.json} | 0 ...i-gateway-get.json => http-error_api-gateway-get.json} | 0 .../{http-error_ruby27_sns.json => http-error_sns.json} | 0 .../{http-error_ruby27_sqs.json => http-error_sqs.json} | 0 ...ateway-get.json => http-requests_api-gateway-get.json} | 0 .../http-requests_ruby27_api-gateway-get.json | 3 --- .../snapshots/return_values/http-requests_ruby27_sns.json | 3 --- .../snapshots/return_values/http-requests_ruby27_sqs.json | 3 --- .../http-requests_ruby32_api-gateway-get.json | 3 --- .../snapshots/return_values/http-requests_ruby32_sns.json | 3 --- .../snapshots/return_values/http-requests_ruby32_sqs.json | 3 --- ...{http-error_ruby32_sns.json => http-requests_sns.json} | 0 ...{http-error_ruby32_sqs.json => http-requests_sqs.json} | 0 ...get.json => process-input-traced_api-gateway-get.json} | 0 .../process-input-traced_ruby32_api-gateway-get.json | 5 ----- .../return_values/process-input-traced_ruby32_sns.json | 7 ------- .../return_values/process-input-traced_ruby32_sqs.json | 8 -------- ...rics_ruby32_sns.json => process-input-traced_sns.json} | 0 ...rics_ruby32_sqs.json => process-input-traced_sqs.json} | 0 ...gateway-get.json => sync-metrics_api-gateway-get.json} | 0 .../sync-metrics_ruby27_api-gateway-get.json | 5 ----- .../snapshots/return_values/sync-metrics_ruby27_sns.json | 7 ------- .../snapshots/return_values/sync-metrics_ruby27_sqs.json | 8 -------- .../sync-metrics_ruby32_api-gateway-get.json | 5 ----- .../snapshots/return_values/sync-metrics_ruby32_sns.json | 7 ------- .../snapshots/return_values/sync-metrics_ruby32_sqs.json | 8 -------- ...input-traced_ruby27_sns.json => sync-metrics_sns.json} | 0 ...input-traced_ruby27_sqs.json => sync-metrics_sqs.json} | 0 scripts/run_integration_tests.sh | 2 +- 31 files changed, 1 insertion(+), 79 deletions(-) rename integration_tests/snapshots/return_values/{async-metrics_ruby27_api-gateway-get.json => async-metrics_api-gateway-get.json} (100%) rename integration_tests/snapshots/return_values/{async-metrics_ruby27_sns.json => async-metrics_sns.json} (100%) rename integration_tests/snapshots/return_values/{async-metrics_ruby27_sqs.json => async-metrics_sqs.json} (100%) rename integration_tests/snapshots/return_values/{http-error_ruby27_api-gateway-get.json => http-error_api-gateway-get.json} (100%) rename integration_tests/snapshots/return_values/{http-error_ruby27_sns.json => http-error_sns.json} (100%) rename integration_tests/snapshots/return_values/{http-error_ruby27_sqs.json => http-error_sqs.json} (100%) rename integration_tests/snapshots/return_values/{http-error_ruby32_api-gateway-get.json => http-requests_api-gateway-get.json} (100%) delete mode 100644 integration_tests/snapshots/return_values/http-requests_ruby27_api-gateway-get.json delete mode 100644 integration_tests/snapshots/return_values/http-requests_ruby27_sns.json delete mode 100644 integration_tests/snapshots/return_values/http-requests_ruby27_sqs.json delete mode 100644 integration_tests/snapshots/return_values/http-requests_ruby32_api-gateway-get.json delete mode 100644 integration_tests/snapshots/return_values/http-requests_ruby32_sns.json delete mode 100644 integration_tests/snapshots/return_values/http-requests_ruby32_sqs.json rename integration_tests/snapshots/return_values/{http-error_ruby32_sns.json => http-requests_sns.json} (100%) rename integration_tests/snapshots/return_values/{http-error_ruby32_sqs.json => http-requests_sqs.json} (100%) rename integration_tests/snapshots/return_values/{process-input-traced_ruby27_api-gateway-get.json => process-input-traced_api-gateway-get.json} (100%) delete mode 100644 integration_tests/snapshots/return_values/process-input-traced_ruby32_api-gateway-get.json delete mode 100644 integration_tests/snapshots/return_values/process-input-traced_ruby32_sns.json delete mode 100644 integration_tests/snapshots/return_values/process-input-traced_ruby32_sqs.json rename integration_tests/snapshots/return_values/{async-metrics_ruby32_sns.json => process-input-traced_sns.json} (100%) rename integration_tests/snapshots/return_values/{async-metrics_ruby32_sqs.json => process-input-traced_sqs.json} (100%) rename integration_tests/snapshots/return_values/{async-metrics_ruby32_api-gateway-get.json => sync-metrics_api-gateway-get.json} (100%) delete mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby27_api-gateway-get.json delete mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby27_sns.json delete mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby27_sqs.json delete mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby32_api-gateway-get.json delete mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby32_sns.json delete mode 100644 integration_tests/snapshots/return_values/sync-metrics_ruby32_sqs.json rename integration_tests/snapshots/return_values/{process-input-traced_ruby27_sns.json => sync-metrics_sns.json} (100%) rename integration_tests/snapshots/return_values/{process-input-traced_ruby27_sqs.json => sync-metrics_sqs.json} (100%) diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby27_api-gateway-get.json b/integration_tests/snapshots/return_values/async-metrics_api-gateway-get.json similarity index 100% rename from integration_tests/snapshots/return_values/async-metrics_ruby27_api-gateway-get.json rename to integration_tests/snapshots/return_values/async-metrics_api-gateway-get.json diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby27_sns.json b/integration_tests/snapshots/return_values/async-metrics_sns.json similarity index 100% rename from integration_tests/snapshots/return_values/async-metrics_ruby27_sns.json rename to integration_tests/snapshots/return_values/async-metrics_sns.json diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby27_sqs.json b/integration_tests/snapshots/return_values/async-metrics_sqs.json similarity index 100% rename from integration_tests/snapshots/return_values/async-metrics_ruby27_sqs.json rename to integration_tests/snapshots/return_values/async-metrics_sqs.json diff --git a/integration_tests/snapshots/return_values/http-error_ruby27_api-gateway-get.json b/integration_tests/snapshots/return_values/http-error_api-gateway-get.json similarity index 100% rename from integration_tests/snapshots/return_values/http-error_ruby27_api-gateway-get.json rename to integration_tests/snapshots/return_values/http-error_api-gateway-get.json diff --git a/integration_tests/snapshots/return_values/http-error_ruby27_sns.json b/integration_tests/snapshots/return_values/http-error_sns.json similarity index 100% rename from integration_tests/snapshots/return_values/http-error_ruby27_sns.json rename to integration_tests/snapshots/return_values/http-error_sns.json diff --git a/integration_tests/snapshots/return_values/http-error_ruby27_sqs.json b/integration_tests/snapshots/return_values/http-error_sqs.json similarity index 100% rename from integration_tests/snapshots/return_values/http-error_ruby27_sqs.json rename to integration_tests/snapshots/return_values/http-error_sqs.json diff --git a/integration_tests/snapshots/return_values/http-error_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/http-requests_api-gateway-get.json similarity index 100% rename from integration_tests/snapshots/return_values/http-error_ruby32_api-gateway-get.json rename to integration_tests/snapshots/return_values/http-requests_api-gateway-get.json diff --git a/integration_tests/snapshots/return_values/http-requests_ruby27_api-gateway-get.json b/integration_tests/snapshots/return_values/http-requests_ruby27_api-gateway-get.json deleted file mode 100644 index eb1e9d3..0000000 --- a/integration_tests/snapshots/return_values/http-requests_ruby27_api-gateway-get.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "hello, dog!" -} diff --git a/integration_tests/snapshots/return_values/http-requests_ruby27_sns.json b/integration_tests/snapshots/return_values/http-requests_ruby27_sns.json deleted file mode 100644 index eb1e9d3..0000000 --- a/integration_tests/snapshots/return_values/http-requests_ruby27_sns.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "hello, dog!" -} diff --git a/integration_tests/snapshots/return_values/http-requests_ruby27_sqs.json b/integration_tests/snapshots/return_values/http-requests_ruby27_sqs.json deleted file mode 100644 index eb1e9d3..0000000 --- a/integration_tests/snapshots/return_values/http-requests_ruby27_sqs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "hello, dog!" -} diff --git a/integration_tests/snapshots/return_values/http-requests_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/http-requests_ruby32_api-gateway-get.json deleted file mode 100644 index eb1e9d3..0000000 --- a/integration_tests/snapshots/return_values/http-requests_ruby32_api-gateway-get.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "hello, dog!" -} diff --git a/integration_tests/snapshots/return_values/http-requests_ruby32_sns.json b/integration_tests/snapshots/return_values/http-requests_ruby32_sns.json deleted file mode 100644 index eb1e9d3..0000000 --- a/integration_tests/snapshots/return_values/http-requests_ruby32_sns.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "hello, dog!" -} diff --git a/integration_tests/snapshots/return_values/http-requests_ruby32_sqs.json b/integration_tests/snapshots/return_values/http-requests_ruby32_sqs.json deleted file mode 100644 index eb1e9d3..0000000 --- a/integration_tests/snapshots/return_values/http-requests_ruby32_sqs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "hello, dog!" -} diff --git a/integration_tests/snapshots/return_values/http-error_ruby32_sns.json b/integration_tests/snapshots/return_values/http-requests_sns.json similarity index 100% rename from integration_tests/snapshots/return_values/http-error_ruby32_sns.json rename to integration_tests/snapshots/return_values/http-requests_sns.json diff --git a/integration_tests/snapshots/return_values/http-error_ruby32_sqs.json b/integration_tests/snapshots/return_values/http-requests_sqs.json similarity index 100% rename from integration_tests/snapshots/return_values/http-error_ruby32_sqs.json rename to integration_tests/snapshots/return_values/http-requests_sqs.json diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby27_api-gateway-get.json b/integration_tests/snapshots/return_values/process-input-traced_api-gateway-get.json similarity index 100% rename from integration_tests/snapshots/return_values/process-input-traced_ruby27_api-gateway-get.json rename to integration_tests/snapshots/return_values/process-input-traced_api-gateway-get.json diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/process-input-traced_ruby32_api-gateway-get.json deleted file mode 100644 index 12d7e1a..0000000 --- a/integration_tests/snapshots/return_values/process-input-traced_ruby32_api-gateway-get.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "message": "hello, dog!", - "recordIds": [], - "eventType": "APIGateway" -} diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby32_sns.json b/integration_tests/snapshots/return_values/process-input-traced_ruby32_sns.json deleted file mode 100644 index 50064b8..0000000 --- a/integration_tests/snapshots/return_values/process-input-traced_ruby32_sns.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "message": "hello, dog!", - "recordIds": [ - "95df01b4-ee98-5cb9-9903-4c221d41eb5e" - ], - "eventType": "SNS" -} diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby32_sqs.json b/integration_tests/snapshots/return_values/process-input-traced_ruby32_sqs.json deleted file mode 100644 index c1ccfcb..0000000 --- a/integration_tests/snapshots/return_values/process-input-traced_ruby32_sqs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "message": "hello, dog!", - "recordIds": [ - "059f36b4-87a3-44ab-83d2-661975830a7d", - "2e1424d4-f796-459a-8184-9c92662be6da" - ], - "eventType": "SQS" -} diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby32_sns.json b/integration_tests/snapshots/return_values/process-input-traced_sns.json similarity index 100% rename from integration_tests/snapshots/return_values/async-metrics_ruby32_sns.json rename to integration_tests/snapshots/return_values/process-input-traced_sns.json diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby32_sqs.json b/integration_tests/snapshots/return_values/process-input-traced_sqs.json similarity index 100% rename from integration_tests/snapshots/return_values/async-metrics_ruby32_sqs.json rename to integration_tests/snapshots/return_values/process-input-traced_sqs.json diff --git a/integration_tests/snapshots/return_values/async-metrics_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/sync-metrics_api-gateway-get.json similarity index 100% rename from integration_tests/snapshots/return_values/async-metrics_ruby32_api-gateway-get.json rename to integration_tests/snapshots/return_values/sync-metrics_api-gateway-get.json diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby27_api-gateway-get.json b/integration_tests/snapshots/return_values/sync-metrics_ruby27_api-gateway-get.json deleted file mode 100644 index 6f453e9..0000000 --- a/integration_tests/snapshots/return_values/sync-metrics_ruby27_api-gateway-get.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "message": "hello, dog!", - "eventType": "APIGateway", - "requestId": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9" -} diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby27_sns.json b/integration_tests/snapshots/return_values/sync-metrics_ruby27_sns.json deleted file mode 100644 index 50064b8..0000000 --- a/integration_tests/snapshots/return_values/sync-metrics_ruby27_sns.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "message": "hello, dog!", - "recordIds": [ - "95df01b4-ee98-5cb9-9903-4c221d41eb5e" - ], - "eventType": "SNS" -} diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby27_sqs.json b/integration_tests/snapshots/return_values/sync-metrics_ruby27_sqs.json deleted file mode 100644 index c1ccfcb..0000000 --- a/integration_tests/snapshots/return_values/sync-metrics_ruby27_sqs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "message": "hello, dog!", - "recordIds": [ - "059f36b4-87a3-44ab-83d2-661975830a7d", - "2e1424d4-f796-459a-8184-9c92662be6da" - ], - "eventType": "SQS" -} diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby32_api-gateway-get.json b/integration_tests/snapshots/return_values/sync-metrics_ruby32_api-gateway-get.json deleted file mode 100644 index 6f453e9..0000000 --- a/integration_tests/snapshots/return_values/sync-metrics_ruby32_api-gateway-get.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "message": "hello, dog!", - "eventType": "APIGateway", - "requestId": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9" -} diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby32_sns.json b/integration_tests/snapshots/return_values/sync-metrics_ruby32_sns.json deleted file mode 100644 index 50064b8..0000000 --- a/integration_tests/snapshots/return_values/sync-metrics_ruby32_sns.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "message": "hello, dog!", - "recordIds": [ - "95df01b4-ee98-5cb9-9903-4c221d41eb5e" - ], - "eventType": "SNS" -} diff --git a/integration_tests/snapshots/return_values/sync-metrics_ruby32_sqs.json b/integration_tests/snapshots/return_values/sync-metrics_ruby32_sqs.json deleted file mode 100644 index c1ccfcb..0000000 --- a/integration_tests/snapshots/return_values/sync-metrics_ruby32_sqs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "message": "hello, dog!", - "recordIds": [ - "059f36b4-87a3-44ab-83d2-661975830a7d", - "2e1424d4-f796-459a-8184-9c92662be6da" - ], - "eventType": "SQS" -} diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby27_sns.json b/integration_tests/snapshots/return_values/sync-metrics_sns.json similarity index 100% rename from integration_tests/snapshots/return_values/process-input-traced_ruby27_sns.json rename to integration_tests/snapshots/return_values/sync-metrics_sns.json diff --git a/integration_tests/snapshots/return_values/process-input-traced_ruby27_sqs.json b/integration_tests/snapshots/return_values/sync-metrics_sqs.json similarity index 100% rename from integration_tests/snapshots/return_values/process-input-traced_ruby27_sqs.json rename to integration_tests/snapshots/return_values/sync-metrics_sqs.json diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index 938a75e..c84b57f 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -105,7 +105,7 @@ ruby version : ${!ruby_version} and run id : ${!run_id}" for input_event_file in "${input_event_files[@]}"; do # Get event name without trailing ".json" so we can build the snapshot file name input_event_name=$(echo "$input_event_file" | sed "s/.json//") - snapshot_path="./snapshots/return_values/${handler_name}_${parameters_set}_${input_event_name}.json" + snapshot_path="./snapshots/return_values/${handler_name}_${input_event_name}.json" return_value=$(RUBY_VERSION=${!ruby_version} RUNTIME=$parameters_set SERVERLESS_RUNTIME=${!serverless_runtime} \ serverless invoke --stage ${!run_id} -f "$function_name" --path "./input_events/$input_event_file") From e5d98f0974c2e7f45185324a3981014476ccad6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Fri, 28 Apr 2023 16:02:11 -0400 Subject: [PATCH 20/26] add crossbuild deps step for check-size --- .github/workflows/check-size.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/check-size.yml b/.github/workflows/check-size.yml index c729f71..c4b878d 100644 --- a/.github/workflows/check-size.yml +++ b/.github/workflows/check-size.yml @@ -25,6 +25,11 @@ jobs: if: steps.cache-node-modules.outputs.cache-hit != 'true' run: yarn install + - name: Install Crossbuild dependencies + run: | + sudo apt-get update --allow-releaseinfo-change --fix-missing + sudo apt install -y qemu-user-static binfmt-support + - name: Build Layers run: ./scripts/build_layers.sh From b3c5ede67011b0e31a5b4b21ea7aeb441dfb9a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Fri, 28 Apr 2023 16:21:03 -0400 Subject: [PATCH 21/26] specify layer arch to check size --- scripts/check_layer_size.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check_layer_size.sh b/scripts/check_layer_size.sh index 361f7dc..1c006da 100755 --- a/scripts/check_layer_size.sh +++ b/scripts/check_layer_size.sh @@ -20,7 +20,7 @@ VERSIONS=("2.7" "3.2") for version in "${VERSIONS[@]}" do - FILE=$LAYER_DIR/${LAYER_FILES_PREFIX}${version}.zip + FILE=$LAYER_DIR/${LAYER_FILES_PREFIX}-amd64-${version}.zip FILE_SIZE=$(stat --printf="%s" $FILE) FILE_SIZE_KB="$(( ${FILE_SIZE%% *} / 1024))" echo "Layer file ${FILE} has zipped size ${FILE_SIZE_KB} kb" From 6f6ddced9b66aef0936099c9de72307c839d0d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Mon, 1 May 2023 23:51:05 -0400 Subject: [PATCH 22/26] allow Datadog Lambda Extension use this will check if an extension is running, if it is, it will send logs, traces, and metrics through it. This doesnt introduce a regression for customers using the forwarder --- lib/datadog/lambda.rb | 9 +++++--- lib/datadog/lambda/utils/extension.rb | 32 +++++++++++++++++++++++++++ lib/datadog/lambda/version.rb | 2 +- scripts/publish_layers.sh | 2 +- 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 lib/datadog/lambda/utils/extension.rb diff --git a/lib/datadog/lambda.rb b/lib/datadog/lambda.rb index 42f0949..572be42 100644 --- a/lib/datadog/lambda.rb +++ b/lib/datadog/lambda.rb @@ -11,6 +11,7 @@ require 'datadog/lambda/trace/listener' require 'datadog/lambda/utils/logger' +require 'datadog/lambda/utils/extension' require 'datadog/lambda/trace/patch_http' require 'json' require 'time' @@ -35,9 +36,11 @@ def self.configure_apm $stdout.sync = true Datadog.configure do |c| - c.tracing.writer = Datadog::Tracing::SyncWriter.new( - transport: Datadog::Transport::IO.default - ) + unless Datadog::Utils.extension_running + c.tracing.writer = Datadog::Tracing::SyncWriter.new( + transport: Datadog::Transport::IO.default + ) + end c.tags = { "_dd.origin": 'lambda' } yield(c) if block_given? end diff --git a/lib/datadog/lambda/utils/extension.rb b/lib/datadog/lambda/utils/extension.rb new file mode 100644 index 0000000..88e246d --- /dev/null +++ b/lib/datadog/lambda/utils/extension.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +# +# 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 2023 Datadog, Inc. +# +require 'net/http' + +module Datadog + # Utils contains utility functions shared between modules + module Utils + AGENT_URL = 'http://127.0.0.1:8124' + HELLO_PATH = '/lambda/hello' + EXTENSION_PATH = '/opt/extensions/datadog-agent' + + def self.extension_running + return false unless File.exist?(EXTENSION_PATH) + + begin + Net::HTTP.get(URI(AGENT_URL + HELLO_PATH)) + rescue StandardError => e + Datadog::Utils.logger.debug "extension is not running, returned with error #{e}" + return false + end + + true + end + end +end diff --git a/lib/datadog/lambda/version.rb b/lib/datadog/lambda/version.rb index 097ff48..999d1cc 100644 --- a/lib/datadog/lambda/version.rb +++ b/lib/datadog/lambda/version.rb @@ -12,7 +12,7 @@ module Datadog module Lambda module VERSION MAJOR = 2 - MINOR = 16 + MINOR = 17 PATCH = 0 PRE = nil diff --git a/scripts/publish_layers.sh b/scripts/publish_layers.sh index d9c23f0..aaa1ec8 100755 --- a/scripts/publish_layers.sh +++ b/scripts/publish_layers.sh @@ -10,7 +10,7 @@ # VERSION is required. set -e -RUBY_VERSIONS_FOR_AWS_CLI=("ruby2.7" "ruby3.2") +RUBY_VERSIONS_FOR_AWS_CLI=("ruby2.7" "ruby2.7" "ruby3.2" "ruby3.2") LAYER_PATHS=(".layers/datadog-lambda_ruby-amd64-2.7.zip" ".layers/datadog-lambda_ruby-arm64-2.7.zip" ".layers/datadog-lambda_ruby-amd64-3.2.zip" ".layers/datadog-lambda_ruby-arm64-3.2.zip") AVAILABLE_LAYERS=("Datadog-Ruby2-7" "Datadog-Ruby2-7-ARM" "Datadog-Ruby3-2" "Datadog-Ruby3-2-ARM") AVAILABLE_REGIONS=$(aws ec2 describe-regions | jq -r '.[] | .[] | .RegionName') From 4a9dc36df988baf1dd1f2418c1e18e63b8ebaff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Tue, 2 May 2023 15:23:38 -0400 Subject: [PATCH 23/26] update Dockerfile to strip aws sdk and binaries for old ruby versions also updated snapshots --- Dockerfile | 16 +++++++++++++--- .../snapshots/logs/async-metrics_ruby27.log | 6 +++--- .../snapshots/logs/async-metrics_ruby32.log | 6 +++--- .../snapshots/logs/http-error_ruby27.log | 6 +++--- .../snapshots/logs/http-error_ruby32.log | 6 +++--- .../snapshots/logs/http-requests_ruby27.log | 6 +++--- .../snapshots/logs/http-requests_ruby32.log | 6 +++--- .../logs/process-input-traced_ruby27.log | 6 +++--- .../logs/process-input-traced_ruby32.log | 6 +++--- .../snapshots/logs/sync-metrics_ruby27.log | 6 +++--- .../snapshots/logs/sync-metrics_ruby32.log | 6 +++--- 11 files changed, 43 insertions(+), 33 deletions(-) diff --git a/Dockerfile b/Dockerfile index c8d449b..6b32a46 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,10 +6,20 @@ COPY . /var/task/datadog-lambda-ruby WORKDIR /var/task/datadog-lambda-ruby RUN apt-get update RUN apt-get install -y gcc zip binutils + +# Install this gem RUN gem build datadog-lambda -RUN gem install datadog-lambda --install-dir "/opt/ruby/gems/${runtime}" -# v0.48 has a bug : https://github.com/DataDog/dd-trace-rb/issues/1475 -RUN gem install ddtrace -v 1.11.0 --install-dir "/opt/ruby/gems/${runtime}" + +# Install ddtrace gem +RUN gem install datadog-lambda --install-dir "/opt/ruby/gems/$runtime" +RUN gem install ddtrace -v 1.11.0 --install-dir "/opt/ruby/gems/$runtime" + +WORKDIR /opt +# Remove native extension debase-ruby_core_source (25MB) runtimes below Ruby 2.6 +RUN rm -rf ./ruby/gems/$runtime/gems/debase-ruby_core_source*/ +# Remove aws-sdk related (2MB), included in runtime +RUN rm -rf ./ruby/gems/$runtime/gems/aws*/ + # Cache files zipped gem files, that aren't used by during runtime, only during # installation, so they are safe to delete RUN rm -rf "/opt/ruby/gems/${runtime}/cache" diff --git a/integration_tests/snapshots/logs/async-metrics_ruby27.log b/integration_tests/snapshots/logs/async-metrics_ruby27.log index 3d46665..6841d1c 100644 --- a/integration_tests/snapshots/logs/async-metrics_ruby27.log +++ b/integration_tests/snapshots/logs/async-metrics_ruby27.log @@ -9,9 +9,9 @@ Processed SQS request START START START -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-async-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-async-metrics_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","tagkey:tagvalue","eventsource:APIGateway"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","tagkey:tagvalue","eventsource:SNS"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","tagkey:tagvalue","eventsource:SQS"],"v":1} diff --git a/integration_tests/snapshots/logs/async-metrics_ruby32.log b/integration_tests/snapshots/logs/async-metrics_ruby32.log index caad2e2..ee5ead9 100644 --- a/integration_tests/snapshots/logs/async-metrics_ruby32.log +++ b/integration_tests/snapshots/logs/async-metrics_ruby32.log @@ -9,9 +9,9 @@ Processed SQS request START START START -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-async-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-async-metrics_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:APIGateway"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SNS"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SQS"],"v":1} diff --git a/integration_tests/snapshots/logs/http-error_ruby27.log b/integration_tests/snapshots/logs/http-error_ruby27.log index 8e604d4..ea696a1 100644 --- a/integration_tests/snapshots/logs/http-error_ruby27.log +++ b/integration_tests/snapshots/logs/http-error_ruby27.log @@ -9,9 +9,9 @@ START Snapshot test http requests successfully made to URLs: https://httpstat.us/400 Snapshot test http requests successfully made to URLs: https://httpstat.us/400 Snapshot test http requests successfully made to URLs: https://httpstat.us/400 -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-error_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-error_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} diff --git a/integration_tests/snapshots/logs/http-error_ruby32.log b/integration_tests/snapshots/logs/http-error_ruby32.log index 931f3d9..dbd0c2b 100644 --- a/integration_tests/snapshots/logs/http-error_ruby32.log +++ b/integration_tests/snapshots/logs/http-error_ruby32.log @@ -9,9 +9,9 @@ START Snapshot test http requests successfully made to URLs: https://httpstat.us/400 Snapshot test http requests successfully made to URLs: https://httpstat.us/400 Snapshot test http requests successfully made to URLs: https://httpstat.us/400 -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-error_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-error_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} diff --git a/integration_tests/snapshots/logs/http-requests_ruby27.log b/integration_tests/snapshots/logs/http-requests_ruby27.log index 115dce2..cba31d5 100644 --- a/integration_tests/snapshots/logs/http-requests_ruby27.log +++ b/integration_tests/snapshots/logs/http-requests_ruby27.log @@ -9,9 +9,9 @@ START Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-http-requests_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-http-requests_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} diff --git a/integration_tests/snapshots/logs/http-requests_ruby32.log b/integration_tests/snapshots/logs/http-requests_ruby32.log index ae3ce33..d6140ad 100644 --- a/integration_tests/snapshots/logs/http-requests_ruby32.log +++ b/integration_tests/snapshots/logs/http-requests_ruby32.log @@ -9,9 +9,9 @@ START Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] Snapshot test http requests successfully made to URLs: ["ip-ranges.datadoghq.com", "ip-ranges.datadoghq.eu"] -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-http-requests_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-http-requests_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} diff --git a/integration_tests/snapshots/logs/process-input-traced_ruby27.log b/integration_tests/snapshots/logs/process-input-traced_ruby27.log index bd75cac..37cb27d 100644 --- a/integration_tests/snapshots/logs/process-input-traced_ruby27.log +++ b/integration_tests/snapshots/logs/process-input-traced_ruby27.log @@ -6,9 +6,9 @@ I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":" START START START -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-process-input-traced_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","function:http-request"],"v":1} diff --git a/integration_tests/snapshots/logs/process-input-traced_ruby32.log b/integration_tests/snapshots/logs/process-input-traced_ruby32.log index 458b7d0..5118792 100644 --- a/integration_tests/snapshots/logs/process-input-traced_ruby32.log +++ b/integration_tests/snapshots/logs/process-input-traced_ruby32.log @@ -6,9 +6,9 @@ I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":" START START START -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-process-input-traced_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} diff --git a/integration_tests/snapshots/logs/sync-metrics_ruby27.log b/integration_tests/snapshots/logs/sync-metrics_ruby27.log index 991f965..b73e565 100644 --- a/integration_tests/snapshots/logs/sync-metrics_ruby27.log +++ b/integration_tests/snapshots/logs/sync-metrics_ruby27.log @@ -9,9 +9,9 @@ Processed SQS request START START START -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby27","functionname:integration-tests-rb-XXXX-sync-metrics_ruby27","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 2.7.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby27","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","tagkey:tagvalue","eventsource:APIGateway"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","tagkey:tagvalue","eventsource:SNS"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby27","tagkey:tagvalue","eventsource:SQS"],"v":1} diff --git a/integration_tests/snapshots/logs/sync-metrics_ruby32.log b/integration_tests/snapshots/logs/sync-metrics_ruby32.log index 1c514bb..be5550c 100644 --- a/integration_tests/snapshots/logs/sync-metrics_ruby32.log +++ b/integration_tests/snapshots/logs/sync-metrics_ruby32.log @@ -9,9 +9,9 @@ Processed SQS request START START START -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} -{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.16.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby32","functionname:integration-tests-rb-XXXX-sync-metrics_ruby32","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.2.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby32","datadog_lambda:2.17.0","dd_trace:1.XX.X"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:APIGateway"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SNS"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","tagkey:tagvalue","eventsource:SQS"],"v":1} From b43d7fa951e21abcda40489c9b852fa995ea8a75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Tue, 2 May 2023 15:52:43 -0400 Subject: [PATCH 24/26] strip `linux-musl` --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 6b32a46..9f2b988 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,8 @@ WORKDIR /opt RUN rm -rf ./ruby/gems/$runtime/gems/debase-ruby_core_source*/ # Remove aws-sdk related (2MB), included in runtime RUN rm -rf ./ruby/gems/$runtime/gems/aws*/ +# Remove binaries not needed in AWS Lambda +RUN rm -rf ./**/*linux-musl/ # Cache files zipped gem files, that aren't used by during runtime, only during # installation, so they are safe to delete From 95cb508673ee25f161f384e69a263e0a1a04faf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Tue, 9 May 2023 14:15:44 -0400 Subject: [PATCH 25/26] Update lib/datadog/lambda/utils/extension.rb Avoid overhead of creating the URL on every invocation of the `extension_running` check Co-authored-by: Marco Costa --- lib/datadog/lambda/utils/extension.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/datadog/lambda/utils/extension.rb b/lib/datadog/lambda/utils/extension.rb index 88e246d..d3e914a 100644 --- a/lib/datadog/lambda/utils/extension.rb +++ b/lib/datadog/lambda/utils/extension.rb @@ -14,13 +14,14 @@ module Datadog module Utils AGENT_URL = 'http://127.0.0.1:8124' HELLO_PATH = '/lambda/hello' + EXTENSION_CHECK_URI = URI(AGENT_URL + HELLO_PATH).freeze EXTENSION_PATH = '/opt/extensions/datadog-agent' def self.extension_running return false unless File.exist?(EXTENSION_PATH) begin - Net::HTTP.get(URI(AGENT_URL + HELLO_PATH)) + Net::HTTP.get(EXTENSION_CHECK_URI) rescue StandardError => e Datadog::Utils.logger.debug "extension is not running, returned with error #{e}" return false From 4b86b23e61c3454f7588af5afcea52b9e1bca7ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?jordan=20gonz=C3=A1lez?= <30836115+duncanista@users.noreply.github.com> Date: Tue, 9 May 2023 15:53:01 -0400 Subject: [PATCH 26/26] update snapshots --- integration_tests/snapshots/logs/async-metrics_ruby32.log | 2 +- integration_tests/snapshots/logs/http-error_ruby32.log | 2 +- integration_tests/snapshots/logs/http-requests_ruby32.log | 2 +- .../snapshots/logs/process-input-traced_ruby32.log | 8 ++++---- integration_tests/snapshots/logs/sync-metrics_ruby32.log | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/integration_tests/snapshots/logs/async-metrics_ruby32.log b/integration_tests/snapshots/logs/async-metrics_ruby32.log index ee5ead9..e1dd5b7 100644 --- a/integration_tests/snapshots/logs/async-metrics_ruby32.log +++ b/integration_tests/snapshots/logs/async-metrics_ruby32.log @@ -2,7 +2,7 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB -I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.2","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.2","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} Processed APIGateway request Processed SNS request Processed SQS request diff --git a/integration_tests/snapshots/logs/http-error_ruby32.log b/integration_tests/snapshots/logs/http-error_ruby32.log index dbd0c2b..e63de57 100644 --- a/integration_tests/snapshots/logs/http-error_ruby32.log +++ b/integration_tests/snapshots/logs/http-error_ruby32.log @@ -2,7 +2,7 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB -I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.2","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.2","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} START START START diff --git a/integration_tests/snapshots/logs/http-requests_ruby32.log b/integration_tests/snapshots/logs/http-requests_ruby32.log index d6140ad..0aae728 100644 --- a/integration_tests/snapshots/logs/http-requests_ruby32.log +++ b/integration_tests/snapshots/logs/http-requests_ruby32.log @@ -2,7 +2,7 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB -I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.2","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.2","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} START START START diff --git a/integration_tests/snapshots/logs/process-input-traced_ruby32.log b/integration_tests/snapshots/logs/process-input-traced_ruby32.log index 5118792..48a431f 100644 --- a/integration_tests/snapshots/logs/process-input-traced_ruby32.log +++ b/integration_tests/snapshots/logs/process-input-traced_ruby32.log @@ -2,7 +2,7 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB -I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.2","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.2","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} START START START @@ -12,6 +12,6 @@ START {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} {"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby32","function:http-request"],"v":1} -{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"index","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} -{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"index","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} -{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"index","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_api_gateway_request_id","parent_id":"XXXX","resource":"get_api_gateway_request_id","service":"index","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"runtime","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"runtime","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_record_ids","parent_id":"XXXX","resource":"get_record_ids","service":"runtime","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"get_api_gateway_request_id","parent_id":"XXXX","resource":"get_api_gateway_request_id","service":"runtime","span_id":"XXXX","trace_id":"XXXX","type":null,"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"integration-tests-rb-XXXX-process-input-traced_ruby32","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","start":XXXX,"duration":XXXX}]]} diff --git a/integration_tests/snapshots/logs/sync-metrics_ruby32.log b/integration_tests/snapshots/logs/sync-metrics_ruby32.log index be5550c..2aaee94 100644 --- a/integration_tests/snapshots/logs/sync-metrics_ruby32.log +++ b/integration_tests/snapshots/logs/sync-metrics_ruby32.log @@ -2,7 +2,7 @@ END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB -I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.1","enabled":true,"service":"index","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.1","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} +I, [XXXX] INFO XXXX[ddtrace] DATADOG CONFIGURATION - {"date":"XXXX","os_name":"x86_64-pc-linux","version":"1.11.0","lang":"ruby","lang_version":"3.2.2","enabled":true,"service":"runtime","debug":false,"analytics_enabled":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.2.2","partial_flushing_enabled":false,"priority_sampling_enabled":false,"health_metrics_enabled":false,"profiling_enabled":false} Processed APIGateway request Processed SNS request Processed SQS request