client_golang
client_golang copied to clipboard
Add consistent Add/Inc/Observe microbenchmarks, validate results on release (regressions vs past releases).
We had to revert https://github.com/prometheus/client_golang/pull/1661 due to major performance issues on Add/Inc/Observe methods for cumulatives https://github.com/prometheus/client_golang/issues/1748
While https://github.com/prometheus/client_golang/pull/1661 added benchmarks, it seems they were unrealistic (e.g. around context switching and extra work in between). We also didn't have a good judgement on that 10ms overhead. We need to make sure:
- There are benchmarks we can rely on.
- Our release process (or even per PR) ensures we run those and detect potential regressions.
Help wanted!