• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

Go agent release notesRSS

July 12, 2021
Go agent v3.14.0

3.14.0

Fixed

  • Integration tags and go.mod files for integrations were updated so that pkg.go.dev displays the documentation for each integration correctly.
  • The nrgrpc server integration was reporting all non-OK grpc statuses as errors. This has now been changed so that only selected grpc status codes will be reported as errors. Others are shown (via transaction attributes) as "warnings" or "informational" messages. There is a built-in set of defaults as to which status codes are reported at which severity levels, but this may be overridden by the caller as desired. Also supports custom grpc error handling functions supplied by the user.
    • This is implemented by adding WithStatusHandler() options to the end of the UnaryServerInterceptor() and StreamServerInterceptor() calls, thus extending the capability of those functions while retaining the existing functionality and usage syntax for backward compatibility.
  • Added advice on the recommended usage of the app.WaitForConnection() method. Fixes [https://github.com/newrelic/go-agent/issues/296](Issue #296)

Added

  • Added a convenience function to build distributed trace header set from a JSON string for use with the AcceptDistributedTraceHeaders() method. Normally, you must create a valid set of HTTP headers representing the trace identification information from the other trace so the new trace will be associated with it. This needs to be in a Go http.Header type value.
    • If working only in Go, this may be just fine as it is. However, if the other trace information came from another source, possibly in a different language or environment, it is often the case that the trace data is already presented to you in the form of a JSON string.
    • This new function, DistributedTraceHeadersFromJSON(), creates the required http.Header value from the JSON string without requiring manual effort on your part.
    • We also provide a new all-in-one method AcceptDistributedTraceHeadersFromJSON() to be used in place of AcceptDistributedTraceHeaders(). It accepts a JSON string rather than an http.Header, adding its trace info to the new transaction in one step.
    • Fixes [https://github.com/newrelic/go-agent/issues/331](Issue #331)

Changed

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.

June 2, 2021
Go agent v3.13.0

3.13.0

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.

May 3, 2021
Go agent v3.12.0

3.12.0

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.

March 18, 2021
Go agent v3.11.0

3.11.0

New Features

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

Changes

  • Changed logging level for messages resulting from Infinite Tracing load balancing operations. These were previously logged as errors, and 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 shows 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.

January 11, 2021
Go agent v3.10.0

3.10.0

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.

September 3, 2020
Go agent v3.9.0

3.9.0

Changes

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

The articles below provide additional instructions on support for an externally-managed named pipe in lambdas:

July 15, 2020
Go agent v3.8.1

3.8.1

Bug Fixes

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

July 1, 2020
Go agent v3.8.0

3.8.0

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.

June 18, 2020
Go agent v3.7.0

3.7.0

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.

June 9, 2020
Go agent v3.6.0

3.6.0

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 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 spans 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 spans 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. This issue has now been fixed. These attributes can now be excluded from all spans 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!

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.