forked from prometheus/client_golang
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
testutil: Add ScrapeAndCompare #1
Open
sazary
wants to merge
40
commits into
main
Choose a base branch
from
add-scrape-and-compare
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Kemal Akkoyun <[email protected]>
Signed-off-by: Kemal Akkoyun <[email protected]>
d13b534
to
a76f8c8
Compare
Signed-off-by: sazary <[email protected]>
Signed-off-by: sazary <[email protected]>
a76f8c8
to
86f0b14
Compare
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]>
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]>
…heus#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]>
* Cut v1.12.1 Signed-off-by: Kemal Akkoyun <[email protected]> * Apply review suggestions Signed-off-by: Kemal Akkoyun <[email protected]>
Update `examples/random/main.go`: `prometheus.NewBuildInfoCollector` is deprecated. Use `collectors.NewBuildInfoCollector` instead. Signed-off-by: alissa-tung <[email protected]>
…us#1031) * Renamed files. Signed-off-by: Bartlomiej Plotka <[email protected]> * gocollector: Added options to Go Collector for diffetent collections. Fixes prometheus#983 Also: * fixed TestMemStatsEquivalence, it was noop before (: * Removed gc_cpu_fraction metric completely, since it's not working completely for Go1.17+ Signed-off-by: Bartlomiej Plotka <[email protected]>
… metrics by default. (prometheus#1033) Fixes prometheus#967 Signed-off-by: Bartlomiej Plotka <[email protected]>
…trics (prometheus#1048) * Fix convention violating names for generated collector metrics Signed-off-by: Kemal Akkoyun <[email protected]> * Add new Go collector example Signed-off-by: Kemal Akkoyun <[email protected]>
* Remove -Inf buckets from go collector histograms Signed-off-by: Kemal Akkoyun <[email protected]> * Update prometheus/collectors/go_collector_latest_test.go Co-authored-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Simplify Signed-off-by: Kemal Akkoyun <[email protected]> Co-authored-by: Bartlomiej Plotka <[email protected]>
* Cut v1.12.2 Signed-off-by: Kemal Akkoyun <[email protected]> * Apply suggestions Signed-off-by: Kemal Akkoyun <[email protected]> * Update CHANGELOG.md Co-authored-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> Co-authored-by: Bartlomiej Plotka <[email protected]>
Signed-off-by: prombot <[email protected]>
Update minimum supported Go to 1.17 to support new module format. Signed-off-by: SuperQ <[email protected]>
Add a GitHub settings control yaml to manage branch protection for the Go versions. Signed-off-by: SuperQ <[email protected]>
Signed-off-by: prombot <[email protected]>
* Add gofumpt to github workflow & fix all files for it Signed-off-by: sazary <[email protected]> * Add goimports to golangci & fix it's issues Signed-off-by: sazary <[email protected]> * Add revive to golangci & fix it's issues Signed-off-by: sazary <[email protected]> * Add errcheck & misspell to golangci and fix their issues Signed-off-by: sazary <[email protected]> * Add govet & gosimple to golangci and fix their issues Signed-off-by: sazary <[email protected]> * Enable all default linters of golangci Signed-off-by: sazary <[email protected]>
Signed-off-by: prombot <[email protected]>
Signed-off-by: kun <[email protected]>
) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.34.0 to 0.35.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](prometheus/common@v0.34.0...v0.35.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Cut v1.12.0 Signed-off-by: Kemal Akkoyun <[email protected]> * Bump the day Signed-off-by: Kemal Akkoyun <[email protected]> * Make the Go 1.17 collector thread-safe (prometheus#969) * Use simpler locking in the Go 1.17 collector (prometheus#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]> * API client: make http reads more efficient (prometheus#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]> * Reduce granularity of histogram buckets for Go 1.17 collector (prometheus#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]> * Cut v1.12.1 (prometheus#978) * Cut v1.12.1 Signed-off-by: Kemal Akkoyun <[email protected]> * Apply review suggestions Signed-off-by: Kemal Akkoyun <[email protected]> * Fix deprecated `NewBuildInfoCollector` API Update `examples/random/main.go`: `prometheus.NewBuildInfoCollector` is deprecated. Use `collectors.NewBuildInfoCollector` instead. Signed-off-by: alissa-tung <[email protected]> * gocollector: Added options to Go Collector for changing the (prometheus#1031) * Renamed files. Signed-off-by: Bartlomiej Plotka <[email protected]> * gocollector: Added options to Go Collector for diffetent collections. Fixes prometheus#983 Also: * fixed TestMemStatsEquivalence, it was noop before (: * Removed gc_cpu_fraction metric completely, since it's not working completely for Go1.17+ Signed-off-by: Bartlomiej Plotka <[email protected]> * gocollector: Reverted client_golang v1.12 addition of runtime/metrics metrics by default. (prometheus#1033) Fixes prometheus#967 Signed-off-by: Bartlomiej Plotka <[email protected]> * prometheus: Fix convention violating names for generated collector metrics (prometheus#1048) * Fix convention violating names for generated collector metrics Signed-off-by: Kemal Akkoyun <[email protected]> * Add new Go collector example Signed-off-by: Kemal Akkoyun <[email protected]> * Remove -Inf buckets from go collector histograms (prometheus#1049) * Remove -Inf buckets from go collector histograms Signed-off-by: Kemal Akkoyun <[email protected]> * Update prometheus/collectors/go_collector_latest_test.go Co-authored-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> * Simplify Signed-off-by: Kemal Akkoyun <[email protected]> Co-authored-by: Bartlomiej Plotka <[email protected]> * Cut v1.12.2 (prometheus#1052) * Cut v1.12.2 Signed-off-by: Kemal Akkoyun <[email protected]> * Apply suggestions Signed-off-by: Kemal Akkoyun <[email protected]> * Update CHANGELOG.md Co-authored-by: Bartlomiej Plotka <[email protected]> Signed-off-by: Kemal Akkoyun <[email protected]> Co-authored-by: Bartlomiej Plotka <[email protected]> Co-authored-by: Kemal Akkoyun <[email protected]> Co-authored-by: Michael Knyszek <[email protected]> Co-authored-by: Bryan Boreham <[email protected]> Co-authored-by: Kemal Akkoyun <[email protected]> Co-authored-by: alissa-tung <[email protected]> Co-authored-by: Bartlomiej Plotka <[email protected]>
Signed-off-by: beorn7 <[email protected]>
Merging release branch back to main again
In line with the OpenMetrics spec: "The combined length of the label names and values of an Exemplar's LabelSet MUST NOT exceed 128 UTF-8 character code points" https://github.com/OpenObservability/OpenMetrics/blob/98ae26c87b/specification/OpenMetrics.md#exemplars Signed-off-by: Bryan Boreham <[email protected]>
Signed-off-by: Fredrik Enestad <[email protected]>
) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.35.0 to 0.37.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](prometheus/common@v0.35.0...v0.37.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.28.0 to 1.28.1. - [Release notes](https://github.com/protocolbuffers/protobuf-go/releases) - [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash) - [Commits](protocolbuffers/protobuf-go@v1.28.0...v1.28.1) --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: inosato <[email protected]>
Bumps [github.com/prometheus/procfs](https://github.com/prometheus/procfs) from 0.7.3 to 0.8.0. - [Release notes](https://github.com/prometheus/procfs/releases) - [Commits](prometheus/procfs@v0.7.3...v0.8.0) --- updated-dependencies: - dependency-name: github.com/prometheus/procfs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* explicitly adding +inf bucket to withExemplarsMetric Signed-off-by: Arun Mahendra <[email protected]> * Update prometheus/metric_test.go Co-authored-by: Bartlomiej Plotka <[email protected]> * Update prometheus/metric.go Co-authored-by: Bartlomiej Plotka <[email protected]> * updated comment and removed unnecessary test Co-authored-by: Bartlomiej Plotka <[email protected]>
* Ensure tests verify request params Signed-off-by: Joseph Woodward <[email protected]> * Fix error message Signed-off-by: Joseph Woodward <[email protected]> * gofumpt-ed with extra. Signed-off-by: bwplotka <[email protected]> Co-authored-by: bwplotka <[email protected]>
Signed-off-by: bwplotka <[email protected]>
* Added exemplar support to http middlewares. Signed-off-by: Bartlomiej Plotka <[email protected]> * Small fix. Signed-off-by: Bartlomiej Plotka <[email protected]> * Fixed test. Signed-off-by: Bartlomiej Plotka <[email protected]> * Added tests and options for RT. Signed-off-by: bwplotka <[email protected]> * goimports. Signed-off-by: bwplotka <[email protected]>
* fix assorted oddities found by golangci-lint Signed-off-by: Christoph Mewes <[email protected]> * permanently enable the linters Signed-off-by: Christoph Mewes <[email protected]> * post-rebase blues Signed-off-by: Christoph Mewes <[email protected]>
Signed-off-by: Kemal Akkoyun <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Signed-off-by: sazary [email protected]