Skip to content

Commit e9b3e16

Browse files
committed
init update on multi runtime ruby layer
1 parent 4ad304b commit e9b3e16

File tree

9 files changed

+69
-26
lines changed

9 files changed

+69
-26
lines changed

.github/workflows/release-layer-ruby.yml

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,38 +18,23 @@ jobs:
1818
steps:
1919
- uses: actions/checkout@v4
2020

21-
- uses: ruby/setup-ruby@v1
22-
with:
23-
ruby-version: '3.2.0'
24-
25-
- name: Install SAM
26-
run: |
27-
sudo apt-get update && sudo apt-get install wget unzip make -y
28-
wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
29-
unzip aws-sam-cli-linux-x86_64.zip -d sam-installation
30-
sudo ./sam-installation/install --update
31-
3221
- name: Build
3322
id: save-ruby-sdk-version
3423
run: |
35-
sam build -u -t template.yml
36-
export GEM_PATH=$PWD/.aws-sam/build/OTelLayer/ruby/gems/3.2.0/
37-
RUBY_SDK_VERSION=$(ruby -e 'require "opentelemetry-sdk"; puts OpenTelemetry::SDK::VERSION')
38-
echo "RUBY_SDK_VERSION=$RUBY_SDK_VERSION" >> $GITHUB_OUTPUT
24+
./build.sh
25+
shell: bash
3926
working-directory: ruby/src
4027

41-
- name: Zip the layer file
28+
- name: Show directory contents
4229
run: |
43-
echo ${{ steps.save-ruby-sdk-version.outputs.RUBY_SDK_VERSION}}
44-
./zip_ruby_layer.sh
45-
working-directory: ruby/src
46-
shell: bash
30+
ls -al
31+
working-directory: ruby/src/build
4732

4833
- uses: actions/upload-artifact@v4
4934
name: Save assembled layer to build
5035
with:
5136
name: opentelemetry-ruby-layer.zip
52-
path: ruby/src/opentelemetry-ruby-layer.zip
37+
path: ruby/src/build/opentelemetry-ruby-layer.zip
5338

5439
publish-layer:
5540
uses: ./.github/workflows/layer-publish.yml
@@ -77,7 +62,7 @@ jobs:
7762
artifact-name: opentelemetry-ruby-layer.zip
7863
layer-name: opentelemetry-ruby
7964
component-version: ${{needs.build-layer.outputs.RUBY_SDK_VERSION}}
80-
runtimes: ruby3.2
81-
release-group: prod
65+
runtimes: ruby3.2 ruby3.3
66+
release-group: dev
8267
aws_region: ${{ matrix.aws_region }}
8368
secrets: inherit

ruby/sample-apps/template.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Resources:
1212
Properties:
1313
LayerName: !Ref LayerName
1414
Description: Opentelemetry Ruby layer
15-
ContentUri: ./../src/layer
15+
ContentUri: ./../src/otel/layer
1616
CompatibleRuntimes:
1717
- ruby3.2
1818
Metadata:

ruby/src/build.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/sh
2+
set -e
3+
4+
mkdir -p build
5+
6+
docker build --progress plain -t aws-otel-lambda-ruby-layer otel
7+
docker run --rm -v "$(pwd)/build:/out" aws-otel-lambda-ruby-layer

ruby/src/otel/Dockerfile

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
FROM ubuntu:latest
2+
3+
RUN mkdir /build
4+
5+
COPY . /build
6+
7+
RUN apt-get update && apt-get install -y git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev zip
8+
9+
RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv \
10+
&& git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build \
11+
&& git clone https://github.com/rbenv/rbenv-default-gems.git ~/.rbenv/plugins/rbenv-default-gems \
12+
&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile \
13+
&& echo 'eval "$(rbenv init -)"' >> ~/.profile \
14+
&& echo 'eval "$(rbenv init -)"' >> ~/.bashrc \
15+
&& echo 'bundler' > ~/.rbenv/default-gems
16+
17+
RUN echo 'alias be="bundle exec"' >> ~/.bashrc
18+
RUN echo 'alias be="bundle exec"' >> ~/.profile
19+
20+
# install rubies to build our gem against Gemfile
21+
RUN . ~/.profile \
22+
&& cd /root/.rbenv/plugins/ruby-build && git pull && cd - \
23+
&& rbenv install 3.2.0 \
24+
&& rbenv install 3.3.0
25+
26+
WORKDIR /build/layer
27+
28+
RUN . ~/.profile && rbenv local 3.2.0 && bundle install
29+
RUN . ~/.profile && rbenv local 3.3.0 && bundle install
30+
31+
WORKDIR /root/.rbenv/versions/3.2.0/lib/ruby/gems/
32+
RUN zip -r gems-3.2.0.zip 3.2.0/
33+
34+
WORKDIR /root/.rbenv/versions/3.3.0/lib/ruby/gems/
35+
RUN zip -r gems-3.3.0.zip 3.3.0/
36+
37+
RUN ls -al /root/.rbenv/versions/3.2.0/lib/ruby/gems && ls -al /root/.rbenv/versions/3.3.0/lib/ruby/gems
38+
39+
# copy gems to /build/ruby/gems for zipping
40+
RUN mkdir /build/ruby && mkdir /build/ruby/gems
41+
WORKDIR /build/ruby/gems
42+
RUN cp /root/.rbenv/versions/3.2.0/lib/ruby/gems/gems-3.2.0.zip . && unzip gems-3.2.0.zip && rm gems-3.2.0.zip
43+
RUN cp /root/.rbenv/versions/3.3.0/lib/ruby/gems/gems-3.3.0.zip . && unzip gems-3.3.0.zip && rm gems-3.3.0.zip
44+
RUN ls -al /build/ruby/gems
45+
46+
# zip all the gems
47+
WORKDIR /build
48+
RUN cp layer/otel-handler . && cp layer/wrapper.rb .
49+
RUN zip -r opentelemetry-ruby-layer.zip ruby/ otel-handler wrapper.rb
50+
51+
CMD cp /build/opentelemetry-ruby-layer.zip /out/opentelemetry-ruby-layer.zip
File renamed without changes.
File renamed without changes.

ruby/src/layer/otel-handler renamed to ruby/src/otel/layer/otel-handler

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ if [ -z "${OTEL_RUBY_INSTRUMENTATION_NET_HTTP_ENABLED}" ]; then
1212
export OTEL_RUBY_INSTRUMENTATION_NET_HTTP_ENABLED=false;
1313
fi
1414

15-
export LAMBDA_RESOURCE_ATTRIBUTES="cloud.region=$AWS_REGION,cloud.provider=aws,faas.name=$AWS_LAMBDA_FUNCTION_NAME,faas.version=$AWS_LAMBDA_FUNCTION_VERSION";
15+
export LAMBDA_RESOURCE_ATTRIBUTES="cloud.region=$AWS_REGION,cloud.provider=aws,faas.name=$AWS_LAMBDA_FUNCTION_NAME,faas.version=$AWS_LAMBDA_FUNCTION_VERSION,faas.instance=$AWS_LAMBDA_LOG_STREAM_NAME";
1616
if [ -z "${OTEL_RESOURCE_ATTRIBUTES}" ]; then
1717
export OTEL_RESOURCE_ATTRIBUTES="$LAMBDA_RESOURCE_ATTRIBUTES";
1818
else
File renamed without changes.

ruby/src/template.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Resources:
1212
Properties:
1313
LayerName: !Ref LayerName
1414
Description: Opentelemetry Ruby layer
15-
ContentUri: ./layer
15+
ContentUri: ./otel/layer
1616
CompatibleRuntimes:
1717
- ruby3.2
1818
Metadata:

0 commit comments

Comments
 (0)