Releases: awslabs/kinesis-hot-shard-advisor
Releases · awslabs/kinesis-hot-shard-advisor
v0.12
v0.11
What's Changed
-
Improved stability for analysing large streams (>1000 shards)
- Number of shards processed concurrently is decided based on the number of CPUs available in host. Default behaviour can also be overridden via a newly introduced argument
-max-workers
- Partition key analysis uses count-min-sketch algorithm to predict hot keys (experimental). Partition key analysis is turned off by default to and can be enabled via
-aggregate-keys
option.
- Number of shards processed concurrently is decided based on the number of CPUs available in host. Default behaviour can also be overridden via a newly introduced argument
-
Ability to specify time windows using seconds
khs -stream test -from "2023-03-28 09:00:00" -to "2023-03-28 09:00:10"
-
Output file size is reduced (should be in the range of 10-50KB for a stream with 2500 shards)
-
Output the metrics of successfully analysed shards even when there are some failed shards
-
Fix: Correctly display time range in command output
Full Changelog: v0.10...v0.11
v0.10
v0.9
v0.8
v0.7: Fix: Trim white spaces in user provided shard-ids
When specifying a list of shard ids, users are likely to use white space characters. This change will sanitise the input before passing it to sdk calls.
v0.6
v0.5
Increase retry tokens to support streams with lots of shards We are seeing the quota error during `SubscribeToShard` because Kinesis client is shared across go routines concurrently subscribing to multiple shards. They are all sharing the retry token bucket which has 500 tokens by default. Each retry of `SubscribeToShard` costs 5 tokens. In streams with large number of shards it's possible that more than 100 `SubscribeToShard` calls are failing and therefore runs out of retry tokens. This change increases the token count to 1000000. Once we verify the stability of this fix, we may introduce a mechanism to dynamically workout the token count based on the number of shards in the target. Also includes: - Go version is updated 1.19 - All dependencies are upgraded with go get -u Fixes #7