OpenTelemetry AWS-Lambda Instrumentation
The OpenTelemetry aws-lambda
gem is a community-maintained instrumentation for AWS Lambda functions.
How do I get started?
Installation of the opentelemetry-instrumentation-aws_lambda
gem is handled by the OpenTelemetry Lambda Layer for Ruby.
We do not advise installing the opentelemetry-instrumentation-aws_lambda
gem directly into your Ruby lambda. Instead, clone the OpenTelemetry Lambda Layer for Ruby and build the layer locally. Then, save it in your AWS account.
Usage
From the Lambda Layer side, create the wrapper. More information can be found at https://github.com/open-telemetry/opentelemetry-lambda/tree/main/ruby
Below is an example of ruby/src/layer/wrapper.rb
, where you can configure the layer to suit your needs before building it:
require 'opentelemetry/sdk'
require 'opentelemetry/instrumentation/aws_lambda'
OpenTelemetry::SDK.configure do |c|
c.service_name = '<YOUR_SERVICE_NAME>'
c.use 'OpenTelemetry::Instrumentation::AwsLambda'
end
def otel_wrapper(event:, context:)
otel_wrapper = OpenTelemetry::Instrumentation::AwsLambda::Handler.new()
otel_wrapper.call_wrapped(event: event, context: context)
end
Example
To run the example:
cd
to the examples directory and install gemscd example
bundle install
- Run the sample client script
ruby trace_demonstration.rb
- or
bundle exec ruby trace_demonstration.rb
This will run SNS publish command, printing OpenTelemetry traces to the console as it goes.
How can I get involved?
The opentelemetry-instrumentation-aws_lambda
gem source is on github, along with related gems including opentelemetry-api
and opentelemetry-sdk
.
The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special interest group (SIG). You can get involved by joining us in GitHub Discussions or attending our weekly meeting. See the meeting calendar for dates and times. For more information on this and other language SIGs, see the OpenTelemetry community page.
License
Apache 2.0 license. See LICENSE for more information.