Releases: honeycombio/libhoney-go
v1.14.0
v1.13.0
v1.12.4
This updates dependencies, most notably the msgpack dependency.
v1.12.3
Reduce zstd memory footprint
v1.12.1 reduces global encoding buffer space allocated by the zstd library from 8MB per CPU to 128KB per CPU.
Also fixes a deadlock condition when calling Add*() and Send() concurrently.
This release requires v1.8.3 or later of github.com/klauspost/compress.
Replace gzip with zstd
v1.12.0 replaces standard gzip compression with zstd, and specifies a fast compression setting. This yields a large improvement in performance while generally only sacrificing a few percentage points of compression ratio.
Note that older builds of honeycomb_secure_proxy don't support zstd content encoding, so Secure Tenancy customers will either need to update to a recent build or disable compression before deploying this release of libhoney-go.
Retry transmission on HTTP timeout error
This release adds a single retry of HTTP posts which fail due to any timeout error. This should increase event reliability in the event of occasional blips in high-traffic environments.
Add optional msgpack transmission
v1.11.0 adds the EnableMsgpackEncoding flag, which enables transmission to Honeycomb using msgpack instead of JSON. In some cases msgpack is more time and space efficient than JSON, but the principal benefit it brings is more robust support for numeric data types, especially the ability to encode large integers. This means that if you hand libhoney an integer value, it won't be converted to a float during transmission - although this is only useful for columns which are not already of type float.
However, the msgpack encoding library is a bit more fussy about its inputs than JSON, and will sometimes error on unexpected types which encoding/json would simply ignore. In addition, it doesn't call MarshalJSON() methods, so if you rely on these for field data, you'll need to add corresponding MarshalMsgpack() methods.
If you enable msgpack, it is highly recommended that you watch for errors on the TxResponses() channel.
Relax constraint on requiring API key. Fix panic.
This release relaxes the constraints on when you are required to include an API key before an event will be sent. Previously, all events required an API key, even if they were not going to use it because the configured Sender did not need it. (For example, if you use the DiscardWriter Sender, all events will be dropped. Clearly an API key should not be required. Similarly a sender that sends things to STDOUT or to a non-Honeycomb service may not need an authentication token.) API key is now only required if you are using the default Honeycomb sender or the Mock sender for tests.
This change also fixes a minor bug that could cause a panic if libhoney is not configured before use.
Adding gzip toggle, minor bug fixes
Changes from 1.9.0 to 1.9.4:
- adding a flag to disable
gzip
compression of sent batches - fixing a few panics and protecting against unitialized use