Skip to content

Releases: newrelic/go-agent

Release v3.13.0

02 Jun 21:56
d083918
Compare
Choose a tag to compare

Fixed

  • Replaced the NR AWS SDK V2 integration for the v3 agent with a new version that works. See the v3/integrations/nrawssdk-v2/example/main.go file for an example of how to use it. Issues #250 and #288 are fixed by this PR. #309

  • Fixes issue #221: grpc errors reported in code watched by UnaryServerInterceptor() or StreamServerInterceptor() now create error events which are reported to the UI with the error message string included. #317

  • Fixes documentation in GUIDE.md for txn.StartExternalSegment() to reflect the v3 usage. Thanks to @abeltay for calling this to our attention and submitting PR #320.

Changes

  • The v3/examples/server/main.go example now uses newrelic.ConfigFromEnvironment(), rather than explicitly pulling in the license key with newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")). The team is starting to use this as a general systems integration testing script, and this facilitates testing with different settings enabled.

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.

Release v3.12.0

03 May 17:41
5a0eaeb
Compare
Choose a tag to compare

Changes

  • Updated CHANGELOG.md release notes language, to correct typographical errors and clean up grammar. #289

Fixed

  • When using DAX to query a dynamodb table, the New Relic instrumentation panics with a nil dereference error. This was due to the way that the request is made internally such that there is no HTTPRequest.Header defined, but one was expected. This correction checks for the existence of that header and takes an appropriate course of action if one is not found. #287 Thanks to @odannyc for reporting the issue and providing a pull request with a suggested fix.

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.

Release v3.11.0

18 Mar 23:16
06c801d
Compare
Choose a tag to compare

New Features

  • Aerospike is now included on the list of recognized datastore names. Thanks @vkartik97 for your PR! #233
  • Added support for Verison 8 of go-redis. Thanks @ilmimris for adding this instrumentation! #251

Changes

  • Changed logging level for messages resulting from Infinite Tracing load balancing operations which were previously logged as errors; now they are debugging messages. #276

Fixed

  • When the agent is configured with cfg.ErrorCollector.RecordPanics set to true, panics would be recorded by New Relic, but stack traces would not be logged as the Go Runtime usually does. The agent now logs stack traces from within its panic handler, providing similar functionality. #278
  • Added license files to some integrations packages to ensure compatibility with package.go.dev. Now the documentation for our integrations show up again on go.docs.

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.

Release v3.10.0

11 Jan 23:30
7873fcc
Compare
Choose a tag to compare

New Features

  • To keep up with the latest security protocols implemented by Amazon Web
    Services, the agent now uses AWS IMDSv2 to find utilization data. #249

Changes

  • Updated the locations of our license files so that Go docs https://pkg.go.dev
    will display our agent. Thanks @tydavis for your PR to fix this! #254
  • Added an Open Source repo linter GitHub action that runs on push. #262
  • Updated the README.md file to correctly show the support resources from New Relic. #255

Support statement

  • New Relic recommends that you upgrade the agent regularly and at a minimum every 3 months.
    As of this release, the oldest supported version is 2.2.0.

Release v3.9.0

03 Sep 21:10
a213648
Compare
Choose a tag to compare

3.9.0

Changes

  • When sending Serverless telemetry using the nrlambda integration, support an externally-managed named pipe.

Release v3.8.1

15 Jul 18:49
0a47b5f
Compare
Choose a tag to compare

Bug Fixes

  • Fixed an issue that could cause orphaned Distributed Trace spans when using
    SQL instrumentation like nrmysql.

Release v3.8.0

01 Jul 17:40
Compare
Choose a tag to compare

Changes

  • When marking a transaction as a web transaction using Transaction.SetWebRequest, it is now possible to include a Host field in the WebRequest struct, which defaults to the empty string.

Bug Fixes

  • The Host header is now being correctly captured and recorded in the request.headers.host attribute, as described
    here.
  • Previously, the timestamps on Spans and Transactions were being written using different data types, which sometimes caused rounding errors that could cause spans to be offset incorrectly in the UI. This has been fixed.

Release v3.7.0

18 Jun 16:38
Compare
Choose a tag to compare

Changes

  • When Config.Transport is nil, no longer use the http.DefaultTransport
    when communicating with the New Relic backend. This addresses an issue with
    shared transports as described in golang/go#33006.

  • If a timeout occurs when attempting to send data to the New Relic backend,
    instead of dropping the data, we save it and attempt to send it with the
    next harvest. Note data retention limits still apply and the agent will
    still start to drop data when these limits are reached. We attempt to keep
    the highest priority events and traces.

Release v3.6.0

09 Jun 21:11
Compare
Choose a tag to compare

New Features

  • Added support for adding custom attributes directly to
    spans
    .
    These attributes will be visible when looking at spans in the Distributed
    Tracing UI.

    Example:

    txn := newrelic.FromContext(r.Context())
    sgmt := txn.StartSegment("segment1")
    defer sgmt.End()
    sgmt.AddAttribute("mySpanString", "hello")
    sgmt.AddAttribute("mySpanInt", 123)
  • Custom attributes added to the transaction with txn.AddAttribute are now
    also added to the root Span Event and will be visible when looking at the
    span in the Distributed Tracing UI. These custom attributes can be disabled
    from all destinations using Config.Attributes.Exclude or disabled from Span
    Events specifically using Config.SpanEvents.Attributes.Exclude.

  • Agent attributes added to the transaction are now also added to the root Span
    Event and will be visible when looking at the span in the Distributed Tracing
    UI. These attributes include the request.uri and the request.method along
    with all other attributes listed in the attributes section of our
    godocs
    .
    These agent attributes can be disabled from all destinations using
    Config.Attributes.Exclude or disabled from Span Events specifically using
    Config.SpanEvents.Attributes.Exclude.

Bug Fixes

  • Fixed an issue where it was impossible to exclude the attributes
    error.class and error.message from the root Span Event. This issue has
    now been fixed. These attributes can now be excluded from all Span Events
    using Config.Attributes.Exclude or Config.SpanEvents.Attributes.Exclude.

  • Fixed an issue that caused Go's data race warnings to trigger in certain situations
    when using the newrelic.NewRoundTripper. There were no reports of actual data corruption,
    but now the warnings should be resolved. Thank you to @blixt for bringing this to our
    attention!

Release v3.5.0

20 May 22:10
Compare
Choose a tag to compare

New Features

  • Added support for Infinite Tracing on New Relic
    Edge
    .

    Infinite Tracing observes 100% of your distributed traces and provides
    visualizations for the most actionable data so you have the examples of errors
    and long-running traces so you can better diagnose and troubleshoot your systems.

    You configure your
    agent

    to send traces to a trace observer in New Relic Edge. You view your
    distributed traces through the New Relic’s UI. There is no need to install a
    collector on your network.

    Infinite Tracing is currently available on a sign-up basis. If you would like to
    participate, please contact your sales representative.

    As part of this change, the Go Agent now has an added dependency on gRPC.
    This is true whether or not you enable the Infinite Tracing feature. The gRPC dependencies include these two libraries:

    You can see the changes in the go.mod file

Changes

  • nrgin.Middleware
    uses
    Context.FullPath()
    for transaction names when using Gin version 1.5.0 or greater. Gin
    transactions were formerly named after the
    Context.HandlerName(),
    which uses reflection. This change improves transaction naming and reduces
    overhead. Please note that because your transaction names will change, you
    may have to update any related dashboards and alerts to match the new name.
    If you wish to continue using Context.HandlerName() for your transaction
    names, use
    nrgin.MiddlewareHandlerTxnNames
    instead.

    // Transactions previously named
    "GET main.handleGetUsers"
    // will be change to something like this match the full path
    "GET /user/:id"

    Note: As part of agent release v3.4.0, a v2.0.0 tag was added to the nrgin
    package. When using go modules however, it was impossible to install this
    latest version of nrgi