beorn7
7f912db15a
promql: Fix limiting of extrapolation to negative values
...
This is a bit tough to explain, but I'll try:
`rate` & friends have a sophisticated extrapolation algorithm.
Usually, we extrapolate the result to the total interval specified in
the range selector. However, if the first sample within the range is
too far away from the beginning of the interval, or if the last sample
within the range is too far away from the end of the interval, we
assume the series has just started half a sampling interval before the
first sample or after the last sample, respectively, and shorten the
extrapolation interval correspondingly. We calculate the sampling
interval by looking at the average time between samples within the
range, and we define "too far away" as "more than 110% of that
sampling interval".
However, if this algorithm leads to an extrapolated starting value
that is negative, we limit the start of the extrapolation interval to
the point where the extrapolated starting value is zero.
At least that was the intention.
What we actually implemented is the following: If extrapolating all
the way to the beginning of the total interval would lead to an
extrapolated negative value, we would only extrapolate to the zero
point as above, even if the algorithm above would have selected a
starting point that is just half a sampling interval before the first
sample and that starting point would not have an extrapolated negative
value. In other word: What was meant as a _limitation_ of the
extrapolation interval yielded a _longer_ extrapolation interval in
this case.
There is an exception to the case just described: If the increase of
the extrapolation interval is more than 110% of the sampling interval,
we suddenly drop back to only extrapolate to half a sampling interval.
This behavior can be nicely seen in the testcounter_zero_cutoff test,
where the rate goes up all the way to 0.7 and then jumps back to 0.6.
This commit changes the behavior to what was (presumably) intended
from the beginning: The extension of the extrapolation interval is
only limited if actually needed to prevent extrapolation to negative
values, but the "limitation" never leads to _more_ extrapolation
anymore.
The difference is subtle, and probably it never bothered anyone.
However, if you calculate a rate of a classic histograms, the old
behavior might create non-monotonic histograms as a result (because of
the jumps you can see nicely in the old version of the
testcounter_zero_cutoff test). With this fix, that doesn't happen
anymore.
Signed-off-by: beorn7 <beorn@grafana.com>
2024-03-07 01:20:33 +01:00
Bryan Boreham
864c994932
CI: split Go tests into two parts, to run in parallel
...
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-03-06 19:17:49 +00:00
Bryan Boreham
6fd7c0c297
Merge pull request #13717 from ArthurSens/update-clientgolang
...
Bump client_golang to 1.19, common to 0.49.1
2024-03-06 18:38:44 +00:00
Bryan Boreham
05fbc23930
CI: stop running codeql for Go
...
It takes around 20 minutes and has never told us anything interesting.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-03-06 18:27:01 +00:00
Bryan Boreham
d9843fe9b4
Merge pull request #13715 from bboreham/tests-with-stringlabels
...
CI: run main tests with --tags=stringlabels
2024-03-06 18:15:17 +00:00
Bryan Boreham
620388bf82
Merge pull request #13405 from machine424/ci
...
chore(ci): Run all tests on the oldest golang version
2024-03-06 18:12:58 +00:00
Bryan Boreham
bdfc309c61
Update to prometheus/common without Host member
...
Commit 4199f18c3e92.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-03-06 18:03:49 +00:00
Björn Rabenstein
0a426215b5
Merge pull request #13718 from thirdkeyword/main
...
docs: fix some typos
2024-03-06 14:17:07 +01:00
Björn Rabenstein
01a960a2a1
Merge pull request #13707 from machine424/lint-fix
...
add a common-lint-fix make target to make golangci-lint fix found iss…
2024-03-06 14:08:59 +01:00
thirdkeyword
5fc1bf1bf0
docs: fix some typos
...
Signed-off-by: thirdkeyword <fliterdashen@gmail.com>
2024-03-06 20:55:35 +08:00
Bryan Boreham
bbe39af99f
tsdb: zero out Labels and memSeries pointers in pool ( #13712 )
...
* tsdb: zero out Labels and memSeries pointers in pool
So that the garbage-collector doesn't see this memory as still in use.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
---------
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
Signed-off-by: Björn Rabenstein <github@rabenste.in>
Co-authored-by: Björn Rabenstein <github@rabenste.in>
2024-03-06 13:36:34 +01:00
Arthur Silva Sens
07355c9199
Bump client_golang to 1.19
...
Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com>
2024-03-06 09:11:13 -03:00
Bryan Boreham
0eb39a604b
Merge pull request #13714 from bboreham/fix-testendpoints
...
API tests: fix flaky TestEndpoints
2024-03-06 11:43:29 +00:00
machine424
6998bfab59
add a common-lint-fix make target to make golangci-lint fix found issues if it's supported by the linter
...
clean up common-lint target
Signed-off-by: machine424 <ayoubmrini424@gmail.com>
2024-03-06 12:06:02 +01:00
Bryan Boreham
63bc17ab9b
CI: run main tests with --tags=stringlabels
...
This is what we use for builds, so do the main testing (with -race) under that flag.
Drop non-stringlabels tests from current Go version; previous Go version still runs them.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-03-06 10:32:17 +00:00
Bryan Boreham
25f200bf85
API tests: fix flaky TestEndpoints
...
When a limit is specified, the API may return arbitrary rows, so don't
check specific response values.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-03-06 09:59:18 +00:00
Charles Korn
4e77e8e5ef
Allow using alternative PromQL engines for rule evaluation
...
Signed-off-by: Charles Korn <charles.korn@grafana.com>
2024-03-06 14:54:33 +11:00
Björn Rabenstein
e6b7bbcb6a
Merge pull request #13682 from duricanikolic/yuri/engine-test
...
SampleRingIterator: add currType field
2024-03-05 23:16:52 +01:00
Bryan Boreham
4c00445540
Merge pull request #13704 from darshanime/fix_ci
...
Fix lint error
2024-03-05 20:02:40 +00:00
beorn7
7df0b9b92d
storage: simplify sampleRing fix
...
Signed-off-by: beorn7 <beorn@grafana.com>
2024-03-05 15:41:18 +01:00
darshanime
61ce18950f
Fix pipeline golangci-lint error
...
Signed-off-by: darshanime <deathbullet@gmail.com>
2024-03-05 00:45:07 +05:30
Ben Kochie
80cfaa7698
Merge pull request #13654 from prometheus/dependabot/go_modules/google.golang.org/api-0.167.0
...
build(deps): bump google.golang.org/api from 0.157.0 to 0.167.0
2024-03-04 17:18:59 +01:00
Julien
88622cfa2c
Merge pull request #12551 from nabokihms/alertmanager-relabeling-config
...
Route different alerts to different alertmanagers
2024-03-04 16:45:00 +01:00
Julien
fcdb6c2b14
Merge pull request #13624 from roidelapluie/tolerance
...
Always align scrapes even if tolerance is bigger than 1% of scrape interval
2024-03-04 16:37:00 +01:00
Ben Kochie
91821b7b21
Merge pull request #13696 from prometheus/dependabot/go_modules/documentation/examples/remote_storage/github.com/stretchr/testify-1.9.0
...
build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 in /documentation/examples/remote_storage
2024-03-04 16:32:34 +01:00
dependabot[bot]
eb665988b0
build(deps): bump google.golang.org/api from 0.157.0 to 0.167.0
...
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client ) from 0.157.0 to 0.167.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases )
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md )
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.157.0...v0.167.0 )
---
updated-dependencies:
- dependency-name: google.golang.org/api
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 15:20:46 +00:00
Julien
c0cbb8082b
Merge pull request #13675 from kokes/parser_next_doc
...
docs: textparse.Parser return type mismatch
2024-03-04 16:19:53 +01:00
Julien
2d9ccf89d0
Merge pull request #13686 from prometheus/dependabot/go_modules/go-opentelemetry-io-0441a389d0
...
build(deps): bump the go-opentelemetry-io group with 10 updates
2024-03-04 16:19:17 +01:00
Ben Kochie
6edb8b891b
Merge pull request #13691 from prometheus/dependabot/github_actions/actions/cache-4.0.1
...
build(deps): bump actions/cache from 3.3.1 to 4.0.1
2024-03-04 15:27:27 +01:00
Ben Kochie
38c8e424e5
Merge pull request #13701 from prometheus/superq/hashi_api
...
Bump hashicorp/nomand/api
2024-03-04 12:06:34 +01:00
dependabot[bot]
1dc88dca88
build(deps): bump actions/cache from 3.3.1 to 4.0.1
...
Bumps [actions/cache](https://github.com/actions/cache ) from 3.3.1 to 4.0.1.
- [Release notes](https://github.com/actions/cache/releases )
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md )
- [Commits](88522ab9f3...ab5e6d0c87
)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 10:00:16 +00:00
Ben Kochie
a57c0b1cc8
Merge pull request #13685 from prometheus/dependabot/github_actions/scripts/golangci/golangci-lint-action-4.0.0
...
build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 in /scripts
2024-03-04 10:59:25 +01:00
Ben Kochie
50a6b496de
Merge pull request #13688 from prometheus/dependabot/github_actions/actions/upload-artifact-4.3.1
...
build(deps): bump actions/upload-artifact from 4.0.0 to 4.3.1
2024-03-04 10:58:44 +01:00
Ben Kochie
666c7988fe
Merge pull request #13514 from prometheus/dependabot/github_actions/actions/setup-go-5.0.0
...
build(deps): bump actions/setup-go from 4.1.0 to 5.0.0
2024-03-04 10:58:11 +01:00
Ben Kochie
3bce00d6c4
Merge pull request #13074 from prometheus/dependabot/github_actions/bufbuild/buf-lint-action-1.1.0
...
build(deps): bump bufbuild/buf-lint-action from 1.0.3 to 1.1.0
2024-03-04 10:57:34 +01:00
dependabot[bot]
e28ed059af
build(deps): bump github.com/stretchr/testify
...
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify ) from 1.8.4 to 1.9.0.
- [Release notes](https://github.com/stretchr/testify/releases )
- [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0 )
---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 09:57:19 +00:00
Ben Kochie
eaa2624cdd
Merge pull request #13687 from prometheus/dependabot/go_modules/golang.org/x/oauth2-0.17.0
...
build(deps): bump golang.org/x/oauth2 from 0.16.0 to 0.17.0
2024-03-04 10:56:18 +01:00
Ben Kochie
fe22468157
Merge pull request #13694 from prometheus/dependabot/go_modules/documentation/examples/remote_storage/github.com/influxdata/influxdb-1.11.5
...
build(deps): bump github.com/influxdata/influxdb from 1.11.4 to 1.11.5 in /documentation/examples/remote_storage
2024-03-04 10:55:24 +01:00
Ben Kochie
26a1fb60b8
Merge pull request #13690 from prometheus/dependabot/go_modules/github.com/prometheus/alertmanager-0.27.0
...
build(deps): bump github.com/prometheus/alertmanager from 0.26.0 to 0.27.0
2024-03-04 10:53:55 +01:00
SuperQ
3a5c07c51b
Bump hashicorp/nomand/api
...
Update `github.com/hashicorp/nomad/api` now that we require Go 1.21.
Signed-off-by: SuperQ <superq@gmail.com>
2024-03-04 10:48:27 +01:00
dependabot[bot]
0103ab8daa
build(deps): bump github.com/influxdata/influxdb
...
Bumps [github.com/influxdata/influxdb](https://github.com/influxdata/influxdb ) from 1.11.4 to 1.11.5.
- [Release notes](https://github.com/influxdata/influxdb/releases )
- [Commits](https://github.com/influxdata/influxdb/compare/v1.11.4...v1.11.5 )
---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-01 23:48:17 +00:00
dependabot[bot]
3cb6752b34
build(deps): bump github.com/prometheus/alertmanager
...
Bumps [github.com/prometheus/alertmanager](https://github.com/prometheus/alertmanager ) from 0.26.0 to 0.27.0.
- [Release notes](https://github.com/prometheus/alertmanager/releases )
- [Changelog](https://github.com/prometheus/alertmanager/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prometheus/alertmanager/compare/v0.26.0...v0.27.0 )
---
updated-dependencies:
- dependency-name: github.com/prometheus/alertmanager
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-01 23:44:42 +00:00
dependabot[bot]
091ad1c410
build(deps): bump actions/upload-artifact from 4.0.0 to 4.3.1
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 4.0.0 to 4.3.1.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](c7d193f32e...5d5d22a312
)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-01 23:44:24 +00:00
dependabot[bot]
af04032bfa
build(deps): bump golang.org/x/oauth2 from 0.16.0 to 0.17.0
...
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2 ) from 0.16.0 to 0.17.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.16.0...v0.17.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-01 23:44:18 +00:00
dependabot[bot]
e70b100ae8
build(deps): bump the go-opentelemetry-io group with 10 updates
...
Bumps the go-opentelemetry-io group with 10 updates:
| Package | From | To |
| --- | --- | --- |
| [go.opentelemetry.io/collector/featuregate](https://github.com/open-telemetry/opentelemetry-collector ) | `1.0.1` | `1.2.0` |
| [go.opentelemetry.io/collector/pdata](https://github.com/open-telemetry/opentelemetry-collector ) | `1.0.1` | `1.2.0` |
| [go.opentelemetry.io/collector/semconv](https://github.com/open-telemetry/opentelemetry-collector ) | `0.93.0` | `0.95.0` |
| [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib ) | `0.47.0` | `0.49.0` |
| [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go ) | `1.22.0` | `1.24.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://github.com/open-telemetry/opentelemetry-go ) | `1.22.0` | `1.24.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go ) | `1.22.0` | `1.24.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/open-telemetry/opentelemetry-go ) | `1.22.0` | `1.24.0` |
| [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go ) | `1.22.0` | `1.24.0` |
| [go.opentelemetry.io/otel/trace](https://github.com/open-telemetry/opentelemetry-go ) | `1.22.0` | `1.24.0` |
Updates `go.opentelemetry.io/collector/featuregate` from 1.0.1 to 1.2.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.0.1...pdata/v1.2.0 )
Updates `go.opentelemetry.io/collector/pdata` from 1.0.1 to 1.2.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/pdata/v1.0.1...pdata/v1.2.0 )
Updates `go.opentelemetry.io/collector/semconv` from 0.93.0 to 0.95.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.93.0...v0.95.0 )
Updates `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` from 0.47.0 to 0.49.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.47.0...zpages/v0.49.0 )
Updates `go.opentelemetry.io/otel` from 1.22.0 to 1.24.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.24.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace` from 1.22.0 to 1.24.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.24.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.22.0 to 1.24.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.24.0 )
Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` from 1.22.0 to 1.24.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.24.0 )
Updates `go.opentelemetry.io/otel/sdk` from 1.22.0 to 1.24.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.24.0 )
Updates `go.opentelemetry.io/otel/trace` from 1.22.0 to 1.24.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.24.0 )
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/collector/featuregate
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/collector/pdata
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/collector/semconv
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel/sdk
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
- dependency-name: go.opentelemetry.io/otel/trace
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-opentelemetry-io
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-01 23:44:11 +00:00
dependabot[bot]
c14419a38b
build(deps): bump golangci/golangci-lint-action in /scripts
...
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action ) from 3.7.0 to 4.0.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases )
- [Commits](3a91952989...3cfe3a4abb
)
---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-01 23:20:31 +00:00
Yuri Nikolic
d5ab1851dc
SampleRingIterator: add currType field
...
Signed-off-by: Yuri Nikolic <durica.nikolic@grafana.com>
2024-03-01 14:59:19 +01:00
György Krajcsovits
4d4d822c36
Add native histograms to latency/duration metrics
...
Dogfood native histograms.
Allow dependent projects to migrate to native histograms.
I took the defaults from client_golang.
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-03-01 14:44:38 +01:00
beorn7
f48c7a5503
promql: Add histograms to TestQueryStatistics
...
Also, fix the bugs exposed by the tests.
Signed-off-by: beorn7 <beorn@grafana.com>
2024-02-29 19:02:40 +01:00
beorn7
f46dd34982
promql: Add code comment
...
Signed-off-by: beorn7 <beorn@grafana.com>
2024-02-29 19:02:40 +01:00