Skip to content

Latest commit

 

History

History
98 lines (64 loc) · 4.79 KB

CHANGELOG.md

File metadata and controls

98 lines (64 loc) · 4.79 KB

dynsampler-go changelog

0.6.0 2024-01-12

This version tweaks Throughput samplers to permit calculating non-integer sample rates, which makes them choose better sample rates in many scenarios. It also fixes a race condition that was recently detected by an improved Go runtime.

Fixes

  • fix: allow throughput samplers to have non-integer rates (#74) | Yi Zhao
  • fix: race condition in WindowedThroughput sampler (#73) | Kent Quirk

Maintenance

0.5.1 2023-06-26

This version corrects a math error in the EMAThroughput sampler.

Fixes

  • fix: Correct EMAThroughput math error (#67) | Kent Quirk

0.5.0 2023-06-08

This version extends the Sampler interface to include a new GetMetrics function, which returns a collection of metrics relevant to that specific sampler. This improves visibility into the sampler and will be used in an upcoming release of Honeycomb's Refinery. This is a breaking change for code implemented so as to conform to the dynsampler.Sampler interface, such as hand-coded mocks used for testing. Code using the interface is unaffected.

Features

  • feat: Add metrics counter retrieval (#65) | Kent Quirk

Maintenance

  • maint(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.4 (#64) | dependabot[bot]
  • maint: update dependabot.yml (#63) | Vera Reynolds

0.4.0 2023-03-22

This version contains two new samplers and some (backwards-compatible) changes to the API:

  • Many thanks to Yi Zhao for the contribution of the WindowedThroughput sampler. This sampler is like the Throughput sampler, but uses a moving average to accumulate sample rates across multiple sampling periods.
  • The new EMAThroughput sampler adjusts overall throughput to achieve a goal while also ensuring that all values in the key space are represented.
  • The GetSampleRateMulti() function allows a single request to represent multiple events. This is particularly useful when tail-sampling at the trace level (because each trace represents a number of spans).
  • All samplers now support specifying a time.Duration instead of a time in seconds. Fields like ClearFrequencySec are now deprecated and will be dropped in a future release.

⚠️ As of this version, dynsampler-go requires and is tested on versions of Go 1.17 and greater.

Features

  • feat: EMAThroughput sampler (#58) | Kent Quirk
  • feat: Deprecate integer seconds and replace with time.Duration (#59) | Kent Quirk
  • feat: add GetSampleRateMulti (#53) | Kent Quirk
  • feat: Windowed Throughput Sampling (#45) | Yi Zhao
    • fix: Fix flaky blocklist test (#52) | Yi Zhao

Maintenance

0.3.0 2022-12-07

⚠️ As of this version, dynsampler-go is only tested on Go 1.16 or greater.

Maintenance

  • maint: drop versions of go below 1.16 (#39) | @vreynolds
  • maint: add go 1.18, 1.19 to CI (#30, #31) | @vreynolds
  • maint: add go 1.16, 1.17 to CI (#28) | @MikeGoldsmith
  • ... and a lot of project management stuff. Details in the commits.

0.2.1 2019-08-07

Fixes

  • Corrects some sample rate calculations in the Exponential Moving Averge for very small counts.

0.2.0 2019-07-31

Features

  • Adds Exponential Moving Average (EMASampleRate) implementation with Burst Detection, based on the AvgSampleRate implementation. See docs for description.
  • Adds SaveState and LoadState to interface to enable serialization of internal state for persistence between process restarts.

0.1.0 2019-05-22

Versioning introduced.