Skip to content
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

feat: add aws Lambda instrumentation #721

Merged
merged 65 commits into from
May 10, 2024
Merged
Show file tree
Hide file tree
Changes from 61 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
a5a5386
feat: add aws lambda instrumentation
xuan-cao-swi Nov 14, 2023
42dba8e
feat: return original handler response and require the handler file
xuan-cao-swi Nov 15, 2023
845cc06
Merge branch 'main' of https://github.com/open-telemetry/opentelemetr…
xuan-cao-swi Dec 12, 2023
c708d0a
Update instrumentation/aws_lambda/README.md
xuan-cao-swi Dec 12, 2023
0b5891a
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Dec 12, 2023
9601fd1
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Dec 12, 2023
34db557
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Dec 12, 2023
3e54dfa
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Dec 12, 2023
fbc942e
Update instrumentation/aws_lambda/example/Gemfile
xuan-cao-swi Dec 12, 2023
157f219
Merge branch 'lambda-instrumentation' of github.com:xuan-cao-swi/open…
xuan-cao-swi Dec 12, 2023
432670a
feat: revision on fix sample test, update readme and add rubocop-perf…
xuan-cao-swi Dec 12, 2023
25f0495
feat: update readme
xuan-cao-swi Dec 12, 2023
3252264
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Feb 8, 2024
0a19da1
Update instrumentation/aws_lambda/CHANGELOG.md
xuan-cao-swi Feb 8, 2024
609a419
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Feb 8, 2024
d7627e8
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Feb 13, 2024
118f6ee
feat: add codeowner for aws_lambda
xuan-cao-swi Feb 13, 2024
4e71325
Merge branch 'main' into lambda-instrumentation
kaylareopelle Feb 22, 2024
b1536ac
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Feb 23, 2024
72c7e9e
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Feb 23, 2024
313e33e
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Mar 5, 2024
625efa3
Update CODEOWNERS
xuan-cao-swi Mar 5, 2024
ea195c6
feat: lambda - update semantic convention and test case
xuan-cao-swi Mar 6, 2024
9807308
feat: add lambda to workflow
xuan-cao-swi Mar 6, 2024
198d464
feat: lambda - run test with rake test directly
xuan-cao-swi Mar 6, 2024
f01e9fe
feat: lambda - add rescue to avoid break user function
xuan-cao-swi Mar 6, 2024
d7c47b3
feat: aws lambda - make faas.trigger static to http as following spec…
xuan-cao-swi Mar 18, 2024
4fe7b87
Update instrumentation/aws_lambda/README.md
xuan-cao-swi Mar 19, 2024
ba86dc7
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Mar 19, 2024
3cb6dd6
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Mar 19, 2024
f412fd5
feat: lambda - use symbol and str for statusCode
xuan-cao-swi Mar 19, 2024
e8ed3aa
Merge branch 'lambda-instrumentation' of github.com:xuan-cao-swi/open…
xuan-cao-swi Mar 19, 2024
f80067b
feat: lambda - refactor on status code
xuan-cao-swi Mar 19, 2024
63bf9ad
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Mar 24, 2024
52d9bda
feat: lambda - update span name calculation period. add non-http trig…
xuan-cao-swi Mar 25, 2024
4381f30
Merge branch 'lambda-instrumentation' of github.com:xuan-cao-swi/open…
xuan-cao-swi Mar 25, 2024
8f187c9
feat: aws_lambda update
xuan-cao-swi Mar 25, 2024
b2fab00
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Apr 2, 2024
8608e43
feat: aws lambda - update attributes
xuan-cao-swi Apr 2, 2024
834622f
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Apr 2, 2024
9e86457
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Apr 5, 2024
3896d9b
feat: aws lambda - revision
xuan-cao-swi Apr 5, 2024
26300b3
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Apr 9, 2024
078618f
Update instrumentation/aws_lambda/README.md
xuan-cao-swi Apr 9, 2024
78a7040
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Apr 9, 2024
ebcf312
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi Apr 9, 2024
5c873c9
feat: aws lambda - revision
xuan-cao-swi Apr 9, 2024
3ae6620
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Apr 16, 2024
dcdbc65
Update instrumentation/aws_lambda/example/sample.rb
xuan-cao-swi Apr 16, 2024
d6eaea7
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Apr 24, 2024
7da938f
feat: merge
xuan-cao-swi Apr 30, 2024
6279914
Merge branch 'lambda-instrumentation' of github.com:xuan-cao-swi/open…
xuan-cao-swi Apr 30, 2024
45a42bc
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi Apr 30, 2024
88b38c8
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi May 1, 2024
80ee871
Update instrumentation/aws_lambda/README.md
xuan-cao-swi May 2, 2024
0aec40e
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi May 2, 2024
75e0ce5
Update instrumentation/aws_lambda/lib/opentelemetry/instrumentation/a…
xuan-cao-swi May 2, 2024
237465a
Update instrumentation/aws_lambda/README.md
xuan-cao-swi May 2, 2024
40c6316
Update instrumentation/aws_lambda/README.md
xuan-cao-swi May 2, 2024
4ebb79c
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi May 6, 2024
f70a66f
feat: lambda - update release file
xuan-cao-swi May 6, 2024
79d00bb
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi May 7, 2024
26801c0
feat: remove ci-instrumentation-canary.yml
xuan-cao-swi May 7, 2024
ecc8b54
Merge branch 'lambda-instrumentation' of github.com:xuan-cao-swi/open…
xuan-cao-swi May 7, 2024
1b4d969
Merge branch 'main' into lambda-instrumentation
xuan-cao-swi May 10, 2024
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
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ updates:
directory: "/instrumentation/aws_sdk"
schedule:
interval: weekly
- package-ecosystem: bundler
directory: "/instrumentation/aws_lambda"
schedule:
interval: weekly
- package-ecosystem: bundler
directory: "/instrumentation/active_record"
schedule:
Expand Down
141 changes: 141 additions & 0 deletions .github/workflows/ci-instrumentation-canary.yml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file was deleted on main. Please remove it from this branch.

Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
name: CI Instrumentation - Canary

on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"

jobs:
instrumentation:
strategy:
fail-fast: false
matrix:
gem:
- action_pack
- action_view
- active_job
- active_model_serializers
- active_record
- active_support
- all
- aws_sdk
- aws_lambda
- base
- concurrent_ruby
- delayed_job
- ethon
- excon
- faraday
- grape
- graphql
- gruf
- http
- http_client
- koala
- lmdb
- net_http
- httpx
- rack
- rails
- restclient
- rspec
- sinatra
os:
- ubuntu-latest
- macos-latest
- windows-latest
exclude:
- os: windows-latest
gem: ethon
- os: windows-latest
gem: action_pack
- os: windows-latest
gem: restclient
- os: windows-latest
gem: rails
- os: macos-latest
gem: lmdb

name: ${{ matrix.gem }} / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: "Test Ruby 3.3"
uses: ./.github/actions/test_gem
with:
gem: "opentelemetry-instrumentation-${{ matrix.gem }}"
ruby: "3.3"
latest: "true"
- name: "Test Ruby 3.2"
uses: ./.github/actions/test_gem
with:
gem: "opentelemetry-instrumentation-${{ matrix.gem }}"
ruby: "3.2"
latest: "true"
- name: "Test Ruby 3.1"
uses: ./.github/actions/test_gem
with:
gem: "opentelemetry-instrumentation-${{ matrix.gem }}"
ruby: "3.1"
latest: "true"
- name: "Test Ruby 3.0"
if: "${{ matrix.os == 'ubuntu-latest' }}"
uses: ./.github/actions/test_gem
with:
gem: "opentelemetry-instrumentation-${{ matrix.gem }}"
ruby: "3.0"
latest: "true"
yard: true
rubocop: true
build: true
- name: "JRuby Filter"
id: jruby_skip
shell: bash
run: |
echo "skip=false" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "action_pack" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "action_view" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "active_model_serializers" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "active_record" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "active_support" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "aws_sdk" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "aws_lambda" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "delayed_job" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "graphql" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "http" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "http_client" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "koala" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "lmdb" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "rack" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "rails" ]] && echo "skip=true" >> $GITHUB_OUTPUT
# This is essentially a bash script getting evaluated, so we need to return true or the whole job fails.
true
- name: "Test JRuby"
if: "${{ matrix.os == 'ubuntu-latest' && steps.jruby_skip.outputs.skip == 'false' }}"
uses: ./.github/actions/test_gem
with:
gem: "opentelemetry-instrumentation-${{ matrix.gem }}"
latest: "true"
ruby: "jruby-9.4.2.0"
- name: "Truffleruby Filter"
id: truffleruby_skip
shell: bash
run: |
echo "skip=false" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "action_pack" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "action_view" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "active_job" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "active_record" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "active_support" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "delayed_job" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "lmdb" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "rails" ]] && echo "skip=true" >> $GITHUB_OUTPUT
# This is essentially a bash script getting evaluated, so we need to return true or the whole job fails.
true
- name: "Test Truffleruby"
if: "${{ matrix.os == 'ubuntu-latest' && steps.truffleruby_skip.outputs.skip == 'false' }}"
uses: ./.github/actions/test_gem
with:
gem: "opentelemetry-instrumentation-${{ matrix.gem }}"
ruby: "truffleruby"
latest: "true"
2 changes: 2 additions & 0 deletions .github/workflows/ci-instrumentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
- active_support
- all
- aws_sdk
- aws_lambda
- base
- concurrent_ruby
- delayed_job
Expand Down Expand Up @@ -91,6 +92,7 @@ jobs:
[[ "${{ matrix.gem }}" == "active_record" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "active_support" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "aws_sdk" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "aws_lambda" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "delayed_job" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "graphql" ]] && echo "skip=true" >> $GITHUB_OUTPUT
[[ "${{ matrix.gem }}" == "http" ]] && echo "skip=true" >> $GITHUB_OUTPUT
Expand Down
1 change: 1 addition & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"instrumentation/base": "0.22.3",
"instrumentation/active_record": "0.7.0",
"instrumentation/aws_sdk": "0.5.0",
"instrumentation/aws_lambda": "0.1.0",
"instrumentation/lmdb": "0.22.1",
"instrumentation/http": "0.23.2",
"instrumentation/graphql": "0.27.0",
Expand Down
4 changes: 4 additions & 0 deletions .toys/.data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,10 @@ gems:
directory: instrumentation/aws_sdk
version_constant: [OpenTelemetry, Instrumentation, AwsSdk, VERSION]

- name: opentelemetry-instrumentation-aws_lambda
directory: instrumentation/aws_lambda
version_constant: [OpenTelemetry, Instrumentation, AwsLambda, VERSION]

- name: opentelemetry-instrumentation-lmdb
directory: instrumentation/lmdb
version_constant: [OpenTelemetry, Instrumentation, LMDB, VERSION]
Expand Down
1 change: 1 addition & 0 deletions instrumentation/aws_lambda/.rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
inherit_from: ../../.rubocop.yml
9 changes: 9 additions & 0 deletions instrumentation/aws_lambda/.yardopts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
--no-private
--title=OpenTelemetry AWS Lambda Instrumentation
--markup=markdown
--main=README.md
./lib/opentelemetry/instrumentation/**/*.rb
./lib/opentelemetry/instrumentation.rb
-
README.md
CHANGELOG.md
1 change: 1 addition & 0 deletions instrumentation/aws_lambda/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Release History: opentelemetry-instrumentation-aws_lambda
14 changes: 14 additions & 0 deletions instrumentation/aws_lambda/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# frozen_string_literal: true

# Copyright The OpenTelemetry Authors
#
# SPDX-License-Identifier: Apache-2.0

source 'https://rubygems.org'

gemspec

group :test do
gem 'opentelemetry-instrumentation-base', path: '../base'
gem 'webrick', '~> 1.7'
end
Loading