v0.10.0
v0.10.0 2020-09-17
Note: There are breaking configuration changes in this release.
- The way sampler rules are described has changed. The
_default
setting is removed and the default is now listed above the specific dataset rules.SamplerConfig
has also been removed from each of the dataset keys. Seerules.toml
for more information.
Improvements:
- Reduce allocations for unused log entries by using a new Logger interface to no-op log operations on disabled log levels.
- Lower the memory footprint when the cache capacity is set larger than necessary by removing traces from the cache after they are sent.
- Simplify the way sampler rules are described. The
_default
setting is removed and the default is now listed above the specific dataset rules.SamplerConfig
has also been removed from each of the dataset names. Seerules.toml
for more information. - Add validation for configuration fields on startup and validate nested configurations that are needed if another config value is present, such as as
HoneycombMetrics
. - Simplify the collect loop to always drain from the peer channel first.
- Reload all sampler settings on changes to
rules.toml
. We now discard all of the samplers when the config changes so that they can be re-created with the new config data.
Fixes:
- Fix the perf regression associated with repeatedly touching already sent traces in
sendTracesInCache()
, by removing traces from the cache after they are sent. - Fix data races, including a shutdown data race in
InMemCollector.Stop
and several test races found withgo test -race
.