Commit graph

10197 commits

Author SHA1 Message Date
beorn7 9eafed0f79 promql: Add histogram_count and histogram_sum
This follow a simple function-based approach to access the count and
sum fields of a native Histogram. It might be more elegant to
implement “accessors” via the dot operator, as considered in the
brainstorming doc [1]. However, that would require the introduction of
a whole new concept in PromQL. For the PoC, we should be fine with the
function-based approch. Even the obvious inefficiencies (rate'ing a
whole histogram twice when we only want to rate each the count and the
sum once) could be optimized behind the scenes.

Note that the function-based approach elegantly solves the problem of
detecting counter resets in the sum of observations in the case of
negative observations. (Since the whole native Histogram is rate'd,
the counter reset is detected for the Histogram as a whole.)

We will decide later if an “accessor” approach is really needed. It
would change the example expression for average duration in
functions.md from

      histogram_sum(rate(http_request_duration_seconds[10m]))
	/
      histogram_count(rate(http_request_duration_seconds[10m]))

to

      rate(http_request_duration_seconds.sum[10m])
	/
      rate(http_request_duration_seconds.count[10m])

[1]: https://docs.google.com/document/d/1ch6ru8GKg03N02jRjYriurt-CZqUVY09evPg6yKTA1s/edit

Signed-off-by: beorn7 <beorn@grafana.com>
2022-06-28 18:16:48 +02:00
Björn Rabenstein f9f2e2855d
Merge pull request #10886 from prometheus/beorn7/sparsehistogram
Add histogram_fraction function
2022-06-28 16:34:13 +02:00
beorn7 a3a8f58bb3 promql: Add histogram_fraction function
Signed-off-by: beorn7 <beorn@grafana.com>
2022-06-28 15:58:03 +02:00
beorn7 ffaabea91a promql: Refine zero bucket treatment in histogramQuantile
Essentially, this mirrors the existing behavior for negative buckets:
If a histogram has only negative buckets, the upper bound of the zero
bucket is assumed to be zero.

Furthermore, it makes sure that the zero bucket boundaries are not
modified if a histogram that has no buckets at all but samples in the
zero bucket.

Also, add an TODO to vet if we really want this behavior.

Signed-off-by: beorn7 <beorn@grafana.com>
2022-06-19 15:06:51 +02:00
beorn7 095b6c93dd Merge branch 'main' into sparsehistogram 2022-06-14 14:27:35 +02:00
Björn Rabenstein 77d591cbce
Merge pull request #10851 from prometheus/beorn7/sparsehistogram
Merge main into sparsehistogram
2022-06-14 14:16:42 +02:00
beorn7 fb92a801f6 prompb: add lint ignores for metrics.proto
Signed-off-by: beorn7 <beorn@grafana.com>
2022-06-14 13:47:09 +02:00
Levi Harrison 59727ab0eb
Make clear that go install needs to be run in the cloned repo (#10866)
* `go install` in cloned repo

Signed-off-by: Levi Harrison <git@leviharrison.dev>

* Removing cloning to gopath

Signed-off-by: Levi Harrison <git@leviharrison.dev>

* Change wording

Signed-off-by: Levi Harrison <git@leviharrison.dev>
2022-06-13 22:00:27 +02:00
Sebastian Poxhofer 3f9a9d1e62
chore(discoveryManager): expose Discoverer refresh function (#10531)
Signed-off-by: secustor <sebastian@poxhofer.at>
2022-06-13 21:06:15 +02:00
Augustin Husson 5d1756c822
Upgrade codemirror and lezer to the latest version (#10841)
* bump codemirror to v0.20.x and lezer to v.0.16.x

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* bump codemirror to v6 and lezer to v1

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* stop treating warning as error for UI

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2022-06-13 17:55:06 +02:00
Peter Štibraný 5bd761fbfc
Merge pull request #10857 from pstibrany/fix-errors-handling
API: Fix errors handling
2022-06-13 17:45:35 +02:00
Augustin Husson 3dad28fcbd
UI: fix build (#10862)
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2022-06-13 16:40:08 +02:00
Augustin Husson 5184f49a2a
put every packages under the prometheus-io organization (#10849)
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2022-06-13 15:19:07 +02:00
Paschalis Tsilias 4f3791024a
Drop extra string held in relabel.Regexp struct (#10846)
* Drop extra string held in relabel.Regexp struct

Signed-off-by: Paschalis Tsilias <paschalist0@gmail.com>

* Use slice operations instead of TrimPrefix/TrimSuffix; Override String() method

Signed-off-by: Paschalis Tsilias <paschalist0@gmail.com>
2022-06-13 15:00:48 +02:00
Julien Pivotto 229e857416
Merge pull request #10795 from prometheus/dependabot/go_modules/k8s.io/client-go-0.24.1
build(deps): bump k8s.io/client-go from 0.24.0 to 0.24.1
2022-06-13 13:56:34 +02:00
Augustin Husson f609b7bbcc
remove GO111MODULE and GOVENDOR usage (#10836)
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2022-06-13 13:08:59 +02:00
dependabot[bot] f4ea0709f9
build(deps): bump k8s.io/client-go from 0.24.0 to 0.24.1
Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.24.0 to 0.24.1.
- [Release notes](https://github.com/kubernetes/client-go/releases)
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.24.0...v0.24.1)

---
updated-dependencies:
- dependency-name: k8s.io/client-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-13 09:42:48 +00:00
Julien Pivotto eb07db104a
Merge pull request #10835 from prometheus/dependabot/go_modules/github.com/stretchr/testify-1.7.2
build(deps): bump github.com/stretchr/testify from 1.7.1 to 1.7.2
2022-06-13 11:40:42 +02:00
Augustin Husson e166cf402a
use npm workspace flag for the build instead of manually navigate through the folders (#10854)
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2022-06-13 10:53:46 +02:00
Bryan Boreham 542b9ecdbd
tsdb: reduce sleep time when reading WAL (#10859)
The code sleeps for a short time to allow goroutines to finish, however
it seems the duration can be reduced a lot, speeding up the reading
process.

I checked using some WAL data from production, and the queue is almost
always empty at the time we enter `waitForIdle()` so there is no danger
of spinning in the tight loop.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2022-06-12 11:54:11 +05:30
beorn7 40ad5e284a Merge branch 'main' into beorn7/sparsehistogram 2022-06-09 20:50:30 +02:00
Julien Pivotto a84c472745
Merge back release-2.36 (#10850)
* Fix UI build (#10842)

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>

* Add --lint-fatal option (#10815) (#10840)

This keeps the previous behaviour of printing details about duplicate
rules but doesn't exit with a fatal exit code unless turned on.

Signed-off-by: David Leadbeater <dgl@dgl.cx>

Co-authored-by: David Leadbeater <dgl@dgl.cx>

* Add v2.36.1 CHANGELOG and VERSION update

Signed-off-by: Matthias Loibl <mail@matthiasloibl.com>

Co-authored-by: Julien Pivotto <roidelapluie@inuits.eu>
Co-authored-by: David Leadbeater <dgl@dgl.cx>
2022-06-09 18:09:44 +02:00
dependabot[bot] 00982ce4d3
build(deps): bump github.com/stretchr/testify from 1.7.1 to 1.7.2
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.1 to 1.7.2.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.1...v1.7.2)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-09 14:37:17 +00:00
Matthias Loibl 3c0a100dec
Merge pull request #10848 from metalmatze/release-2.36.1
Add v2.36.1 CHANGELOG and VERSION update
2022-06-09 16:35:42 +02:00
Matthias Loibl e5b794293f
Add v2.36.1 CHANGELOG and VERSION update
Signed-off-by: Matthias Loibl <mail@matthiasloibl.com>
2022-06-09 16:14:52 +02:00
Julien Pivotto 8ac4e50ec4
Add --lint-fatal option (#10815) (#10840)
This keeps the previous behaviour of printing details about duplicate
rules but doesn't exit with a fatal exit code unless turned on.

Signed-off-by: David Leadbeater <dgl@dgl.cx>

Co-authored-by: David Leadbeater <dgl@dgl.cx>
2022-06-09 15:33:31 +02:00
Julien Pivotto f2ba2a0800
Fix UI build (#10843)
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2022-06-09 15:11:46 +02:00
Julien Pivotto b8724ca763
Fix UI build (#10842)
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2022-06-09 15:11:45 +02:00
dependabot[bot] 867d3bd78f
build(deps): bump github.com/go-kit/log (#10827)
Bumps [github.com/go-kit/log](https://github.com/go-kit/log) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/go-kit/log/releases)
- [Commits](https://github.com/go-kit/log/compare/v0.2.0...v0.2.1)

---
updated-dependencies:
- dependency-name: github.com/go-kit/log
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 15:55:35 +02:00
dependabot[bot] c2d6acdcc5
build(deps): bump github.com/vultr/govultr/v2 from 2.17.0 to 2.17.1 (#10811)
Bumps [github.com/vultr/govultr/v2](https://github.com/vultr/govultr) from 2.17.0 to 2.17.1.
- [Release notes](https://github.com/vultr/govultr/releases)
- [Changelog](https://github.com/vultr/govultr/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vultr/govultr/compare/v2.17.0...v2.17.1)

---
updated-dependencies:
- dependency-name: github.com/vultr/govultr/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 15:55:12 +02:00
dependabot[bot] 7b8ed5d36b
build(deps): bump github.com/prometheus/common (#10826)
Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.32.1 to 0.34.0.
- [Release notes](https://github.com/prometheus/common/releases)
- [Commits](https://github.com/prometheus/common/compare/v0.32.1...v0.34.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/common
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 15:55:01 +02:00
dependabot[bot] c92d571e5d
build(deps): bump github.com/gophercloud/gophercloud (#10834)
Bumps [github.com/gophercloud/gophercloud](https://github.com/gophercloud/gophercloud) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/gophercloud/gophercloud/releases)
- [Changelog](https://github.com/gophercloud/gophercloud/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gophercloud/gophercloud/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: github.com/gophercloud/gophercloud
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 15:54:38 +02:00
Julien Pivotto e4a09f2b4b
uyuni: Use default HTTP client and set relative paths (#10814)
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2022-06-08 11:29:44 +02:00
dependabot[bot] eef02a0334
build(deps): bump github.com/prometheus/client_golang (#10828)
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.12.1 to 1.12.2.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.12.1...v1.12.2)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 11:14:39 +02:00
dependabot[bot] 6bd75d5ba7
build(deps): bump github.com/stretchr/testify (#10829)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.0 to 1.7.2.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.0...v1.7.2)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 11:14:29 +02:00
dependabot[bot] 28322709eb
build(deps): bump github.com/aws/aws-sdk-go from 1.44.20 to 1.44.29 (#10832)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.44.20 to 1.44.29.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.44.20...v1.44.29)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 10:58:30 +02:00
dependabot[bot] 80eded08f6
build(deps): bump google.golang.org/api from 0.80.0 to 0.83.0 (#10830)
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.80.0 to 0.83.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.80.0...v0.83.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>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 10:54:05 +02:00
dependabot[bot] 2bf9d26732
build(deps): bump k8s.io/api from 0.24.0 to 0.24.1 (#10812)
Bumps [k8s.io/api](https://github.com/kubernetes/api) from 0.24.0 to 0.24.1.
- [Release notes](https://github.com/kubernetes/api/releases)
- [Commits](https://github.com/kubernetes/api/compare/v0.24.0...v0.24.1)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 10:50:54 +02:00
Matthieu MOREL 0906f2eafa
refactor (promql): move from github.com/pkg/errors to 'errors' and 'fmt' (#10817)
Signed-off-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>

Co-authored-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>
2022-06-08 10:47:52 +02:00
Matthieu MOREL 47e13b26c1
refactor (tracing): move from github.com/pkg/errors to 'errors' and 'fmt' (#10819)
Signed-off-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>

Co-authored-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>
2022-06-08 10:44:42 +02:00
Matthieu MOREL 554f3f32f8
refactor (template): move from github.com/pkg/errors to 'errors' and 'fmt' (#10818)
Signed-off-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>

Co-authored-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>
2022-06-08 10:44:08 +02:00
Matthieu MOREL 15aeadedbe
enable dependabot for github.com/prometheus/prometheus/documentation/examples/remote_storage module (#10821)
Signed-off-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>

Co-authored-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>
2022-06-08 10:28:21 +02:00
Bryan Boreham 9f79a6f4b5
tsdb: faster CRC check by avoiding allocations (#10789)
Instead of creating a new hashing object every time, call `crc32.Checksum`
which computes the answer without allocations.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2022-06-08 08:00:59 +05:30
Filip Petkovski 7a78897d0b
Improve reliability of Kubernetes SD tests (#10761)
The tests for Kubernetes SD rely on comparing target groups by first
serializing them to JSON. However, the target group MarshalJSON function
only serializes the __address__ label, which makes eliminates all other
labels from the comparison.

This commit implements a separate marshaling function intended for use in
Kubernetes SD tests. The function serializes all target labels, making
comparisons much more reliable. The commit also fixes all tests that
started to fail due to the newly introduced change.

Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
2022-06-07 16:19:40 +01:00
Filip Petkovski a56731126d
Export TSDB status structs (#10783)
We would like to implement the tsdb/status API in certain Thanos
components.

In order to match the Prometheus API and avoid duplicating code,
this commit makes the structs used in the status API public.

Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
2022-06-07 16:13:21 +01:00
Bryan Boreham 2e2c014d52
Labels: optimise creation of signature with/without labels (#10667)
* Labels: create signature with/without labels

Instead of creating a new Labels slice then converting to signature,
go directly to the signature and save time.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Labels: refactor Builder tests

Have one test with a range of cases, and have them check the final
output rather than checking the internal structure of the Builder.

Also add a couple of cases where the value is "", which should be
interpreted as 'delete'.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Labels: add 'Keep' function to Builder

This lets us replace `Labels.WithLabels` with the more general `Builder`.

In `engine.resultMetric()` we can call `Keep()` instead of checking
and calling `Del()`.

Avoid calling `Sort()` in `Builder.Labels()` if we didn't add anything,
so that `Keep()` has the same performance as `WithLabels()`.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2022-06-07 10:08:27 +05:30
Julien Pivotto 143a760e76
Hetzner SD: Implement set directory (#10813)
Makes path relative to Prometheus config file.

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2022-06-05 07:54:43 +02:00
Łukasz Mierzwa b11062bfcc
Don't count added labels when initializing slice (#10756)
This was added in #10749 but based on feedback it might be over-allocating so worth removing.

Signed-off-by: Łukasz Mierzwa <l.mierzwa@gmail.com>
2022-06-04 08:45:02 +05:30
David Leadbeater 355b8bcf0b
Add --lint-fatal option (#10815)
This keeps the previous behaviour of printing details about duplicate
rules but doesn't exit with a fatal exit code unless turned on.

Signed-off-by: David Leadbeater <dgl@dgl.cx>
2022-06-03 23:33:39 +10:00
dependabot[bot] 636f7e5483
build(deps): bump k8s.io/apimachinery from 0.24.0 to 0.24.1 (#10806)
Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.24.0 to 0.24.1.
- [Release notes](https://github.com/kubernetes/apimachinery/releases)
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.24.0...v0.24.1)

---
updated-dependencies:
- dependency-name: k8s.io/apimachinery
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-03 13:48:47 +02:00