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

Enhanced AWS Lambda serverless functionality #2811

Merged
merged 14 commits into from
Aug 19, 2024
Merged

Enhanced AWS Lambda serverless functionality #2811

merged 14 commits into from
Aug 19, 2024

Conversation

fallwith
Copy link
Contributor

  • Introduce support for parsing distributed tracing information for HTTP based trigger invocations of the instrumented Lambda function
  • Both AWS API Gateway versions 1.0 and 2.0 are supported
  • For web driven invocations of an instrumented function, categorize the invocation as being "web" based, and record relevant HTTP information including the method, URI, and status code post invocation.
  • Recognize and report on fully 12 separate AWS resources that are capable of triggering a Lambda function invocation: ALB, API Gateway V1, API Gateway V2, CloudFront, CloudWatch Scheduler, DynamoStreams, Firehose, Kinesis, S3, SES, SNS, and SQS.
  • If an AWS resource based trigger is identified, record at least the type of the resource and the relevant arn. For many resources, also record additional context specific information. For example, for an S3 based invocation, record the S3 bucket name.

- Introduce support for parsing distributed tracing information for HTTP based
  trigger invocations of the instrumented Lambda function
- Both AWS API Gateway versions 1.0 and 2.0 are supported
- For web driven invocations of an instrumented function, categorize the
  invocation as being "web" based, and record relevant HTTP information
  including the method, URI, and status code post invocation.
- Recognize and report on fully 12 separate AWS resources that are capable of
  triggering a Lambda function invocation: ALB, API Gateway V1, API Gateway V2,
  CloudFront, CloudWatch Scheduler, DynamoStreams, Firehose, Kinesis, S3, SES,
  SNS, and SQS.
- If an AWS resource based trigger is identified, record at least the type
  of the resource and the relevant arn. For many resources, also record
  additional context specific information. For example, for an S3 based
  invocation, record the S3 bucket name.
- utilize the constant pointing to the JSON source file
- only read from the JSON source file once
for the dozen AWS resources under test, require Ruby 3.2+
skip unless Ruby v3.2+ (minimum available AWS Lambda runtime)
constrain all relevant tests to Ruby 3.2+
don't destructively alter the hash - use #dup instead
CHANGELOG.md Outdated Show resolved Hide resolved
Co-authored-by: Hannah Ramadan <76922290+hannahramadan@users.noreply.github.com>
Copy link
Contributor

@kaylareopelle kaylareopelle left a comment

Choose a reason for hiding this comment

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

🍛

CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
lib/new_relic/agent/serverless_handler.rb Outdated Show resolved Hide resolved
lib/new_relic/agent/serverless_handler.rb Show resolved Hide resolved
lib/new_relic/agent/serverless_handler.rb Show resolved Hide resolved
lib/new_relic/agent/serverless_handler.rb Outdated Show resolved Hide resolved
lib/new_relic/agent/serverless_handler.rb Outdated Show resolved Hide resolved
test/new_relic/agent/serverless_handler_test.rb Outdated Show resolved Hide resolved
fallwith and others added 6 commits August 16, 2024 15:32
tense fix for lambda updates

Co-authored-by: Kayla Reopelle <87386821+kaylareopelle@users.noreply.github.com>
use bullets for the lambda enhancements

Co-authored-by: Kayla Reopelle <87386821+kaylareopelle@users.noreply.github.com>
remove `rescue` that was intended to be temporary
use `each_value` instead of `each` with `_key`
the serverless handler is only used with Ruby v3.2+, so only test with
Ruby v3.2+
removed redundant freezing
Copy link

SimpleCov Report

Coverage Threshold
Line 93.75% 93%
Branch 70.3% 50%

Copy link
Contributor

@kaylareopelle kaylareopelle left a comment

Choose a reason for hiding this comment

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

Thanks, @fallwith!

@fallwith fallwith merged commit 4f76606 into dev Aug 19, 2024
32 checks passed
@fallwith fallwith deleted the sselrevres branch August 19, 2024 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants