- [IMPROVEMENT] Increase UDS default timeout from 1ms to 100ms. See #186.
- [IMPROVEMENT] Defer connection establishment to first write for Windows Named Pipe. See #190.
- [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.
- [BUGFIX] Fix race condition when using sample rate (introduce in 4.3.0). See #179.
- [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.
- [UDS] Use better payload size defaults for UDS connections. See #171.
[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.
- [BUGFIX] Fix incomplete manual flush of the sender when the client isn't stopped. See #163.
- [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.
- Dropping support for EOL versions of Golang 1.11 and lower.
- [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.
- [BUGFIX] Fix panic when calling CloneWithExtraOptions with a nil client. See #148.
- [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.
- [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.
- [IMPROVEMENT] Add support for
DD_ENV
,DD_SERVICE
, andDD_VERSION
to set global tags forenv
,service
andversion
/ See #137
- [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.
- [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.
- [BUGFIX] Close the stop channel when closing a statsd client to avoid leaking. See #107.
- [IMPROVEMENT] Add all
Client
public methods to theClientInterface
andNoOpClient
. See #100. Thanks @skaji.
- [FEATURE] Add a noop client. See #92. Thanks @goodspark.
- [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.
- 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 theWithMaxMessagesPerPayload
option set to 1. - The
AsyncUDS
option has been removed as the networking layer is now running in a separate Goroutine.
- [IMPROVEMENT] Use an error constant for "nil client" errors. See #90. Thanks @asf-stripe.
- [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.
Version 2.0.0
contains breaking changes and beta features, please refer to the
Notes section below for details.
- [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
andeventPriority
. 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.Sprintf
s. See #32, thanks @corsc.
- [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)
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
- [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)