Skip to content

Commit ef455d7

Browse files
authored
release 3.0.0 (#96)
1 parent f3f4255 commit ef455d7

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

CHANGELOG.md

+16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
## Changes
22

3+
# 3.0.0 / 2019-10-18
4+
5+
### Notes
6+
7+
* [FEATURE] Add a way to configure the maximum size of a single payload (was always 1432, the optimal size for local UDP). See [#91][].
8+
* [IMPROVEMENT] Various performance improvements. See [#91][].
9+
* [OTHER] The client now pre-allocates 4MB of memory to queue up metrics. This can be controlled using the [WithBufferPoolSize](https://godoc.org/github.com/DataDog/datadog-go/statsd#WithBufferPoolSize) option.
10+
11+
### Breaking changes
12+
13+
- 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:
14+
- This made the UDS client blocking by default which is not desirable
15+
- This design was flawed if you used a buffer as only the call that actually sent the buffer would return an error
16+
- 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.
17+
- The `AsyncUDS` option has been removed as the networking layer is now running in a separate Goroutine.
18+
319
# 2.3.0 / 2019-10-15
420

521
### Notes

README.md

-12
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,6 @@ Details about the advantages of using UDS over UDP are available in our [docs](h
6565
6666
You can use this protocol by giving a `unix:///path/to/dsd.socket` address argument to the `New` constructor.
6767

68-
69-
### Blocking vs Asynchronous behavior
70-
71-
When transporting DogStatsD datagram over UDS, two modes are available, "blocking" and "asynchronous".
72-
73-
"blocking" allows for error checking but does not guarantee that calls to the library will return immediately. For example `client.Gauge(...)` might take an arbitrary amount of time to complete depending on server performance and load. If used in a hot path of your application, this behavior might significantly impact its performance.
74-
75-
"asynchronous" does not allow for error checking but guarantees that calls are instantaneous (<1ms). This is similar to UDP behavior.
76-
77-
Currently, in 2.x, "blocking" is the default behavior to ensure backward compatibility. To use the "asynchronous" behavior, use the `statsd.WithAsyncUDS()` option.
78-
We recommend enabling the "asynchronous" mode.
79-
8068
## Performance / Metric drops
8169

8270
### Tweaking kernel options

0 commit comments

Comments
 (0)