Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: prometheus/client_golang Loading
base: v1.12.0
Choose a base ref
...
head repository: prometheus/client_golang Loading
compare: v1.12.1
Choose a head ref
  • 5 commits
  • 11 files changed
  • 3 contributors

Commits on Jan 21, 2022

  1. Configuration menu
    Copy the full SHA
    f63e219 View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2022

  1. Use simpler locking in the Go 1.17 collector (#975)

    A previous PR made it so that the Go 1.17 collector locked only around
    uses of rmSampleBuf, but really that means that Metric values may be
    sent over the channel containing some values from future metrics.Read
    calls. While generally-speaking this isn't a problem, we lose any
    consistency guarantees provided by the runtime/metrics package.
    
    Also, that optimization to not just lock around all of Collect was
    premature. Truthfully, Collect is called relatively infrequently, and
    its critical path is fairly fast (10s of µs). To prove it, this change
    also adds a benchmark.
    
    name            old time/op  new time/op  delta
    GoCollector-16  43.7µs ± 2%  43.2µs ± 2%   ~     (p=0.190 n=9+9)
    
    Note that because the benchmark is single-threaded it actually looks
    like it might be getting *slightly* faster, because all those Collect
    calls for the Metrics are direct calls instead of interface calls.
    
    Signed-off-by: Michael Anthony Knyszek <[email protected]>
    mknyszek committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    8520671 View commit details
    Browse the repository at this point in the history
  2. API client: make http reads more efficient (#976)

    Replace `io.ReadAll` with `bytes.Buffer.ReadFrom`.
    Both need to resize a buffer until they have finished reading;
    the former increases by 1.25x each time while the latter uses 2x.
    
    Also added a benchmark to demonstrate the benefit:
    name             old time/op    new time/op    delta
    Client/4KB-8       35.9µs ± 4%    35.3µs ± 3%     ~     (p=0.310 n=5+5)
    Client/50KB-8      83.1µs ± 8%    69.5µs ± 1%  -16.37%  (p=0.008 n=5+5)
    Client/1000KB-8     891µs ± 6%     750µs ± 0%  -15.83%  (p=0.016 n=5+4)
    Client/2000KB-8    1.74ms ± 2%    1.35ms ± 1%  -22.72%  (p=0.008 n=5+5)
    
    name             old alloc/op   new alloc/op   delta
    Client/4KB-8       20.2kB ± 0%    20.4kB ± 0%   +1.26%  (p=0.008 n=5+5)
    Client/50KB-8       218kB ± 0%     136kB ± 0%  -37.65%  (p=0.008 n=5+5)
    Client/1000KB-8    5.88MB ± 0%    2.11MB ± 0%  -64.10%  (p=0.008 n=5+5)
    Client/2000KB-8    11.7MB ± 0%     4.2MB ± 0%  -63.93%  (p=0.008 n=5+5)
    
    name             old allocs/op  new allocs/op  delta
    Client/4KB-8         75.0 ± 0%      72.0 ± 0%   -4.00%  (p=0.008 n=5+5)
    Client/50KB-8         109 ± 0%        98 ± 0%  -10.09%  (p=0.079 n=4+5)
    Client/1000KB-8       617 ± 0%       593 ± 0%   -3.89%  (p=0.008 n=5+5)
    Client/2000KB-8     1.13k ± 0%     1.09k ± 0%   -3.27%  (p=0.008 n=5+5)
    
    Signed-off-by: Bryan Boreham <[email protected]>
    bboreham committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    4dd3cbb View commit details
    Browse the repository at this point in the history

Commits on Jan 28, 2022

  1. Reduce granularity of histogram buckets for Go 1.17 collector (#974)

    The Go runtime/metrics package currently exports extremely granular
    histograms. Exponentially bucket any histogram with unit "seconds"
    or "bytes" instead to dramatically reduce the number of buckets, and
    thus the number of metrics.
    
    This change also adds a test to check for expected cardinality to
    prevent cardinality surprises in the future.
    
    Signed-off-by: Michael Anthony Knyszek <[email protected]>
    mknyszek committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    77626d6 View commit details
    Browse the repository at this point in the history

Commits on Jan 29, 2022

  1. Cut v1.12.1 (#978)

    * Cut v1.12.1
    
    Signed-off-by: Kemal Akkoyun <[email protected]>
    
    * Apply review suggestions
    
    Signed-off-by: Kemal Akkoyun <[email protected]>
    kakkoyun committed Jan 29, 2022
    Configuration menu
    Copy the full SHA
    2e1c481 View commit details
    Browse the repository at this point in the history
Loading