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.