client_golang icon indicating copy to clipboard operation
client_golang copied to clipboard

Add consistent Add/Inc/Observe microbenchmarks, validate results on release (regressions vs past releases).

Open bwplotka opened this issue 9 months ago • 0 comments

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:

  1. There are benchmarks we can rely on.
  2. Our release process (or even per PR) ensures we run those and detect potential regressions.

Help wanted!

bwplotka avatar Mar 04 '25 14:03 bwplotka