2.0.0 New
The
End()
functions defined on theSegment
,DatastoreSegment
, andExternalSegment
types now receive the segment as a pointer, rather than as a value. This prevents unexpected behaviour when a call toEnd()
is deferred before one or more fields are changed on the segment.In practice, this is likely to only affect this pattern:
defer newrelic.DatastoreSegment{// ...}.End()Instead, you will now need to separate the literal from the deferred call:
ds := newrelic.DatastoreSegment{// ...}defer ds.End()When creating custom and external segments, we recommend using
newrelic.StartSegment()
andnewrelic.StartExternalSegment()
, respectively.Added GoDoc badge to README. Thanks to @mrhwick for the contribution!
Config.UseTLS
configuration setting has been removed to increase security. TLS will now always be used in communication with New Relic Servers.
New Features
- Added support for Cross Application Tracing (CAT). Please refer to the upgrading section of the guide for more detail on how to ensure you get the most out of the Go agent's new CAT support.
- The agent now collects additional metadata when running within Amazon Web Services, Google Cloud Platform, Microsoft Azure, and Pivotal Cloud Foundry. This information is used to provide an enhanced experience when the agent is deployed on those platforms.
New
- Added new RecordCustomMetric method to Application. This functionality can be used to track averages or counters without using custom events. See Custom Metric Documentation
- Fixed import needed for
logrus
. The importSirupsen/logrus
had been renamed tosirupsen/logrus
. Thanks to @alfred-landrum for spotting this. - Added ErrorAttributer, an optional interface that can be implemented by errors provided to
Transaction.NoticeError
to attach additional attributes. These attributes are subject to attribute configuration. - Added Error, a type that allows direct control of error fields.
- Updated license to address scope of usage.
New
- Added support for github.com/gin-gonic/gin in the new
nrgin
package.
Notes
- Fixed incorrect metric rule application when the metric rule is flagged to terminate and matches but the name is unchanged.
Segment.End()
,DatastoreSegment.End()
, andExternalSegment.End()
methods now return an error which may be helpful in diagnosing situations where segment data is unexpectedly missing.
Notes
- Added support for gorilla/mux in the new
nrgorilla
package.
Notes
Added support for custom error messages and stack traces. Errors provided to
Transaction.NoticeError
will now be checked to see if they implement ErrorClasser and/or StackTracer. Thanks to @fgrosse for this proposal.Added support for pkg/errors. Thanks to @fgrosse for this work.
Fixed tests for Go 1.8.
Notes
- Added support for slow query traces. Slow datastore segments will now generate slow query traces viewable on the datastore tab. These traces include a stack trace and help you to debug slow datastore activity.
- Added new DatastoreSegment fields
ParameterizedQuery
,QueryParameters
,Host
,PortPathOrID
, andDatabaseName
. These fields will be shown in transaction traces and in slow query traces.
Notes
- Added a timeout parameter to the Application.Shutdown method.
Notes
Added support for instrumenting short-lived processes:
- The new
Application.Shutdown
method allows applications to report data to New Relic without waiting a full minute. - The new
Application.WaitForConnection
method allows your process to defer instrumentation until the application is connected and ready to gather data. - Full documentation here: application.go
- Example short-lived process: examples/short-lived-process/main.go
- The new
Error metrics are no longer created when
ErrorCollector.Enabled = false
.Added support for http://wwwgithub.com/mgutz/logxi. See https://github.com/newrelic/go-agent/blob/master/_integrations/nrlogxi/v1/nrlogxi.go.
Fixed bug where Transaction Trace thresholds based upon Apdex were not being applied to background transactions.