Skip to content

Latest commit

 

History

History
312 lines (228 loc) · 13.1 KB

CHANGELOG.md

File metadata and controls

312 lines (228 loc) · 13.1 KB

Changes

4.5.0 / 2021-03-15

  • [IMPROVEMENT] Increase UDS default timeout from 1ms to 100ms. See #186.
  • [IMPROVEMENT] Defer connection establishment to first write for Windows Named Pipe. See #190.

4.4.0 / 2021-02-10

  • [BETA BUGFIX] Fix multi-metric aggregation when packing different metrics in the same packet. See #181.
  • [FEATURE] Add support for Windows Named Pipes (Windows only). See #182 and #185.

4.3.1 / 2021-01-28

  • [BUGFIX] Fix race condition when using sample rate (introduce in 4.3.0). See #179.

4.3.0 / 2021-01-20

  • [BETA] Adding client side aggregation for distributions, histograms and timings. See #176.
  • [IMPROVEMENT] Use a worker-specific random source to remove lock contention. See #178. Thanks to @matthewdale.
  • [IMPROVEMENT] Update devMode telemetry naming and taging to ease graphing in Datadog. See #175.

4.2.0 / 2020-11-02

  • [UDS] Use better payload size defaults for UDS connections. See #171.

4.1.0 / 2020-10-23

[BETA BUGFIX] Ignore sampling rate when client side aggregation is enabled (for Gauge, Count and Set). See #170. [FEATURE] Adding a new option WithDevMode(), to send more telemetry metrics to ease troubleshooting issues. See #169.

4.0.1 / 2020-10-07

Notes

  • [BUGFIX] Fix incomplete manual flush of the sender when the client isn't stopped. See #163.

4.0.0 / 2020-08-21

Notes

  • [FEATURE] Add new option WithTelemetryAddr, to send the telemetry data to a different endpoint. See #157.
  • [BUGFIX] Fix race condition in the flush mechanism of the aggregator. See [#166][]. Thanks to @cyx.

Breaking changes

  • Dropping support for EOL versions of Golang 1.11 and lower.

3.7.2 / 2020-06-16

Notes

  • [BUGFIX] Fix panic on 32bits and ARM when using the telemetry. See #156.
  • [BETA BUGFIX] Fix typo in method name to configure the aggregation window interval. See #154.

3.7.1 / 2020-05-01

Notes

  • [BUGFIX] Fix panic when calling CloneWithExtraOptions with a nil client. See #148.

3.7.0 / 2020-04-29

Notes

  • [FEATURE] Add new function to clone a Client, so library can inherit and extend options from the main application. See #147.
  • [IMPROVEMENT] Auto append a '.' when needed to namespace. See #145. Thanks to @kamatama41.
  • [IMPROVEMENT] Add the client global tags to the telemetry tags. See #143. Thanks to @chrisleavoy.

3.6.0 / 2020-04-21

Notes

  • [IMPROVEMENT] Reduce lock contention by sharding worker by metric name. See #108.
  • [FEATURE] Adding a "channel mode" to send metrics to the client, disable by default. See #134.
  • [BUGFIX] Fix metrics not being flushed when the client is closed. See #144.
  • [BETA] Adding client side aggregation for Gauge, Count and Set. See #139.

3.5.0 / 2020-03-17

Notes

  • [IMPROVEMENT] Add support for DD_ENV, DD_SERVICE, and DD_VERSION to set global tags for env, service and version/ See #137

3.4.1 / 2020-03-10

Notes

  • [BUGFIX] Fix possible deadlock when closing the client. See #135. Thanks to @danp60.

3.4.0 / 2020-01-15

Notes

  • [IMPROVEMENT] Improve tags for the telemetry. See #118.
  • [IMPROVEMENT] Add option to disable the telemetry. See #117.
  • [IMPROVEMENT] Add metrics, event and service check count to the telemetry. See #118.

3.3.1 / 2019-12-13

Notes

  • [BUGFIX] Fix Unix domain socket path extraction. See #113.
  • [BUGFIX] Fix an issue with custom writers leading to metric drops. See #106.
  • [BUGFIX] Fix an error check in uds.Write leading to unneeded re-connections. See #115.

3.3.0 / 2019-12-02

Notes

  • [BUGFIX] Close the stop channel when closing a statsd client to avoid leaking. See #107.

3.2.0 / 2019-10-28

Notes

  • [IMPROVEMENT] Add all Client public methods to the ClientInterface and NoOpClient. See #100. Thanks @skaji.

3.1.0 / 2019-10-24

Notes

3.0.0 / 2019-10-18

Notes

  • [FEATURE] Add a way to configure the maximum size of a single payload (was always 1432, the optimal size for local UDP). See #91.
  • [IMPROVEMENT] Various performance improvements. See #91.
  • [OTHER] The client now pre-allocates 4MB of memory to queue up metrics. This can be controlled using the WithBufferPoolSize option.

Breaking changes

  • Sending a metric over UDS won't return an error if we fail to forward the datagram to the agent. We took this decision for two main reasons:
    • This made the UDS client blocking by default which is not desirable
    • This design was flawed if you used a buffer as only the call that actually sent the buffer would return an error
  • The Buffered option has been removed as the client can only be buffered. If for some reason you need to have only one dogstatsd message per payload you can still use the WithMaxMessagesPerPayload option set to 1.
  • The AsyncUDS option has been removed as the networking layer is now running in a separate Goroutine.

2.3.0 / 2019-10-15

Notes

  • [IMPROVEMENT] Use an error constant for "nil client" errors. See #90. Thanks @asf-stripe.

2.2.0 / 2019-04-11

Notes

  • [FEATURE] UDS: non-blocking implementation. See #81.
  • [FEATURE] Support configuration from standard environment variables. See #78.
  • [FEATURE] Configuration at client creation. See #82.
  • [IMPROVEMENT] UDS: change Mutex to RWMutex for fast already-connected path. See #84. Thanks @KJTsanaktsidis.
  • [IMPROVEMENT] Return error when using on nil client. See #65. Thanks @Aceeri.
  • [IMPROVEMENT] Reduce Client.format allocations. See #53. Thanks @vcabbage.
  • [BUGFIX] UDS: add lock to writer for concurrency safety. See #62.
  • [DOCUMENTATION] Document new options, non-blocking client, etc. See #85.
  • [TESTING] Adding go 1.10 and go 1.11 to CI. See #75. Thanks @thedevsaddam.

2.1.0 / 2018-03-30

Notes

  • [IMPROVEMENT] Protect client methods from nil client. See #52, thanks @ods94065.

2.0.0 / 2018-01-29

Details

Version 2.0.0 contains breaking changes and beta features, please refer to the Notes section below for details.

Notes

  • [BREAKING] statsdWriter now implements io.Writer interface. See #46.
  • [BUGFIX] Flush buffer on close. See #47.
  • [BETA] Add support for global distributions. See #45.
  • [FEATURE] Add support for Unix Domain Sockets. See #37.
  • [FEATURE] Export eventAlertType and eventPriority. See #42, thanks @thomas91310.
  • [FEATURE] Export Flush method. See #40, thanks @colega.
  • [BUGFIX] Prevent panics when closing the udsWriter. See #43, thanks @jacek-adamek.
  • [IMPROVEMENT] Fix issues reported by Golint. See #39, thanks @tariq1890.
  • [IMPROVEMENT] Improve message building speed by using less fmt.Sprintfs. See #32, thanks @corsc.

1.1.0 / 2017-04-27

Notes

  • [FEATURE] Export serviceCheckStatus allowing interfaces to statsd.Client. See #19 (Thanks @Jasrags)
  • [FEATURE] Client.sendMsg(). Check payload length for all messages. See #25 (Thanks @theckman)
  • [BUGFIX] Remove new lines from tags. See #21 (Thanks @sjung-stripe)
  • [BUGFIX] Do not panic on Client.Event when nil. See #28
  • [DOCUMENTATION] Update decr documentation to match implementation. See #30 (Thanks @kcollasarundell)

1.0.0 / 2016-08-22

Details

We hadn't been properly versioning this project. We will begin to do so with this 1.0.0 release. We had some contributions in the past and would like to thank the contributors @aviau, @sschepens, @jovanbrakus, @abtris, @tummychow, @gphat, @diasjorge, @victortrac, @seiffert and @w-vi, in no particular order, for their work.

Below, for reference, the latest improvements made in 07/2016 - 08/2016

Notes

  • [FEATURE] Implemented support for service checks. See #17 and #5. (Thanks @jovanbrakus and @diasjorge).
  • [FEATURE] Add Incr, Decr, Timing and more docs.. See #15. (Thanks @gphat)
  • [BUGFIX] Do not append to shared slice. See #16. (Thanks @tummychow)