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

Release 9.9.0 #2561

Merged
merged 94 commits into from
Apr 17, 2024
Merged

Release 9.9.0 #2561

merged 94 commits into from
Apr 17, 2024

Conversation

github-actions[bot]
Copy link

Automated PR for 9.9.0 release

fallwith and others added 30 commits February 9, 2024 18:13
align with existing language agent behavior for serverless mode
This is the method that will be called by the New Relic Ruby Lambda
layer handler (which wraps the customer's handler)
wire up the cold start agent attribute and the supportability metric
incrementing
additional prep for layer creation
test all ServerlessHandler branches, introduce fixes
I'm still not on board with this rule, but we'll debate it somewhere
else
Given that the real (customer's) handler exists at the toplevel, be
cautious to avoid a naming based collision by using "new_relic" in our
entrypoint's name
have all 3 pieces (customer function, wrapper script, ServerlessHandler)
all use named arguments
Update the tests now that the `DistributedTracePayload#connected` helper
is no longer a thing and we've standardized on the single central
chokepoint of `#ready?` defined on the agent class instance.
Additional serverless/non-serverless compatiblity refactorings - the
test suite did good
the 3 method stub approach requires Minitest v5+
Grammar update

Co-authored-by: Kayla Reopelle (she/her) <87386821+kaylareopelle@users.noreply.github.com>
In the description (which unlike the parameter name can easily be changed in the future without deprecation), denote that only AWS Lambda is supported for serverless currently and that this config is expected to be used only by users of the NR Ruby layer.
- Force every harvester to output data immediately
- Support namespaced customer lambda function handler methods
- Enhance tests with integration tests for errors and logs, new helpers, etc.
Given that all serverless content is written to local output immediately
upon wrapped function completion, we can simplify things by not having
the worker thread loop for harvesting at all
- use STDOUT for logging without a warning and without bothering to
  check for writable paths
- relegate serverless related env var checking to the handler class and
  have the config class and others call the handler class defined check
- do not emit logger 'info' statements and do not set config hash values
  for unknown env vars that start with 'NEW_RELIC_'. With Lambda,
  multiple non agent related 'NEW_RELIC_' env vars are used by the layer
  for the extension and the wrapper script.
- set the environment to 'serverless' instead of 'development'
- recognize 'serverless' as a dispatcher
Align with the cross-agent spec format calling for each data type
payload to be stored as values in a data type name keyed hash as the
last object in the array written to the named pipe.

Align with the cross-agent spec on using internal version '2' instead of
'1'.
(resuling from linting with a better RuboCop config)
When serverless mode is enabled...

- skip efforts to parse a YAML config file
- skip efforts to apply high security mode config
- after harvesting, let the harvester know we don't have a regular
  harvester thread on the go
- The transaction's guid should be present for both the ErrorTrace and
  TransactionError types
- Be sure (tests added, no lib code altered) that distributed tracing
  isn't required for the transaction guid to be populated
- switch from payload format v2 to v1 to align with the other dynamic
  language based agents
- don't send log event data
- remove metadata attributes not used by the Node.js agent
more serverless handler changes for output format v1, agent attributes
work
write instead of puts, debug output
`Base64.encode64` -> `Base64.strict_encode64`
kaylareopelle and others added 21 commits April 11, 2024 12:56
Co-authored-by: Hannah Ramadan <76922290+hannahramadan@users.noreply.github.com>
Not sure where the markdown linting is coming from on my editor.

Undoing those changes so that we can tackle them at a later date.
…tory_from_project_root

remove 'config' dir from project root
::NewRelic -> NewRelic
Remove the class specific config validation that is now redundant with
the config's own allowlist validation
Now that the config handles the allowlist validation, remove the test
expecting the 8T class to do so
Fix unused variable warnings in unit tests
Configuration: support allowlists
entry for serverless mode
Update to use v4 of the GitHub Action "checkout"
GHA checkout@v3 -> checkout@v4
Copy link
Author

SimpleCov Report

Coverage Threshold
Line 93.77% 93%
Branch 71.42% 71%

@fallwith fallwith marked this pull request as ready for review April 17, 2024 17:05
@fallwith fallwith merged commit ccde782 into main Apr 17, 2024
260 checks passed
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.

None yet

4 participants