-
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
v9.1.0 #1914
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
use v9.4.1.0 for the JRuby tests
maybe "retries" really means "tries"?
Remove some code that is either entirely unused or used only by unit tests, being careful to only remove private content that is not expected to be called by any other code base. In the case of code called only by unit tests, refactor the unit tests to accommodate the code removal.
Co-authored-by: James Bunch <[email protected]>
capitalize Distributed Tracing and Sidekiq. Co-authored-by: Kayla Reopelle (she/her) <[email protected]>
Remove DT warnings for sidekiq
CAT: do not insert headers for outbound gRPC requests, as gRPC libraries will validate all headers against a regex pattern that the CAT headers do not currently satisfy (CAT uses capital letters).
This test suite wasn't running on CRuby because there wasn't a check before the /etc files, which exist on my machine
Update typhoeus multiverse suite_condition
…st.rb typo fix: "headrs" -> "headers" Co-authored-by: Kayla Reopelle (she/her) <[email protected]>
Previously, AbstractRequest subclass objects were being printed where a hash of headers was expected. Now, if the headers argument is an instance of the AbstractRequest class its headers method will be called and used in the log message.
When FetchEnvVar fails, a KeyError or the explicitly specified default value is returned. We don't want to raise an unexpected error in a customer's environment. Also, fetch is slightly less performant than ENV[]
Originally we wanted to preserve some New Relic headers functionality and have the "don't include CAT headers with gRPC" logic enforced in as small of a scope as possible. Instead, the logic is now only enforced in the gRPC client instrumentation. Benefits: - Now the intrinsics headers (which would also fail a gRPC header key regex test) are also kept out - No need to perform a check for ALL net clients when only gRPC clients are impacted - CAT is considered deprecated (we now favor DT), so a high level "CAT enabled?" check is fine in this context
these were commented out during a debug session
add test:multiverse:gem_manifest rake task
test Rails EDGE with Ruby 2.7+ on nightly CI runs issue 1775 seems to have been addressed in the Rails code
restore railsedge testing
JavaScriptInstrumentor: log about custom attrs
Co-authored-by: Kayla Reopelle (she/her) <[email protected]>
…gent into test_mdx_parser
updates for error fingerprinting and user tracking
Reconcile the errors inbox functionality update changelog entries with the dev branch ones
add missing closing backtick Co-authored-by: Kayla Reopelle (she/her) <[email protected]>
Co-authored-by: James Bunch <[email protected]>
Automate release notes
tannalynn
approved these changes
Mar 29, 2023
SimpleCov Report
|
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.
Version 9.1.0 of the agent delivers support for two new errors inbox features: error fingerprinting and user tracking, identifies the Amazon Timestream data store, removes Distributed Tracing warnings from agent logs when using Sidekiq, fixes bugs, and is tested against the recently released JRuby 9.4.2.0.
Feature: Error fingerprinting - supply your own errors inbox group names
Are your error occurrences grouped poorly? Set your own error fingerprint via a callback function. A new
set_error_group_callback
public API method has been added that will accept a user defined proc. The proc will be invoked for each noticed error and whenever it returns a string, that string will be used as the error group name for the error and will take precedence over any server-side grouping that takes place with the New Relic errors inbox. This gives users much greater control over the grouping of their errors.The customer defined proc will be expected to receive exactly one input argument, a hash. The hash contains the following:
:error
#class
,#message
, and#backtrace
:customAttributes
:'request.uri'
:'http.statusCode'
:'http.method'
:'error.expected'
:'options'
NewRelic::Agent.notice_error
The callback only needs to be set once per initialization of the New Relic agent.
Example usage:
Feature: User tracking - associate errors with a user id
You can now see the number of users impacted by an error group. Identify the end user with a new
set_user_id
public API method that will accept a string representation of a user id and associate that user id with the current transaction. Transactions and errors will then have a newenduser.id
agent attribute associated with them. This will allow agent users to tag transactions and errors as belonging to given user ids in support of greater filtering and alerting capabilities.Identify Amazon Timestream when the amazon_timestream AR adapter is used
When the agent sees the activerecord-amazon-timestream-adapter gem being used, it will now identify the data store as "Timestream". Thanks very much to @wagner for contributing this enhancement! PR#1872
Bugfix: Remove Distributed Tracing related warnings from agent logs when headers are not present in Sidekiq
Previously, the agent would log a warning to
newrelic_agent.log
every time it attempted to accept empty Distributed Tracing headers from Sidekiq jobs which could result in an excessive number of warnings. Now the agent will no longer create these warnings when using Sidekiq. PR#1834Bugfix: Log request headers in debug-level logs instead of human-readable Objects
Previously, the agent sometimes received children of the
NewRelic::Agent::HTTPClients::AbstractRequest
class as an argument whenNewRelic::Agent::Transaction::DistributedTracers#log_request_headers
was called. This caused debug-level log messages that print the request headers to show human-readable Objects (ex.#<NewRelic::Agent::HTTPClients::HTTPClientRequest:0x00007fd0dda983e0>
) instead of the request headers. Now, the hash of the request headers should always be logged. PR#1839Bugfix: Fix undefined method
controller_path
logged in Action Controller InstrumentationPreviously, the agent could log an error when trying to determine the metric name in the Action Controller instrumentation if the controller class did not respond to
controller_path
. This has been resolved and the agent will no longer call this method unless the class responds to it. Thank you to @gsar for letting us know about this issue. PR#1844Bugfix: Fix Transaction#finish exception and decrease log level for related warning during async transactions
Previously, the agent would raise a non-fatal error when a segment without a parent was unfinished when the transaction completed. This error was raised while constructing a
warn
-level log message. Now that Thread instrumentation is on by default, this log message emits more frequently and is less concerning. In cases where we see a Thread, Fiber, or concurrent-ruby segment in a transaction, the message will be degraded to adebug
-level. Thanks to @NielsKSchjoedt for creating the issue and @boomer196 for testing solutions. PR#1876CI: Target JRuby 9.4.2.0
The agent is now actively being tested against JRuby 9.4.2.0. NOTE that this release does not contain any non-CI related changes for JRuby. Old agent versions are still expected to work with newer JRubies and the newest agent version is still expected to work with older JRubies.