Skip to content

feat: Add support for Ruby 3.2 #76

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 26 commits into from
May 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
862621f
update `ddtrace` gem to `1.11.0`
duncanista Apr 27, 2023
f120226
update `Dockerfile` with latest `ddtrace` gem
duncanista Apr 27, 2023
2a4a330
update `build_layers.sh`
duncanista Apr 27, 2023
1e12d44
update scripts to list, publish, and sign layers
duncanista Apr 27, 2023
e175ae1
update github actions
duncanista Apr 27, 2023
7a8f732
update `README.md`
duncanista Apr 27, 2023
037ebac
update test scripts
duncanista Apr 27, 2023
268a149
update how options are being sent to the tracer
duncanista Apr 27, 2023
594af93
update integration tests `.yml` to use correct zip
duncanista Apr 27, 2023
723b094
remove runtime specific check
duncanista Apr 27, 2023
7160a45
update integration tests script to mask changing values
duncanista Apr 27, 2023
5c3bacf
mask changing logs in correct command
duncanista Apr 27, 2023
141d8dd
update logs and snapshots
duncanista Apr 27, 2023
133fddd
update base image and `Dockerfile`
duncanista Apr 27, 2023
2d3e54c
update `Dockerfile`
duncanista Apr 27, 2023
1bab09d
revert changes to base image and `Dockerfile`
duncanista Apr 27, 2023
d279a61
add another step to install crossbuild deps in gh actions
duncanista Apr 28, 2023
5cfcacd
add `--fix-missing` and update
duncanista Apr 28, 2023
9a9a074
update integration tests to use the same return values for every runtime
duncanista Apr 28, 2023
e5d98f0
add crossbuild deps step for check-size
duncanista Apr 28, 2023
b3c5ede
specify layer arch to check size
duncanista Apr 28, 2023
6f6ddce
allow Datadog Lambda Extension use
duncanista May 2, 2023
4a9dc36
update Dockerfile to strip aws sdk and binaries for old ruby versions
duncanista May 2, 2023
b43d7fa
strip `linux-musl`
duncanista May 2, 2023
95cb508
Update lib/datadog/lambda/utils/extension.rb
duncanista May 9, 2023
4b86b23
update snapshots
duncanista May 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -51,7 +51,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
runtime-param: [2.7]
runtime-param: [2.7, 3.2]

steps:
- name: Checkout
Expand All @@ -77,6 +77,11 @@ jobs:
working-directory: integration_tests
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: Run tests
env:
BUILD_LAYERS: true
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/check-size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
22 changes: 18 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,25 @@ 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

# 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.5.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*/
# 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
RUN rm -rf "/opt/ruby/gems/${runtime}/cache"
RUN cd /opt
RUN cd /opt
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion datadog-lambda.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion integration_tests/serverless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions integration_tests/snapshots/logs/async-metrics_ruby27.log
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
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 #<Datadog::Transport::IO::Client:XXXX> 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}
{"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}
Expand Down
23 changes: 23 additions & 0 deletions integration_tests/snapshots/logs/async-metrics_ruby32.log
Original file line number Diff line number Diff line change
@@ -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.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
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.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}
{"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}]]}
8 changes: 4 additions & 4 deletions integration_tests/snapshots/logs/http-error_ruby27.log
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
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 #<Datadog::Transport::IO::Client:XXXX> 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}
{"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}
Expand Down
20 changes: 20 additions & 0 deletions integration_tests/snapshots/logs/http-error_ruby32.log
Original file line number Diff line number Diff line change
@@ -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.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
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.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}
{"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}]]}
Loading