• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Go agent release notesRSS

May 20, 2020
Go agent v3.5.0

3.5.0

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.

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 nrgin. The v2.0.0 tag has been removed and replaced with v1.1.0.

March 23, 2020
Go agent v3.4.0

3.4.0

New Features

  • Attribute http.statusCode has been added to external span events representing the status code on an http response. This attribute will be included when added to an ExternalSegment in one of these three ways:

    1. Using NewRoundTripper with your http.Client
    2. Including the http.Response as a field on your ExternalSegment
    3. Using the new ExternalSegment.SetStatusCode API to set the status code directly

    To exclude the http.statusCode attribute from span events, update your agent configuration like so, where cfg is your newrelic.Config object.

    cfg.SpanEvents.Attributes.Exclude = append(cfg.SpanEvents.Attributes.Exclude, newrelic.SpanAttributeHTTPStatusCode)
  • Error attributes error.class and error.message are now included on the span event in which the error was noticed, or on the root span if an error occurs in a transaction with no segments (no chid spans). Only the most recent error information is added to the attributes; prior errors on the same span are overwritten.

    To exclude the error.class and/or error.message attributes from span events, update your agent configuration like so, where cfg is your newrelic.Config object.

    cfg.SpanEvents.Attributes.Exclude = append(cfg.SpanEvents.Attributes.Exclude, newrelic.newrelic.SpanAttributeErrorClass, newrelic.SpanAttributeErrorMessage)

Changes

  • Use 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.

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

February 11, 2020
Go agent v3.3.0

3.3.0

New Features

Changes

  • When using newrelic.StartExternalSegment or newrelic.NewRoundTripper, if existing cross application tracing or distributed tracing headers are present on the request, they will be replaced instead of added.
  • The FromContext API which allows you to pull a Transaction from a context.Context will no longer panic if the provided context is nil. In this case, a nil is returned.

Known Issues and Workarounds

If a .NET agent is initiating distributed traces as the root service, you must update that .NET agent to version 8.24 or later before upgrading your downstream Go New Relic agents to this agent release.

January 27, 2020
Go agent v3.2.0

3.2.0

New Features

Changes

  • Updated Gorilla instrumentation to include request time spent in middlewares. Added new nrgorilla.Middleware and deprecated nrgorilla.InstrumentRoutes. Register the new middleware as your first middleware using Router.Use. See the godocs examples for more details.

    r := mux.NewRouter()
    // Always register the nrgorilla.Middleware first.
    r.Use(nrgorilla.Middleware(app))
    // All handlers and custom middlewares will be instrumented. The
    // transaction will be available in the Request's context.
    r.Use(MyCustomMiddleware)
    r.Handle("/", makeHandler("index"))
    // The NotFoundHandler and MethodNotAllowedHandler must be instrumented
    // separately using newrelic.WrapHandle. The second argument to
    // newrelic.WrapHandle is used as the transaction name; the string returned
    // from newrelic.WrapHandle should be ignored.
    _, r.NotFoundHandler = newrelic.WrapHandle(app, "NotFoundHandler", makeHandler("not found"))
    _, r.MethodNotAllowedHandler = newrelic.WrapHandle(app, "MethodNotAllowedHandler", makeHandler("method not allowed"))
    http.ListenAndServe(":8000", r)

Known Issues and Workarounds

If a .NET agent is initiating distributed traces as the root service, you must update that .NET agent to version 8.24 or later before upgrading your downstream Go New Relic agents to this agent release.

January 15, 2020
Go agent v3.1.0

New Features

  • Support for W3C Trace Context, with easy upgrade from New Relic trace context.

    Distributed Tracing now supports W3C Trace Context headers for HTTP and gRPC protocols when distributed tracing is enabled. Our implementation can accept and emit both W3C trace header format and New Relic trace header format. This simplifies agent upgrades, allowing trace context to be propagated between services with older and newer releases of New Relic agents. W3C trace header format will always be accepted and emitted. New Relic trace header format will be accepted, and you can optionally disable emission of the New Relic trace header format.

    When distributed tracing is enabled with Config.DistributedTracer.Enabled = true, the Go agent will now accept W3C's traceparent and tracestate headers when calling Transaction.AcceptDistributedTraceHeaders. When calling Transaction.InsertDistributedTraceHeaders, the Go agent will include the W3C headers along with the New Relic distributed tracing header, unless the New Relic trace header format is disabled using Config.DistributedTracer.ExcludeNewRelicHeader = true.

    Also, see Knowns Issues and Workarounds.

  • Added support for elastic/go-elasticsearch in the new v3/integrations/nrelasticsearch-v7 package.

Known Issues and Workarounds

If a .NET agent is initiating distributed traces as the root service, you must update that .NET agent to version 8.24 or later before upgrading your downstream Go New Relic agents to this agent release.

December 17, 2019
Go agent v3.0.0

3.0.0

We are pleased to announce the release of Go Agent v3.0.0! This is a major release that includes some breaking changes that will simplify your future use of the Go Agent.

Please pay close attention to the list of Changes.

Changes

  • A full list of changes and a step by step checklist on how to upgrade can be found in the v3 Migration Guide.

New Features

  • Support for Go Modules. Our Go agent integration packages support frameworks and libraries which are changing over time. With support for Go Modules, we are now able to release instrumentation packages for multiple versions of frameworks and libraries with a single agent release; and support operation of the Go agent in Go Modules environments. This affects naming of our integration packages, as described in the v3 Migration Guide (see under "Changes" above).
  • Detect and set hostnames based on Heroku dyno names. When deploying an application in Heroku, the hostnames collected will now match the dyno name. This serves to greatly improve the usability of the servers list in APM since dyno names are often sporadic or fleeting in nature. The feature is controlled by two new configuration options Config.Heroku.UseDynoNames and Config.Heroku.DynoNamePrefixesToShorten.

December 11, 2019
Go agent v2.16.3

Notes

New Relic's Go agent v3.0 is currently available for review and beta testing. Your use of this pre-release is at your own risk. New Relic disclaims all warranties, express or implied, regarding the beta release.

If you do not manually take steps to use the new v3 folder you will not see any changes in your agent.

This is the third release of the pre-release of Go agent v3.0. It includes changes due to user feedback during the pre-release. The existing agent in`"github.com/newrelic/go-agent"` is unchanged.

Fixes

The Go agent v3.0 code in the v3 folder has the following changes:

December 10, 2019
Go agent v2.16.2

2.16.2

New Relic's Go agent v3.0 is currently available for review and beta testing. Your use of this pre-release is at your own risk. New Relic disclaims all warranties, express or implied, regarding the beta release.

If you do not manually take steps to use the new v3 folder you will not see any changes in your agent.

This is the second release of the pre-release of Go agent v3.0. It includes changes due to user feedback during the pre-release. The existing agent in "github.com/newrelic/go-agent" is unchanged. The Go agent v3.0 code in the v3 folder has the following changes:

  • Transaction names created by WrapHandle, WrapHandleFunc, nrecho-v3, nrecho-v4, nrgorilla, and nrgin now include the HTTP method. For example, the following code:

    http.HandleFunc(newrelic.WrapHandleFunc(app, "/users", usersHandler))

    now creates a metric called WebTransaction/Go/GET /users instead of WebTransaction/Go/users. As a result of this change, you may need to update your alerts and dashboards.

  • The ConfigFromEnvironment config option is now strict. If one of the environment variables, such as NEW_RELIC_DISTRIBUTED_TRACING_ENABLED, cannot be parsed, then Config.Error will be populated and NewApplication will return an error.

  • ConfigFromEnvironment now processes NEW_RELIC_ATTRIBUTES_EXCLUDE and NEW_RELIC_ATTRIBUTES_INCLUDE.

December 2, 2019
Go agent v2.16.1

2.16.1

뉴렐릭의 Go 에이전트 v3.0은 현재 검토 및 베타 테스트용으로 제공됩니다. 이 시험판 사용에 따른 위험 부담은 사용자에게 있습니다. 뉴렐릭은 베타 릴리스와 관련하여 명시적이거나 묵시적인 모든 보증을 부인합니다.

아래에 설명된 대로 새로운 v3 폴더를 사용하기 위한 단계를 수동으로 수행하지 않으면, 에이전트에서 아무런 변경 사항도 볼 수 없습니다.

이번 2.16.1 릴리스에는 Go 에이전트 v3.0의 시험판이 포함된 새로운 v3.0 폴더가 포함되어 있으며, Go 에이전트 v3.0에는 주요 변경 사항이 포함되어 있습니다. 피드백을 기다리고 있으며, 공식 릴리스 전에 이를 검토하고 변경 사항을 테스트해 보시기를 바랍니다.

이것은 공식 3.0 릴리스가 아니며, 제안된 변경 사항에 대한 피드백을 수집하기 위한 수단일 뿐입니다. Github에서 3.0으로 태그가 지정되지 않았으며, Go mod 파일에서 3.0 릴리스를 아직 업데이트할 수 없습니다. 이러한 변경 사항을 테스트하려면 [go-src-dir]/src/github.com/newrelic/go-agent 아래의 Go 소스 디렉터리에 이 리포지터리를 복제해야 합니다. 소스를 체크아웃한 후에는 v3/MIGRATION.md의 두 번째 섹션에 있는 단계를 따라야 합니다.

변경 사항 및 설치 지침 목록은 v3 폴더에 포함되어 있으며 여기에서 확인할 수 있습니다

Go 에이전트 v3.0의 이 시험판(베타) 버전에 대해 다음 사항에 유의하십시오:

  • v3 폴더의 변경 사항은 주요 3.0 릴리스로 {'-'}2주 후에 릴리스할 것으로 예상되는 내용을 나타냅니다. 그러나 변경 사항에 대한 피드백을 요청하고 있으며 공식 릴리스 전에 일부 호환성을 깨는 변경 사항이 있을 가능성이 있습니다.
  • 이것은 공식 3.0 릴리스가 아니며, Github에서 3.0으로 태그가 지정되지 않았고, Go mod 파일에서 3.0 릴리스를 아직 업데이트할 수 없습니다.
  • 이러한 변경 사항을 테스트하고 문제나 질문이 발생하거나 전달하고 싶은 피드백이 있는 경우 여기에서 이슈를 열고 3.0 레이블을 포함해 주십시오.
    • 일반적인(3.0이 아닌) 문제/질문은 당사의 지원 사이트 또는 커뮤니티 포럼을 통해 보고해 주시기 바랍니다. 3.0 사전 릴리스와 관련된 질문은 GitHub를 통해서만 직접 보고해 주시기 바랍니다.

새로운 기능

  • V3는 Go 모듈에 대한 지원을 추가합니다. go.mod 파일은 v3 폴더에 있지만, 3.0 릴리스가 공식적으로 완전히 태그될 때까지 사용할 수 없습니다. 다양한 모듈에 사용할 계획인 버전 태그의 예는 다음과 같습니다:

    • v3.0.0
    • v3/integrations/nrecho-v3/v1.0.0
    • v3/integrations/nrecho-v4/v1.0.0

변화

  • 이 변경 사항은 이전에 이 이슈에서 피드백을 요청했던 내용입니다.
  • 포함된 변경 사항의 전체 목록과 업그레이드 체크리스트는 v3/MIGRATION.md에서 확인할 수 있습니다.

Droits d'auteur © 2026 New Relic Inc.

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