sentry-lambda, the AWS Lambda integration for Sentry's Ruby client¶ ↑
The official Ruby-language client and integration layer for the Sentry error reporting API.
Requirements¶ ↑
Ruby version >= 2.5
Getting Started¶ ↑
Install¶ ↑
gem "sentry-lambda"
Usage¶ ↑
def lambda_handler(event:, context:) Sentry::Lambda.wrap_handler(event: event, context: context) do # Function logic here.... end end
Timeout Warnings¶ ↑
It can be important to know when a function is about to time out and to have sentry-level details when this occurs. In order to give a Lambda Function time to do so, a warning message can be enabled with capture_timeout_warning: true
like so:
def lambda_handler(event:, context:) Sentry::Lambda.wrap_handler(event: event, context: context, capture_timeout_warning: true) do # Function logic here.... end end
Integration Specific Configuration¶ ↑
This gem has a few Lambda-specific configuration options.
Using an AWS CloudWatch LogGroup Trigger. This approach requires having a separate Lambda Function which is triggered by this log. Simply outputting the Sentry::Event
data as a log allows for the event to be captured synchronously elsewhere and also gives the current Lambda more time to finish.
Sentry.init do |config| # Put a log which will be caught by Trigger `?"SENTRY Event" ?"Task timed out after"` config.async = lambda do |event, hint| puts "SENTRY Event: #{event.to_json} Hint: #{hint.to_json}" end end
Sending to Sentry
Synchronously:
Sentry.init { |config| config.background_worker_threads = 0 } # all events will be sent synchronously