This PR adds the following as an available `/debug/vars` field.
```
"stats" : { "compact-throughput-usage-percentage" : <percentage used> }
```
This will show the current compaction throughput usage WRT the available limiter tokens as defined by the golang rate limiter.
https://pkg.go.dev/golang.org/x/time/rate#Limiter.Limit
https://pkg.go.dev/golang.org/x/time/rate#Limiter.Tokens
The algorithm for finding our usage is the following
```
percentage = 100 * (1 - (tokens) / limit)
```
|
||
|---|---|---|
| .. | ||
| binaryutil | ||
| bloom | ||
| bytesutil | ||
| data | ||
| deep | ||
| encoding/simple8b | ||
| errors | ||
| escape | ||
| estimator | ||
| file | ||
| limiter | ||
| metrics | ||
| mmap | ||
| pool | ||
| pprofutil | ||
| radix | ||
| reporthelper | ||
| rhh | ||
| slices | ||
| snowflake | ||
| tar | ||
| testing/assert | ||
| testttp | ||
| tlsconfig | ||
| tracing | ||
| README.md | ||
README.md
pkg/ is a collection of utility packages used by the InfluxDB project without being specific to its internals.
Utility packages are kept separate from the InfluxDB core codebase to keep it as small and concise as possible. If some utilities grow larger and their APIs stabilize, they may be moved to their own repository under the InfluxDB organization, to facilitate re-use by other projects. However that is not the priority.
Because utility packages are small and neatly separated from the rest of the codebase, they are a good place to start for aspiring maintainers and contributors. Get in touch if you want to help maintain them!