Commit graph

11094 commits

Author SHA1 Message Date
Bryan Boreham bd23e8899d labels: add test for Builder.Range
Including mutating the Builder being Ranged over.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-16 20:15:08 +01:00
Bartlomiej Plotka a494c44746
Merge pull request #12145 from bboreham/fix-label-builder
labels: cope with mutating Builder during Range call
2023-03-16 19:33:14 +01:00
Björn Rabenstein d303fa77b9
Merge pull request #12144 from prometheus/beorn7/doc
docs: Clarify that range selectors use a closed interval
2023-03-16 17:15:26 +01:00
Bryan Boreham 3743d87c56 labels: cope with mutating Builder during Range call
Although we had a different slice, the underlying memory was the same so
any changes meant we could skip some values.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-16 13:28:15 +00:00
Bryan Boreham 3c4ab7a069 labels: add test for Builder.Range
Including mutating the Builder being Ranged over.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-16 13:25:55 +00:00
beorn7 71c57a1292 docs: Clarify that range selectors use a closed interval
Signed-off-by: beorn7 <beorn@grafana.com>
2023-03-16 13:55:57 +01:00
Abhijit Mukherjee 8f6d5dcd45
Fix: getting rid of EncOOOXOR chunk encoding (#12111)
Signed-off-by: mabhi <abhijit.mukherjee@infracloud.io>
2023-03-16 15:53:47 +05:30
Oleg Zaytsev beb7d3b80f
remote.Client: store urlString
During remote write, we call url.String() twice:
- to add the Endpoint() to the span
- to actually know where whe should send the request

This value does not change over time, and it's not really that
lightweight to calculate. I wrote this simple benchmark:

    func BenchmarkURLString(b *testing.B) {
        u, err := url.Parse("https://remote.write.com/api/v1")
        require.NoError(b, err)

        b.Run("string", func(b *testing.B) {
            count := 0
            for i := 0; i < b.N; i++ {
                count += len(u.String())
            }
        })
    }

And the results are ~200ns/op, 80B/op, 3 allocs/op.

Yes, we're going to go to the network here, which is a huge amount of
resources compared to this, but still, on agents that send 500 requests
per second, that is 1500 wasteful allocations per second.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2023-03-16 09:53:10 +01:00
g3offrey d01c51fad0 docs: update ansible installation link
Signed-off-by: g3offrey <11151445+g3offrey@users.noreply.github.com>
2023-03-15 15:58:44 +01:00
Ganesh Vernekar 58a8d526e8
Merge pull request #11992 from codesome/no-reencode-chunk
Do not re-encode head chunk for ChunkQuerier
2023-03-15 18:30:38 +05:30
Ganesh Vernekar 0a3f203c63
Update tests to not assume the chunk implementation
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-03-15 17:58:37 +05:30
Ganesh Vernekar 45b025898f
Add BenchmarkHeadChunkQuerier and BenchmarkHeadQuerier
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-03-15 17:58:31 +05:30
Ganesh Vernekar 0c0c2af7f5
Do not re-encode head chunk in ChunkQuerier
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-03-15 17:58:01 +05:30
Björn Rabenstein 847093479b
Merge pull request #11978 from trevorwhitney/set-counter-hint
Set `CounterResetHint` and use in recording rules
2023-03-14 21:52:41 +01:00
Trevor Whitney e3513d1dd2
Change nested ifs to a switch
Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>
2023-03-14 14:22:20 -06:00
Trevor Whitney b4e324f637
Handle valid cases of mismatched hints when adding
Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>
2023-03-14 14:22:14 -06:00
Trevor Whitney c3e0a83725
rules: no longer force CounterResetHint to Gauge
Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>
2023-03-14 14:22:07 -06:00
Trevor Whitney dd94ebb87b
promql: set CounterResetHint after rate and sum
Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>
2023-03-14 14:21:59 -06:00
Julien Pivotto 4b4939fa37
Merge pull request #12116 from bboreham/bryan-shepherd
Propose Bryan Boreham as 2.44 release shepherd
2023-03-14 15:01:53 +01:00
Julien Pivotto ba235ee353
Merge pull request #12124 from pbudner/advertise-valid-remote-write-flag
Advertise correct flag to enable remote write receiver
2023-03-14 14:40:35 +01:00
Julien Pivotto bec68558ba
Merge pull request #12125 from roidelapluie/promtooldoc
Command Line Documentation
2023-03-14 10:59:33 +01:00
Julien Pivotto 1922db0586 Document command line tools
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-13 14:20:55 +01:00
Ganesh Vernekar 2af44f9558
tsdb: Update OOO min/max time properly after replaying m-map chunks
Without this fix, if snapshots were enabled, and wbl goes missing
between restarts, then TSDB does not recognize that there are ooo
mmap chunks on disk and we cannot query them until those chunks
are compacted into blocks.

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-03-13 13:14:00 +05:30
Ganesh Vernekar 1c3f1216b3
tsdb: Test querying after missing wbl with snapshots enabled
If the snapshot was enabled with some ooo mmap chunks on disk,
and wbl was removed between restarts, then we should still be able
to query the ooo mmap chunks after a restart. This test shows that
we are not able to query those ooo mmap chunks after a restart
under this situation.

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-03-13 13:14:00 +05:30
Ganesh Vernekar c9d06f2826
tsdb: Replay m-map chunk only when required
M-map chunks replayed on startup are discarded if there
was no WAL and no snapshot loaded, because there is no
series created in the Head that it can map to. So only
load m-map chunks from disk if there is either a snapshot
loaded or there is WAL on disk.

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-03-13 13:13:42 +05:30
Ganesh Vernekar 6c008ec56a
Merge pull request #11962 from jesusvazquez/jvp/protect-new-compaction-head-from-uninitialized-wbl
TSDB: Protect NewOOOCompactionHead from an uninitialized wbl
2023-03-13 10:52:03 +05:30
Julien Pivotto 865f474c2b
Merge pull request #12122 from arukiidou/chore/prometheus-example-bump
build(deps): bump prometheus/prometheus from 0.37.0 to 0.42.0 in examples
2023-03-12 22:28:52 +01:00
Bartlomiej Plotka 742979a3e5
Merge pull request #10704 from hdost/feat/167-prometheus-docs
docs: Add signal information to getting started
2023-03-12 13:02:54 +01:00
Harold Dost 3125e169ae docs: Add signal information to getting started
Closes prometheus/docs#167

Signed-off-by: Harold Dost <h.dost@criteo.com>
2023-03-12 00:31:04 +01:00
pbudner 46683eadf7 fix: advertise correct flag to enable remote write receiver
Signed-off-by: pbudner <mail@pascalbudner.de>
2023-03-11 13:50:52 +01:00
junya koyama bde3a04228
build(deps): bump github.com/prometheus/prometheus from 0.37.0 to 0.42.0 in /documentation/examples/remote_storage
Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>
2023-03-11 17:15:43 +09:00
Justin Lei 60ad864667 Remove hacky promql.Test native histogram thing
Signed-off-by: Justin Lei <justin.lei@grafana.com>
2023-03-09 11:05:53 -08:00
Justin Lei c16b6a0185 Handle native histograms in remote read
Signed-off-by: Justin Lei <justin.lei@grafana.com>
2023-03-09 09:13:53 -08:00
Julien Pivotto 001ee2620e
Merge pull request #12114 from roidelapluie/new-release
Release 2.43.0-rc.0
2023-03-09 16:07:30 +01:00
Julien Pivotto 031fc2dfb5 Address feedback
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-09 15:05:18 +01:00
Bryan Boreham 4c640677f7 Propose Bryan Boreham as 2.44 release shepherd
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-09 14:02:01 +00:00
SuperQ 504a16d135
Update Go version
Update build/test to use Go 1.20.

Signed-off-by: SuperQ <superq@gmail.com>
2023-03-09 14:41:24 +01:00
Julien Pivotto b6d91e8bf8 Release 2.43.0-rc.0
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-09 14:30:02 +01:00
Julien Pivotto 5583c77b3a
Merge pull request #12095 from damnever/unnecessary-sort
Remove unnecessary sort
2023-03-09 13:12:02 +01:00
Bryan Boreham b96b89ef8b
Merge pull request #12048 from bboreham/faster-targets
Scraping targets are synced by creating the full set, then adding/removing any which have changed.
This PR speeds up the process of creating the full set.

I added a benchmark for `TargetsFromGroup`; it uses configuration from a typical Kubernetes SD.

The crux of the change is to do relabeling inside labels.Builder instead of converting to labels.Labels and back again for every rule. The change is broken into several commits for easier review.

This is a breaking change to `scrape.PopulateLabels()`, but `relabel.Process` is left as-is, with a new `relabel.ProcessBuilder` option.
2023-03-09 11:10:01 +00:00
Bryan Boreham d21229b27a
Merge pull request #12101 from bboreham/disable-slow-promql-tests
promql: disable some slow cases in TestConcurrentRangeQueries
2023-03-09 11:08:12 +00:00
Arve Knudsen bc9a82f5a1
remote: Improve some comments (#12102)
Improve some comments in storage/remote/queue_manager.go, wrt. general
language and a typo.

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2023-03-09 11:05:24 +00:00
Julien Pivotto 479fde5bf1
Merge pull request #12106 from roidelapluie/deps243
Update go dependencies
2023-03-09 08:00:50 +01:00
Julien Pivotto 5f3a02f1e2 Update go dependencies
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-08 23:57:43 +01:00
Arve Knudsen 435b500de7
remote: Convert to RecoverableError using errors.As (#12103)
In storage/remote, try converting to RecoverableError using errors.As,
instead of through direct casting.

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2023-03-08 13:58:09 -07:00
Julien Pivotto 9afbb23d4a
Merge pull request #12100 from prometheus/bump-otel-1-14
Bump Otel and dependencies from 1.11.2 to 1.14.0
2023-03-08 20:59:14 +01:00
Julien Pivotto f2e3c9f98c
Merge pull request #12098 from roidelapluie/update-our-deps
Update our own dependencies, support proxy from env
2023-03-08 20:58:36 +01:00
Julien Pivotto 1fd59791e1 Update tests
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-08 16:32:39 +01:00
Bryan Boreham be4a9c25f0 promql: disable some slow cases in TestConcurrentRangeQueries
TestConcurrentRangeQueries runs many queries, up to 4 at the same time,
to try to expose any race conditions.
This change stops four of them from running with a thousand or more steps:

  `holt_winters(a_X[1d], 0.3, 0.3)`
  `changes(a_X[1d])`
  `rate(a_X[1d])`
  `absent_over_time(a_X[1d])`

Particularly when the test runs with `-race` in CI, this reduces the
time and resources required.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-08 14:28:30 +00:00
Charles Korn 3db98d7dde
Avoid unnecessary allocations in recording rule evaluation (#11812)
Re-use the Builder each time round the loop.
2023-03-08 12:57:19 +00:00