- Added support for github.com/gin-gonic/gin
in the new
nrgin
package.
-
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.
- Added support for gorilla/mux in the new
nrgorilla
package.
-
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.
-
Added support for Windows. Thanks to @ianomad and @lvxv for the contributions.
-
The number of heap objects allocated is recorded in the
Memory/Heap/AllocatedObjects
metric. This will soon be displayed on the "Go runtime" page. -
If the DatastoreSegment fields
Host
andPortPathOrID
are not provided, they will no longer appear as"unknown"
in transaction traces and slow query traces. -
Stack traces will now be nicely aligned in the APM UI.
-
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. Slow Query Documentation
-
Added new DatastoreSegment fields
ParameterizedQuery
,QueryParameters
,Host
,PortPathOrID
, andDatabaseName
. These fields will be shown in transaction traces and in slow query traces.
- Breaking Change: Added a timeout parameter to the
Application.Shutdown
method.
-
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 github.com/mgutz/logxi. See _integrations/nrlogxi/v1/nrlogxi.go.
-
Fixed bug where Transaction Trace thresholds based upon Apdex were not being applied to background transactions.
-
Added support for Transaction Traces.
-
Stack trace filenames have been shortened: Any thing preceding the first
/src/
is now removed.
-
Removed
BetaToken
from theConfig
structure. -
Breaking Datastore Change:
datastore
package contents moved to top levelnewrelic
package.datastore.MySQL
has becomenewrelic.DatastoreMySQL
. -
Breaking Attributes Change:
attributes
package contents moved to top levelnewrelic
package.attributes.ResponseCode
has becomenewrelic.AttributeResponseCode
. Some attribute name constants have been shortened. -
Added "runtime.NumCPU" to the environment tab. Thanks sergeylanzman for the contribution.
-
Prefixed the environment tab values "Compiler", "GOARCH", "GOOS", and "Version" with "runtime.".
-
Breaking Segments API Changes: The segments API has been rewritten with the goal of being easier to use and to avoid nil Transaction checks. See:
-
Updated LICENSE.txt with contribution information.
- Fixed a bug causing the
Config
to fail to serialize into JSON when theTransport
field was populated.
-
Eliminated
api
,version
, andlog
packages.Version
,Config
,Application
, andTransaction
now live in the top levelnewrelic
package. If you imported theattributes
ordatastore
packages then you will need to removeapi
from the import path. -
Breaking Logging Changes
Logging is no longer controlled though a single global. Instead, logging is
configured on a per-application basis with the new Config.Logger
field. The
logger is an interface described in log.go. See
GUIDE.md#logging.
- No longer create "GC/System/Pauses" metric if no GC pauses happened.
-
Introduced beta token to support our beta program.
-
Rename
Config.Development
toConfig.Enabled
(and change boolean direction). -
Fixed a bug where exclusive time could be incorrect if segments were not ended.
-
Fix unit tests broken in 1.6.
-
In
Config.Enabled = false
mode, the license must be the proper length or empty. -
Added runtime statistics for CPU/memory usage, garbage collection, and number of goroutines.
-
Added segment timing methods to
Transaction
. These methods must only be used in a single goroutine. -
The license length check will not be performed in
Development
mode. -
Rename
SetLogFile
toSetFile
to reduce redundancy. -
Added
DebugEnabled
logging guard to reduce overhead. -
Transaction
now implements anIgnore
method which will prevent any of the transaction's data from being recorded. -
Transaction
now implements a subset of the interfaceshttp.CloseNotifier
,http.Flusher
,http.Hijacker
, andio.ReaderFrom
to match the behavior of its wrappedhttp.ResponseWriter
. -
Changed project name from
go-sdk
togo-agent
.
- Queue time support added: if the inbound request contains an
"X-Request-Start"
or"X-Queue-Start"
header with a unix timestamp, the agent will report queue time metrics. Queue time will appear on the application overview chart. The timestamp may fractional seconds, milliseconds, or microseconds: the agent will deduce the correct units.