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.
3.18.2
Added
WithDefaultFunctionLocation
trace option. This allows the caller to indicate a fall-back function to use for CLM in case no other location was found first.ThisCodeLocation
andFunctionLocation
, and trace optionsWithThisCodeLocation
andWithFunctionLocation
. These improve performance by caching the result of computing the source code location, and reuse that cached result on all subsequent calls.WithCodeLevelMetrics
trace option to force the collection of CLM data even if it would have been excluded as being out of the configured scope. (Note that CLM data are never collected if CLM is turned off globally or if theWithoutCodeLevelMetrics
option was specified for the same transaction.)CodeLevelMetricsScopeLabelToValue
function to convert a list of strings describing CLM scopes in the same manner as theNEW_RELIC_CODE_LEVEL_METRICS_SCOPE
environment variable (but as individual string parameters), returning theCodeLevelMetricsScope
value which corresponds to that set of scopes.CodeLevelMetricsScopeLabelListToValue
function which takes a comma-separated list of scope names exactly as theNEW_RELIC_CODE_LEVEL_METRICS_SCOPE
environment variable does, and returns theCodeLevelMetrics
value corresponding to that set of scopes.CodeLevelMetricsScope
value, allowing theCodeLevelMetrics
field of the configurationstruct
to be converted to or from JSON or other text-based encoding representations.Changed
WithPathPrefix
trace option now takes any number ofstring
parameters, allowing multiple path prefixes to be recognized rather than just one.FunctionLocation
function now accepts any number of function values instead of just a single one. The first such parameter which indicates a valid function, and for which CLM data are successfully obtained, is the one which will be reported.struct
fieldPathPrefix
is now deprecated with the introduction of a newPathPrefixes
field. This allows for multiple path prefixes to be given to the agent instead of only a single one.NEW_RELIC_CODE_LEVEL_METRICS_SCOPE
environment variable now accepts a comma-separated list of pathnames.Fixed
WrapHandle
andWrapHandleFunc
functions so that they consistently report the function being invoked by thehttp
framework, and improved them to use the new caching functions and ensured they are thread-safe.This release fixes issue #557.
Compatibility Notice
As of release 3.18.0, the API was extended by allowing custom options to be added to calls to the
Application.StartTransaction
method and theWrapHandle
andWrapHandleFunc
functions. They are implemented as variadic functions such that the new option parameters are optional (i.e., zero or more options may be added to the end of the function calls) to be backward-compatible with pre-3.18.0 usage of those functions. This prevents the changes from breaking existing code for typical usage of the agent. However, it does mean those functions' call signatures have changed:StartTransaction(string)
->StartTransaction(string, ...TraceOption)
WrapHandle(*Application, string, http.Handler)
->WrapHandle(*Application, string, http.Handler, ...TraceOption)
WrapHandleFunc(*Application, string, func(http.ResponseWriter, *http.Request))
->WrapHandleFunc(*Application, string, func(http.ResponseWriter, *http.Request), ...TraceOption)
If, for example, you created your own custom interface type which includes the
StartTransaction
method or something that depends on these functions' exact call semantics, that code will need to be updated accordingly before using version 3.18.0 (or later) of the Go Agent.Support Statement
New Relic recommends that you upgrade the agent regularly to ensure that you’re getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
See the Go Agent EOL Policy for details about supported versions of the Go Agent and third-party components.