-
Notifications
You must be signed in to change notification settings - Fork 600
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
Release 9.9.0 #2561
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) <[email protected]>
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)
Serverless mode enhancements
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
Reorder dispatchers check
`Base64.encode64` -> `Base64.strict_encode64`
Co-authored-by: Hannah Ramadan <[email protected]>
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.
Support Elasticsearch 8.13.0
…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
Update watched gems
entry for serverless mode
serverless changelog entry
Prerelease 9.9.0-pre
Update to use v4 of the GitHub Action "checkout"
GHA checkout@v3 -> checkout@v4
SimpleCov Report
|
fallwith
requested review from
fallwith,
hannahramadan,
kaylareopelle and
tannalynn
as code owners
April 17, 2024 17:05
hannahramadan
approved these changes
Apr 17, 2024
fallwith
approved these changes
Apr 17, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Automated PR for 9.9.0 release