github.com/lulzWill/go-agent@v2.1.2+incompatible/CHANGELOG.md (about) 1 ## ChangeLog 2 3 ## 2.0.0 4 5 * The `End()` functions defined on the `Segment`, `DatastoreSegment`, and 6 `ExternalSegment` types now receive the segment as a pointer, rather than as 7 a value. This prevents unexpected behaviour when a call to `End()` is 8 deferred before one or more fields are changed on the segment. 9 10 In practice, this is likely to only affect this pattern: 11 12 ```go 13 defer newrelic.DatastoreSegment{ 14 // ... 15 }.End() 16 ``` 17 18 Instead, you will now need to separate the literal from the deferred call: 19 20 ```go 21 ds := newrelic.DatastoreSegment{ 22 // ... 23 } 24 defer ds.End() 25 ``` 26 27 When creating custom and external segments, we recommend using 28 [`newrelic.StartSegment()`](https://godoc.org/github.com/lulzWill/go-agent#StartSegment) 29 and 30 [`newrelic.StartExternalSegment()`](https://godoc.org/github.com/lulzWill/go-agent#StartExternalSegment), 31 respectively. 32 33 * Added GoDoc badge to README. Thanks to @mrhwick for the contribution! 34 35 * `Config.UseTLS` configuration setting has been removed to increase security. 36 TLS will now always be used in communication with New Relic Servers. 37 38 ## 1.11.0 39 40 * We've closed the Issues tab on GitHub. Please visit our 41 [support site](https://support.newrelic.com) to get timely help with any 42 problems you're having, or to report issues. 43 44 * Added support for Cross Application Tracing (CAT). Please refer to the 45 [upgrading section of the guide](GUIDE.md#upgrading-applications-to-support-cross-application-tracing) 46 for more detail on how to ensure you get the most out of the Go agent's new 47 CAT support. 48 49 * The agent now collects additional metadata when running within Amazon Web 50 Services, Google Cloud Platform, Microsoft Azure, and Pivotal Cloud Foundry. 51 This information is used to provide an enhanced experience when the agent is 52 deployed on those platforms. 53 54 ## 1.10.0 55 56 * Added new `RecordCustomMetric` method to [Application](https://godoc.org/github.com/lulzWill/go-agent#Application). 57 This functionality can be used to track averages or counters without using 58 custom events. 59 * [Custom Metric Documentation](https://docs.newrelic.com/docs/agents/manage-apm-agents/agent-data/collect-custom-metrics) 60 61 * Fixed import needed for logrus. The import Sirupsen/logrus had been renamed to sirupsen/logrus. 62 Thanks to @alfred-landrum for spotting this. 63 64 * Added [ErrorAttributer](https://godoc.org/github.com/lulzWill/go-agent#ErrorAttributer), 65 an optional interface that can be implemented by errors provided to 66 `Transaction.NoticeError` to attach additional attributes. These attributes are 67 subject to attribute configuration. 68 69 * Added [Error](https://godoc.org/github.com/lulzWill/go-agent#Error), a type 70 that allows direct control of error fields. Example use: 71 72 ```go 73 txn.NoticeError(newrelic.Error{ 74 // Message is returned by the Error() method. 75 Message: "error message: something went very wrong", 76 Class: "errors are aggregated by class", 77 Attributes: map[string]interface{}{ 78 "important_number": 97232, 79 "relevant_string": "zap", 80 }, 81 }) 82 ``` 83 84 * Updated license to address scope of usage. 85 86 ## 1.9.0 87 88 * Added support for [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) 89 in the new `nrgin` package. 90 * [Documentation](http://godoc.org/github.com/lulzWill/go-agent/_integrations/nrgin/v1) 91 * [Example](examples/_gin/main.go) 92 93 ## 1.8.0 94 95 * Fixed incorrect metric rule application when the metric rule is flagged to 96 terminate and matches but the name is unchanged. 97 98 * `Segment.End()`, `DatastoreSegment.End()`, and `ExternalSegment.End()` methods now return an 99 error which may be helpful in diagnosing situations where segment data is unexpectedly missing. 100 101 ## 1.7.0 102 103 * Added support for [gorilla/mux](http://github.com/gorilla/mux) in the new `nrgorilla` 104 package. 105 * [Documentation](http://godoc.org/github.com/lulzWill/go-agent/_integrations/nrgorilla/v1) 106 * [Example](examples/_gorilla/main.go) 107 108 ## 1.6.0 109 110 * Added support for custom error messages and stack traces. Errors provided 111 to `Transaction.NoticeError` will now be checked to see if 112 they implement [ErrorClasser](https://godoc.org/github.com/lulzWill/go-agent#ErrorClasser) 113 and/or [StackTracer](https://godoc.org/github.com/lulzWill/go-agent#StackTracer). 114 Thanks to @fgrosse for this proposal. 115 116 * Added support for [pkg/errors](https://github.com/pkg/errors). Thanks to 117 @fgrosse for this work. 118 * [documentation](https://godoc.org/github.com/lulzWill/go-agent/_integrations/nrpkgerrors) 119 * [example](https://github.com/lulzWill/go-agent/blob/master/_integrations/nrpkgerrors/nrpkgerrors.go) 120 121 * Fixed tests for Go 1.8. 122 123 ## 1.5.0 124 125 * Added support for Windows. Thanks to @ianomad and @lvxv for the contributions. 126 127 * The number of heap objects allocated is recorded in the 128 `Memory/Heap/AllocatedObjects` metric. This will soon be displayed on the "Go 129 runtime" page. 130 131 * If the [DatastoreSegment](https://godoc.org/github.com/lulzWill/go-agent#DatastoreSegment) 132 fields `Host` and `PortPathOrID` are not provided, they will no longer appear 133 as `"unknown"` in transaction traces and slow query traces. 134 135 * Stack traces will now be nicely aligned in the APM UI. 136 137 ## 1.4.0 138 139 * Added support for slow query traces. Slow datastore segments will now 140 generate slow query traces viewable on the datastore tab. These traces include 141 a stack trace and help you to debug slow datastore activity. 142 [Slow Query Documentation](https://docs.newrelic.com/docs/apm/applications-menu/monitoring/viewing-slow-query-details) 143 144 * Added new 145 [DatastoreSegment](https://godoc.org/github.com/lulzWill/go-agent#DatastoreSegment) 146 fields `ParameterizedQuery`, `QueryParameters`, `Host`, `PortPathOrID`, and 147 `DatabaseName`. These fields will be shown in transaction traces and in slow 148 query traces. 149 150 ## 1.3.0 151 152 * Breaking Change: Added a timeout parameter to the `Application.Shutdown` method. 153 154 ## 1.2.0 155 156 * Added support for instrumenting short-lived processes: 157 * The new `Application.Shutdown` method allows applications to report 158 data to New Relic without waiting a full minute. 159 * The new `Application.WaitForConnection` method allows your process to 160 defer instrumentation until the application is connected and ready to 161 gather data. 162 * Full documentation here: [application.go](application.go) 163 * Example short-lived process: [examples/short-lived-process/main.go](examples/short-lived-process/main.go) 164 165 * Error metrics are no longer created when `ErrorCollector.Enabled = false`. 166 167 * Added support for [github.com/mgutz/logxi](github.com/mgutz/logxi). See 168 [_integrations/nrlogxi/v1/nrlogxi.go](_integrations/nrlogxi/v1/nrlogxi.go). 169 170 * Fixed bug where Transaction Trace thresholds based upon Apdex were not being 171 applied to background transactions. 172 173 ## 1.1.0 174 175 * Added support for Transaction Traces. 176 177 * Stack trace filenames have been shortened: Any thing preceding the first 178 `/src/` is now removed. 179 180 ## 1.0.0 181 182 * Removed `BetaToken` from the `Config` structure. 183 184 * Breaking Datastore Change: `datastore` package contents moved to top level 185 `newrelic` package. `datastore.MySQL` has become `newrelic.DatastoreMySQL`. 186 187 * Breaking Attributes Change: `attributes` package contents moved to top 188 level `newrelic` package. `attributes.ResponseCode` has become 189 `newrelic.AttributeResponseCode`. Some attribute name constants have been 190 shortened. 191 192 * Added "runtime.NumCPU" to the environment tab. Thanks sergeylanzman for the 193 contribution. 194 195 * Prefixed the environment tab values "Compiler", "GOARCH", "GOOS", and 196 "Version" with "runtime.". 197 198 ## 0.8.0 199 200 * Breaking Segments API Changes: The segments API has been rewritten with the 201 goal of being easier to use and to avoid nil Transaction checks. See: 202 203 * [segments.go](segments.go) 204 * [examples/server/main.go](examples/server/main.go) 205 * [GUIDE.md#segments](GUIDE.md#segments) 206 207 * Updated LICENSE.txt with contribution information. 208 209 ## 0.7.1 210 211 * Fixed a bug causing the `Config` to fail to serialize into JSON when the 212 `Transport` field was populated. 213 214 ## 0.7.0 215 216 * Eliminated `api`, `version`, and `log` packages. `Version`, `Config`, 217 `Application`, and `Transaction` now live in the top level `newrelic` package. 218 If you imported the `attributes` or `datastore` packages then you will need 219 to remove `api` from the import path. 220 221 * Breaking Logging Changes 222 223 Logging is no longer controlled though a single global. Instead, logging is 224 configured on a per-application basis with the new `Config.Logger` field. The 225 logger is an interface described in [log.go](log.go). See 226 [GUIDE.md#logging](GUIDE.md#logging). 227 228 ## 0.6.1 229 230 * No longer create "GC/System/Pauses" metric if no GC pauses happened. 231 232 ## 0.6.0 233 234 * Introduced beta token to support our beta program. 235 236 * Rename `Config.Development` to `Config.Enabled` (and change boolean 237 direction). 238 239 * Fixed a bug where exclusive time could be incorrect if segments were not 240 ended. 241 242 * Fix unit tests broken in 1.6. 243 244 * In `Config.Enabled = false` mode, the license must be the proper length or empty. 245 246 * Added runtime statistics for CPU/memory usage, garbage collection, and number 247 of goroutines. 248 249 ## 0.5.0 250 251 * Added segment timing methods to `Transaction`. These methods must only be 252 used in a single goroutine. 253 254 * The license length check will not be performed in `Development` mode. 255 256 * Rename `SetLogFile` to `SetFile` to reduce redundancy. 257 258 * Added `DebugEnabled` logging guard to reduce overhead. 259 260 * `Transaction` now implements an `Ignore` method which will prevent 261 any of the transaction's data from being recorded. 262 263 * `Transaction` now implements a subset of the interfaces 264 `http.CloseNotifier`, `http.Flusher`, `http.Hijacker`, and `io.ReaderFrom` 265 to match the behavior of its wrapped `http.ResponseWriter`. 266 267 * Changed project name from `go-sdk` to `go-agent`. 268 269 ## 0.4.0 270 271 * Queue time support added: if the inbound request contains an 272 `"X-Request-Start"` or `"X-Queue-Start"` header with a unix timestamp, the 273 agent will report queue time metrics. Queue time will appear on the 274 application overview chart. The timestamp may fractional seconds, 275 milliseconds, or microseconds: the agent will deduce the correct units.