Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 10 additions & 4 deletions lambda/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# SolarWinds Lambda Ruby Layer

## Building Lambda Ruby Layer With OpenTelemetry Ruby Dependencies Using SAM
## Building Lambda Ruby Layer with OpenTelemetry Ruby Dependencies Using SAM

Build

Expand All @@ -22,12 +22,18 @@ ruby
└── specifications
```

Zip the file for uploading to ruby lambda layer
Zip the layer to file

```bash
cd .aws-sam/build/OTelLayer/
zip -qr ../../../<your_layer_name>.zip ruby/
cd -
# or run following script
zip_layer.sh -n <your_layer_name>
```

## Building Lambda Ruby Layer with build-ruby Docker image

Execute the following command to build layer that is compatible with 3.2, 3.3 and 3.4

```bash
./build.sh
```
15 changes: 11 additions & 4 deletions lambda/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ set -e

if [ $SOLARWINDS_SOURCE = 'Local' ]; then
cd ../
sudo apt-get update && sudo apt-get install -y --no-install-recommends ruby ruby-dev g++ make swig bison
sudo apt-get update && sudo apt-get install -y --no-install-recommends ruby ruby-dev g++ make
sudo gem install bundler
sudo echo 'gem: --no-document' >> ~/.gemrc
sudo bundle install --without development --without test
sudo bundle exec rake fetch_oboe_file["prod"]
sudo bundle config set --local without 'test development'
sudo gem build solarwinds_apm.gemspec
CURRENT_GEM=$(ls | grep solarwinds_apm-*.gem)
mv $CURRENT_GEM lambda/otel/layer/
Expand All @@ -32,8 +31,16 @@ docker build --no-cache \

docker run --rm -v "$(pwd)/build:/out" sw-lambda-ruby-layer-3-3

docker build --no-cache \
--build-arg BUNDLE_RUBYGEMS__PKG__GITHUB__COM=${GITHUB_RUBY_TOKEN} \
--progress plain \
-f otel/Dockerfile_3_4 \
-t sw-lambda-ruby-layer-3-4 otel

docker run --rm -v "$(pwd)/build:/out" sw-lambda-ruby-layer-3-4

cd build/
mkdir solarwinds-apm && mkdir ruby && mkdir ruby/gems
unzip -q gems-3.2.0.zip -d ruby/gems/ && unzip -q gems-3.3.0.zip -d ruby/gems/
unzip -q gems-3.2.0.zip -d ruby/gems/ && unzip -q gems-3.3.0.zip -d ruby/gems/ && unzip -q gems-3.4.0.zip -d ruby/gems/
cp ../otel/layer/otel_wrapper.rb . && cp ../otel/layer/wrapper solarwinds-apm/
zip -qr ruby-layer-$MATRIX_ARCH.zip ruby/ solarwinds-apm/ otel_wrapper.rb
28 changes: 28 additions & 0 deletions lambda/otel/Dockerfile_3_4
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
FROM public.ecr.aws/sam/build-ruby3.4:latest

ARG BUNDLE_RUBYGEMS__PKG__GITHUB__COM
ENV LAMBDA_TASK_ROOT=/fake_lambda_task_root/

RUN mkdir /build
COPY . /build

WORKDIR /build/layer
RUN bundle config set --local path 'ruby'

RUN ls | grep solarwinds_apm-*.gem > gem_file.txt 2>/dev/null || true
RUN export gem_file=$(cat gem_file.txt) && \
if [ -f "$gem_file" ]; then \
echo "$gem_file exists."; \
sed -i '$ s/^/#/' /build/layer/Gemfile; \
bundle update; \
bundle exec gem install $gem_file; \
else \
bundle update; \
fi

RUN rm /build/layer/ruby/ruby/3.4.0/cache/* && rm -rf /build/layer/ruby/ruby/3.4.0/doc/*

WORKDIR /build/layer/ruby/ruby
RUN zip -qr gems-3.4.0.zip 3.4.0/

CMD cp /build/layer/ruby/ruby/gems-3.4.0.zip /out/gems-3.4.0.zip
5 changes: 1 addition & 4 deletions lambda/otel/layer/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,4 @@ source 'https://rubygems.org'
# source 'https://rubygems.pkg.github.com/solarwinds' do
# end

gem 'opentelemetry-api', '1.4.0'
gem 'opentelemetry-exporter-otlp', '0.30.0'
Comment thread
tammy-baylis-swi marked this conversation as resolved.
gem 'opentelemetry-exporter-otlp-metrics', '0.4.0'
gem 'solarwinds_apm', '6.1.2'
gem 'solarwinds_apm', '7.0.0.prev1'
39 changes: 0 additions & 39 deletions lambda/zip_layer.sh

This file was deleted.