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

Explore options for AWS Lambda instrumentation #2364

Closed
kford-newrelic opened this issue Dec 14, 2023 · 4 comments
Closed

Explore options for AWS Lambda instrumentation #2364

kford-newrelic opened this issue Dec 14, 2023 · 4 comments
Assignees
Labels
8 Story Point Estimate jan-mar qtr Possible FY Q4 candidate

Comments

@kford-newrelic
Copy link

kford-newrelic commented Dec 14, 2023

Description

Intention is that we provide the ability to instrument AWS Lambda functions. Need to identify the best way to achieve that; is it using the existing Ruby agent - perhaps in lite mode? Some other component?

Acceptance Criteria

  • Needs to power our current APM experience.
  • Needs to have a Lambda Layers deliverable

Design Consideration/Limitations

N/A

Dependencies

TBD

Additional context

Research spike. After determining what's feasible, we should identify the work needed in the future.

@workato-integration
Copy link

@kford-newrelic kford-newrelic added 2 Story Point Estimate jan-mar qtr Possible FY Q4 candidate labels Dec 14, 2023
@kford-newrelic kford-newrelic added 8 Story Point Estimate and removed 2 Story Point Estimate labels Dec 20, 2023
@kford-newrelic kford-newrelic changed the title [Spike] Explore options for AWS Lambda instrumentation Explore options for AWS Lambda instrumentation Dec 20, 2023
@fallwith fallwith self-assigned this Jan 8, 2024
@kaylareopelle kaylareopelle moved this from To do to In progress in Ruby Engineering Board Jan 16, 2024
@fallwith
Copy link
Contributor

fallwith commented Feb 9, 2024

Here's where we're at currently for alignment with the existing NR Lambda spec:

Complete

  • The absence of a config file should be expected and not warned about
  • The absence of a license key should be expected and not disable any agent functionality
  • The preconnect and connect actions should be skipped
  • The actions to connect to the collector and relay POST requests should be modified and JSON blobs should be written out locally instead
  • The JSON blobs must be formatted in a specific way with additional Lamdba specific metadata and always utilize compression
  • The presence of a function name environment variable must force serverless mode to be enabled
  • The presence of a standard NR output file location should be detected and overwrite the STDOUT output default
  • An apdex_t value must be permitted to be set via an environment variable

In Progress

  • A lambda_handler API must exist to process the AWS context object
  • Need to map 2 event types to WebTransaction and all others to Other
  • For web requests, parse out HTTP info from both the request and response
  • Extract event source information. Successfully extracted info goes in the metadata hash. Other info is omitted from the hash.
  • Cold start detection
  • Distributed tracing support via 3 new environment variables
  • Apply adaptive sampling with target (10) and target period in seconds (60) values

@fallwith
Copy link
Contributor

fallwith commented Mar 1, 2024

All agent work is now ready for review with 2474. Other NR repos for Lambda and documentation will still need to be updated.

@fallwith
Copy link
Contributor

fallwith commented Mar 1, 2024

The original scope of this one has been satisfied. We're code complete and will track testing, documentation, and updates to relevant CI/CD repos separately with other issues.

@fallwith fallwith closed this as completed Mar 1, 2024
@github-project-automation github-project-automation bot moved this from In Sprint to Code Complete/Done in Ruby Engineering Board Mar 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8 Story Point Estimate jan-mar qtr Possible FY Q4 candidate
Projects
Archived in project
Development

No branches or pull requests

2 participants