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