Releases: honeycombio/refinery
Releases · honeycombio/refinery
v0.9.0
v0.9.0 2020-09-01
Features:
- Adds dry run mode. When getting started with samproxy or when updating sampling rules, it may be helpful to verify that the rules are working as expected before you start dropping traffic. By enabling dry run mode, all spans in each trace will be marked with the sampling decision in a field called
samproxy_kept
. All traces will be sent to Honeycomb regardless of the sampling decision. You can then run queries in Honeycomb on this field to check your results and verify that the rules are working as intended. Enable dry run mode by addingDryRun = true
in your configuration, as noted inrules.toml
.
Improvements:
- Libhoney-go supports msgpack. Now samproxy does as well.
- Adds the stack trace to the logger in the case of panics.
- Allow the debug service address to be specified in config. Specify the address in
config.toml
usingDebugServiceAddr
.
Fixes:
- The peer list can temporarily become empty when using Redis discovery and the Redis state is lost (e.g. restarting an in-memory instance). This caused a panic when attempting to choose a shard, and resulted in dropping spans. Now, we return an error when there are no peers, which means that it will surface the error to the logs and re-attempt later.
v0.8.0
v0.8.0 2020-08-21
Note: There are several breaking configuration changes in this release.
- The sampling rules configuration was split into a separate file from the main configuration file. You can specify the path to the main config file through the command line flag
-c
, as before. The rules file path can be specified with-r
. The paths default to/etc/samproxy/samproxy.toml
and/etc/samproxy/rules.toml
. - The
-p
command line flag for configuring redis is deprecated. Instead, there is aPeer Management
section in the main config file whereType="redis"
should be specified. This field defaults toType="file"
. All other redis configuration remains unchanged. - The configuration fields of
SendDelay
andTraceTimeout
have been switched to type oftime.duration
.
Features:
- Add EMA Dynamic Sampler implementation
Improvements:
- Process accumulated traces on a single time interval instead of per trace, which uses a lot less CPU to do the same job in the same time
- Split config into
config.toml
for general configuration andrules.toml
for sampling, and add reasonable defaults to ease the startup experience - Simplify startup flow when using redis
- Use Viper to manage configuration
- Use go modules instead of vendored dependencies
- Add
samproxy/version
to user agent addition - Add
-debug
flag which when used, will run a debug service on port 6060 (The debug service allows you to use pprof to visualize and analyze profiling data.) - Switch to
time.duration
for several config values, includingSendDelay
andTraceTimeout
Fixes:
- Fix race when prometheus starts
- Prevent queue overflow errors from Honeycomb Logger on startup
- Fix missing metrics registered with the wrong name or not registered at all
v0.7.0: Merge pull request #58 from honeycombio/travis.redis-ip
[redis] allow IP and other host identifiers
v0.6.1: Merge pull request #57 from honeycombio/toshok.send-using-sync-once
It looks to be (theoretically, I haven't verified by testing it) possible for multiple goroutines to end up in this particular switch arm at the same time. Use a `sync.Once` to make sure that even if that happens they can't both try to close the channel and/or send the trace.
v0.6.0: Merge pull request #55 from subnova-etsy/clearfrequencysec
Add support for specifying the ClearFrequencySec attribute
v0.5.3: Merge pull request #54 from honeycombio/tredman.zstd-support
[router] add zstd support
v0.5.2
fix fpm output path
v0.5.1: Merge pull request #50 from honeycombio/travis.libhoney-bump
Bump libhoney to v1.12.1
Proxy supports proxies
The sampling proxy previously ignored HTTPS proxies that might be configured via the environment. This version now honors the HTTPS_PROXY
environment variable to send traffic to Honeycomb via an outbound proxy.
Documentation, logging, bug fixes
This change
- updates some documentation on how to run samproxy.
- adds some debug logs clarifying the flow of spans and traces through the system to help an operator verify (in test conditions) that the cluster is functioning correctly
- fixes a bug in the sharding code to correctly send spans to peer shards