Skip to content

Commit

Permalink
Add changelog, update docs for 0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
tredman committed Aug 1, 2019
1 parent bc9a5ee commit 11053ac
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 0 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# dynsampler-go changelog

## 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.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ Depending on the shape of your traffic, one may serve better than another, or yo
* If your logging system has a strict cap on the rate it can receive events, use `TotalThroughput`, which will calculate sample rates based on keeping *the entire system's* representative event throughput right around (or under) particular cap.
* If your system has a rough cap on the rate it can receive events and your partitioned keyspace is fairly steady, use `PerKeyThroughput`, which will calculate sample rates based on keeping the event throughput roughly constant *per key/partition* (e.g. per user id)
* The best choice for a system with a large key space and a large disparity between the highest volume and lowest volume keys is `AvgSampleRateWithMin` - it will increase the sample rate of higher volume traffic proportionally to the logarithm of the specific key's volume. If total traffic falls below a configured minimum, it stops sampling to avoid any sampling when the traffic is too low to warrant it.
* `EMASampleRate` works like `AvgSampleRate`, but calculates sample rates based on a moving average (Exponential Moving Average) of many measurement intervals rather than a single isolated interval. In addition, it can detect large bursts in traffic and will trigger a recalculation of sample rates before the regular interval.
2 changes: 2 additions & 0 deletions doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ The following guidelines can help you choose a sampler. Depending on the shape o
* The best choice for a system with a large key space and a large disparity between the highest volume and lowest volume keys is `AvgSampleRateWithMin` - it will increase the sample rate of higher volume traffic proportionally to the logarithm of the specific key's volume. If total traffic falls below a configured minimum, it stops sampling to avoid any sampling when the traffic is too low to warrant it.
* `EMASampleRate` works like `AvgSampleRate`, but calculates sample rates based on a moving average (Exponential Moving Average) of many measurement intervals rather than a single isolated interval. In addition, it can detect large bursts in traffic and will trigger a recalculation of sample rates before the regular interval.
Each sampler implementation below has additional configuration parameters and a
detailed description of how it chooses a sample rate.
Expand Down

0 comments on commit 11053ac

Please sign in to comment.