diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d5e1358..5826b27 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: strategy: max-parallel: 4 matrix: - ruby-version: [3.2, 3.3] + ruby-version: [3.2, 3.3, 3.4] steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -51,16 +51,16 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - runtime-param: [3.2, 3.3] + runtime-param: [3.2, 3.3, 3.4] steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: Set up Node 16 + - name: Set up Node 20 uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: - node-version: 16 + node-version: 20 - name: Cache Node modules id: cache-node-modules diff --git a/.gitlab/Dockerfile b/.gitlab/Dockerfile index 66144db..83eadb1 100644 --- a/.gitlab/Dockerfile +++ b/.gitlab/Dockerfile @@ -3,7 +3,7 @@ FROM registry.ddbuild.io/images/docker:24.0.5 RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \ curl gcc gnupg g++ make cmake unzip openssl g++ uuid-runtime xxd ca-certificates -# Install Ruby 3.3 +# Install Ruby 3.4 RUN apt-get install ruby-full -y # Install NodeJS 18.x diff --git a/.gitlab/datasources/runtimes.yaml b/.gitlab/datasources/runtimes.yaml index 493675d..ed0ac3a 100644 --- a/.gitlab/datasources/runtimes.yaml +++ b/.gitlab/datasources/runtimes.yaml @@ -15,3 +15,11 @@ runtimes: ruby_version: "3.3" arch: "arm64" image: "3.3.4" + - name: "ruby34" + ruby_version: "3.4" + arch: "amd64" + image: "3.4.3" + - name: "ruby34" + ruby_version: "3.4" + arch: "arm64" + image: "3.4.3" diff --git a/.gitlab/scripts/build_layer.sh b/.gitlab/scripts/build_layer.sh index 969a5d8..36a2d24 100755 --- a/.gitlab/scripts/build_layer.sh +++ b/.gitlab/scripts/build_layer.sh @@ -9,7 +9,7 @@ set -e LAYER_DIR=".layers" LAYER_FILES_PREFIX="datadog-lambda_ruby" -AVAILABLE_RUBY_VERSIONS=("3.2" "3.3") +AVAILABLE_RUBY_VERSIONS=("3.2" "3.3" "3.4") if [ -z "$ARCH" ]; then echo "[ERROR]: ARCH not specified" diff --git a/.gitlab/scripts/publish_layer.sh b/.gitlab/scripts/publish_layer.sh index e9880cb..0465e36 100755 --- a/.gitlab/scripts/publish_layer.sh +++ b/.gitlab/scripts/publish_layer.sh @@ -15,19 +15,25 @@ AWS_CLI_RUBY_VERSIONS=( "ruby3.2" "ruby3.3" "ruby3.3" + "ruby3.4" + "ruby3.4" ) -RUBY_VERSIONS=("3.2-amd64" "3.2-arm64" "3.3-amd64" "3.3-arm64") +RUBY_VERSIONS=("3.2-amd64" "3.2-arm64" "3.3-amd64" "3.3-arm64" "3.4-amd64" "3.4-arm64") LAYER_PATHS=( ".layers/datadog-lambda_ruby-amd64-3.2.zip" ".layers/datadog-lambda_ruby-arm64-3.2.zip" ".layers/datadog-lambda_ruby-amd64-3.3.zip" ".layers/datadog-lambda_ruby-arm64-3.3.zip" + ".layers/datadog-lambda_ruby-amd64-3.4.zip" + ".layers/datadog-lambda_ruby-arm64-3.4.zip" ) LAYERS=( "Datadog-Ruby3-2" "Datadog-Ruby3-2-ARM" "Datadog-Ruby3-3" "Datadog-Ruby3-3-ARM" + "Datadog-Ruby3-4" + "Datadog-Ruby3-4-ARM" ) STAGES=('prod', 'sandbox', 'staging', 'gov-staging', 'gov-prod') diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 698b260..b18bfc9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,31 +3,33 @@ We love pull requests. For new features, consider opening an issue to discuss the idea first. When you're ready to open a pull requset, here's a quick guide. 1. Fork, clone and branch off: - ```bash - git clone git@github.com:/datadog-lambda-rb.git - git checkout -b - ``` + ```bash + git clone git@github.com:/datadog-lambda-rb.git + git checkout -b + ``` 1. Install the repositories dependencies - ```bash - bundle install - ``` + ```bash + bundle install + ``` 1. Lint and run tests - ```bash - rubocop - ./scripts/run_tests.sh - ``` + ```bash + rubocop + ./scripts/run_tests.sh + ``` 1. Build a testing Lambda layer and publish it to your own AWS account. - ```bash - # Build layers using docker - ./scripts/build_layers.sh - # If you want to build a layer for a specific ruby version then - RUBY_VERSION=3.3 ./scripts/build_layers.sh + ```bash + # Build layers using docker + ./scripts/build_layers.sh + + # If you want to build a layer for a specific ruby version then + RUBY_VERSION=3.4 ./scripts/build_layers.sh + + # Publish the testing layer to your own AWS account, and the ARN will be returned + # Example: ./scripts/publish_layers.sh us-east-1 + ./scripts/publish_layers.sh + ``` - # Publish the testing layer to your own AWS account, and the ARN will be returned - # Example: ./scripts/publish_layers.sh us-east-1 - ./scripts/publish_layers.sh - ``` 1. Test your own serverless application using the testing Lambda layer in your own AWS account. 1. Run the integration tests against your own AWS account and Datadog org (or ask a Datadog member to run): ```bash diff --git a/README.md b/README.md index e69522a..a84bf0b 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 (3.2 and 3.3) enables enhanced Lambda metrics, distributed tracing, and custom metric submission from AWS Lambda functions. +Datadog Lambda Library for Ruby (3.2, 3.3, and 3.4) enables enhanced Lambda metrics, distributed tracing, and custom metric submission from AWS Lambda functions. ## Installation diff --git a/integration_tests/snapshots/logs/async-metrics_ruby33.log b/integration_tests/snapshots/logs/async-metrics_ruby33.log index 6537a2d..fa5d69c 100644 --- a/integration_tests/snapshots/logs/async-metrics_ruby33.log +++ b/integration_tests/snapshots/logs/async-metrics_ruby33.log @@ -13,7 +13,7 @@ {"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} 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 Memory Used: XXXX MB +END Duration: XXXX ms (init: XXXX) Memory Used: XXXX MB I, [XXXX] INFO XXXX[datadog] DATADOG CONFIGURATION - CORE - {"date":"XXXX","os_name":"XXXX","version":"2.12.0","lang":"ruby","lang_version":"3.3.X","env":null,"service":"index","dd_version":null,"debug":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.3.X","health_metrics_enabled":false,"profiling_enabled":false,"dynamic_instrumentation_enabled":false} I, [XXXX] INFO XXXX[datadog] DATADOG CONFIGURATION - TRACING - {"enabled":true,"agent_url":null,"analytics_enabled":false,"sample_rate":null,"sampling_rules":null,"integrations_loaded":"aws@","partial_flushing_enabled":false} Processed APIGateway request diff --git a/integration_tests/snapshots/logs/async-metrics_ruby34.log b/integration_tests/snapshots/logs/async-metrics_ruby34.log new file mode 100644 index 0000000..b649329 --- /dev/null +++ b/integration_tests/snapshots/logs/async-metrics_ruby34.log @@ -0,0 +1,25 @@ + +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-async-metrics_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-async-metrics_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-async-metrics_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-async-metrics_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-async-metrics_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-async-metrics_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:APIGateway"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SNS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SNS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +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[datadog] DATADOG CONFIGURATION - CORE - {"date":"XXXX","os_name":"XXXX","version":"2.12.0","lang":"ruby","lang_version":"3.4.X","env":null,"service":"index","dd_version":null,"debug":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.4.X","health_metrics_enabled":false,"profiling_enabled":false,"dynamic_instrumentation_enabled":false} +I, [XXXX] INFO XXXX[datadog] DATADOG CONFIGURATION - TRACING - {"enabled":true,"agent_url":null,"analytics_enabled":false,"sample_rate":null,"sampling_rules":null,"integrations_loaded":"aws@","partial_flushing_enabled":false} +Processed APIGateway request +Processed SNS request +Processed SQS request +START +START +START +W, [XXXX] WARN XXXX[datadog] Unable to patch Datadog::Tracing::Contrib::Aws::Integration (Available?: false, Loaded? false, Compatible? false, Patchable? false) diff --git a/integration_tests/snapshots/logs/http-requests_ruby34.log b/integration_tests/snapshots/logs/http-requests_ruby34.log new file mode 100644 index 0000000..44f0f39 --- /dev/null +++ b/integration_tests/snapshots/logs/http-requests_ruby34.log @@ -0,0 +1,22 @@ + +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-http-requests_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-http-requests_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-http-requests_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-http-requests_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-http-requests_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-http-requests_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","function:http-request"],"v":1} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +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[datadog] DATADOG CONFIGURATION - CORE - {"date":"XXXX","os_name":"XXXX","version":"2.12.0","lang":"ruby","lang_version":"3.4.X","env":null,"service":"index","dd_version":null,"debug":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.4.X","health_metrics_enabled":false,"profiling_enabled":false,"dynamic_instrumentation_enabled":false} +I, [XXXX] INFO XXXX[datadog] DATADOG CONFIGURATION - TRACING - {"enabled":true,"agent_url":null,"analytics_enabled":false,"sample_rate":null,"sampling_rules":null,"integrations_loaded":"aws@","partial_flushing_enabled":false} +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"] +START +START +START +W, [XXXX] WARN XXXX[datadog] Unable to patch Datadog::Tracing::Contrib::Aws::Integration (Available?: false, Loaded? false, Compatible? false, Patchable? false) diff --git a/integration_tests/snapshots/logs/process-input-traced_ruby34.log b/integration_tests/snapshots/logs/process-input-traced_ruby34.log new file mode 100644 index 0000000..14aff03 --- /dev/null +++ b/integration_tests/snapshots/logs/process-input-traced_ruby34.log @@ -0,0 +1,19 @@ + +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-process-input-traced_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-process-input-traced_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-process-input-traced_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-process-input-traced_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","function:http-request"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","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,"span_links":[],"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"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,"span_links":[],"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"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,"span_links":[],"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,"span_links":[],"start":XXXX,"duration":XXXX},{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +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[datadog] DATADOG CONFIGURATION - CORE - {"date":"XXXX","os_name":"XXXX","version":"2.12.0","lang":"ruby","lang_version":"3.4.X","env":null,"service":"index","dd_version":null,"debug":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.4.X","health_metrics_enabled":false,"profiling_enabled":false,"dynamic_instrumentation_enabled":false} +I, [XXXX] INFO XXXX[datadog] DATADOG CONFIGURATION - TRACING - {"enabled":true,"agent_url":null,"analytics_enabled":false,"sample_rate":null,"sampling_rules":null,"integrations_loaded":"aws@","partial_flushing_enabled":false} +START +START +START +W, [XXXX] WARN XXXX[datadog] Unable to patch Datadog::Tracing::Contrib::Aws::Integration (Available?: false, Loaded? false, Compatible? false, Patchable? false) diff --git a/integration_tests/snapshots/logs/sync-metrics_ruby34.log b/integration_tests/snapshots/logs/sync-metrics_ruby34.log new file mode 100644 index 0000000..16074a9 --- /dev/null +++ b/integration_tests/snapshots/logs/sync-metrics_ruby34.log @@ -0,0 +1,25 @@ + +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-sync-metrics_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-sync-metrics_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:false","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["dd_lambda_layer:datadog-ruby34","functionname:integration-tests-rb-XXXX-sync-metrics_ruby34","region:eu-west-1","account_id:XXXX","memorysize:1024","cold_start:true","runtime:Ruby 3.4.X","resource:integration-tests-rb-XXXX-sync-metrics_ruby34","datadog_lambda:3.25.0","dd_trace:2.XX.X"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:APIGateway"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SNS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.execution","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SNS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"e":XXXX,"m":"serverless.integration_test.records_processed","t":["dd_lambda_layer:datadog-ruby34","tagkey:tagvalue","eventsource:SQS"],"v":1} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +{"traces":[[{"error":0,"meta":{"XXXX": "XXXX"},"metrics":{"XXXX": "XXXX"},"name":"aws.lambda","parent_id":"XXXX","resource":"dd-tracer-serverless-span","service":"aws.lambda","span_id":"XXXX","trace_id":"XXXX","type":"serverless","span_links":[],"start":XXXX,"duration":XXXX}]]} +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[datadog] DATADOG CONFIGURATION - CORE - {"date":"XXXX","os_name":"XXXX","version":"2.12.0","lang":"ruby","lang_version":"3.4.X","env":null,"service":"index","dd_version":null,"debug":false,"tags":"_dd.origin:lambda","runtime_metrics_enabled":false,"vm":"ruby-3.4.X","health_metrics_enabled":false,"profiling_enabled":false,"dynamic_instrumentation_enabled":false} +I, [XXXX] INFO XXXX[datadog] DATADOG CONFIGURATION - TRACING - {"enabled":true,"agent_url":null,"analytics_enabled":false,"sample_rate":null,"sampling_rules":null,"integrations_loaded":"aws@","partial_flushing_enabled":false} +Processed APIGateway request +Processed SNS request +Processed SQS request +START +START +START +W, [XXXX] WARN XXXX[datadog] Unable to patch Datadog::Tracing::Contrib::Aws::Integration (Available?: false, Loaded? false, Compatible? false, Patchable? false) diff --git a/scripts/add_new_region.sh b/scripts/add_new_region.sh index dd7a725..92e14b7 100755 --- a/scripts/add_new_region.sh +++ b/scripts/add_new_region.sh @@ -12,7 +12,7 @@ set -e OLD_REGION='us-east-1' -RUBY_VERSIONS_FOR_AWS_CLI=("ruby3.2" "ruby3.3") +RUBY_VERSIONS_FOR_AWS_CLI=("ruby3.2" "ruby3.3" "ruby3.4") LAYER_NAMES=("Datadog-Ruby3-2" "Datadog-Ruby3-3") NEW_REGION=$1 diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 6fe05c3..304b334 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=("3.2" "3.3") +RUBY_VERSIONS=("3.2" "3.3" "3.4") if [ -z "$RUBY_VERSION" ]; then echo "Ruby version not specified, running for all ruby versions." diff --git a/scripts/check_layer_size.sh b/scripts/check_layer_size.sh index cd0a733..cbd5383 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" -RUBY_VERSIONS=("3.2" "3.3") +RUBY_VERSIONS=("3.2" "3.3" "3.4") ARCHITECTURES=("amd64" "arm64") if [ -z "$ARCH" ]; then diff --git a/scripts/publish_govcloud.sh b/scripts/publish_govcloud.sh index 01ea01b..dfa457b 100755 --- a/scripts/publish_govcloud.sh +++ b/scripts/publish_govcloud.sh @@ -89,7 +89,7 @@ do export REGION=$region - for ruby_version in "3.2" "3.3"; do + for ruby_version in "3.2" "3.3" "3.4"; do for arch in "amd64" "arm64"; do export RUBY_VERSION=$ruby_version export ARCH=$arch diff --git a/scripts/publish_layers.sh b/scripts/publish_layers.sh index c386513..8ec174b 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=("ruby3.2" "ruby3.2" "ruby3.3" "ruby3.3") -LAYER_PATHS=(".layers/datadog-lambda_ruby-amd64-3.2.zip" ".layers/datadog-lambda_ruby-arm64-3.2.zip" ".layers/datadog-lambda_ruby-amd64-3.3.zip" ".layers/datadog-lambda_ruby-arm64-3.3.zip") -AVAILABLE_LAYERS=("Datadog-Ruby3-2" "Datadog-Ruby3-2-ARM" "Datadog-Ruby3-3" "Datadog-Ruby3-3-ARM") +RUBY_VERSIONS_FOR_AWS_CLI=("ruby3.2" "ruby3.2" "ruby3.3" "ruby3.3" "ruby3.4" "ruby3.4") +LAYER_PATHS=(".layers/datadog-lambda_ruby-amd64-3.2.zip" ".layers/datadog-lambda_ruby-arm64-3.2.zip" ".layers/datadog-lambda_ruby-amd64-3.3.zip" ".layers/datadog-lambda_ruby-arm64-3.3.zip" ".layers/datadog-lambda_ruby-amd64-3.4.zip" ".layers/datadog-lambda_ruby-arm64-3.4.zip") +AVAILABLE_LAYERS=("Datadog-Ruby3-2" "Datadog-Ruby3-2-ARM" "Datadog-Ruby3-3" "Datadog-Ruby3-3-ARM" "Datadog-Ruby3-4" "Datadog-Ruby3-4-ARM") AVAILABLE_REGIONS=$(aws ec2 describe-regions | jq -r '.[] | .[] | .RegionName') diff --git a/scripts/publish_prod.sh b/scripts/publish_prod.sh index c35ca4f..0bfe99c 100755 --- a/scripts/publish_prod.sh +++ b/scripts/publish_prod.sh @@ -33,8 +33,8 @@ else NEW_VERSION=$1 fi -echo "Setting local environment to Ruby 3.3" -rbenv local 3.3.0 +echo "Setting local environment to Ruby 3.4" +rbenv local 3.4 echo "Running tests" ./scripts/run_tests.sh diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index 123c2b1..54e374d 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -30,8 +30,9 @@ mismatch_found=false # [2]: random 8-character ID to avoid collisions with other runs ruby32=("ruby3.2" "3.2" $(xxd -l 4 -c 4 -p