Commit Graph

11171 Commits

Author SHA1 Message Date
Bryan Boreham
ee1157c14a labels: shrink stack arrays in Builder.Range
Go spends some time initializing all the elements of these arrays to
zero, so reduce the size from 1024 to 128. This is still much bigger
than we ever expect for a set of labels.

(If someone does have more than 128 labels it will still work, but via
heap allocation.)

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-22 17:14:43 +00:00
Bryan Boreham
b987afa7ef labels: simplify call to get Labels from Builder
It took a `Labels` where the memory could be re-used, but in practice
this hardly ever benefitted. Especially after converting `relabel.Process`
to `relabel.ProcessBuilder`.

Comparing the parameter to `nil` was a bug; `EmptyLabels` is not `nil`
so the slice was reallocated multiple times by `append`.

Lastly `Builder.Labels()` now estimates that the final size will depend
on labels added and deleted.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-22 17:05:20 +00:00
Bryan Boreham
90b2f7a540
Merge pull request #12161 from codesome/update-comment
tsdb: Fix a comment in tsdb/head_read.go
2023-03-22 17:02:28 +00:00
Bryan Boreham
5d90dc0627
Merge pull request #12084 from bboreham/target-labels
scraping: reduce memory allocations on Target labels
2023-03-22 09:02:08 +00:00
Julien Pivotto
8ac5363590
Merge pull request #12168 from roidelapluie/booldoc
Docs: use boolean instead of bool
2023-03-21 18:04:17 +01:00
Julien Pivotto
ae220724d4 Docs: use boolean instead of bool
boolean makes the type consistent and clickable on
https://prometheus.io/docs/prometheus/latest/configuration/configuration/

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-21 17:28:31 +01:00
Julien Pivotto
de50efbf7a
Merge pull request #12165 from prometheus/release-2.43
Merge 2.43 in main
2023-03-21 17:26:28 +01:00
Björn Rabenstein
559adab471
Merge pull request #12085 from leizor/leizor/prometheus/issues/11204
Handle native histograms in remote read
2023-03-21 17:25:34 +01:00
Vernon Miller
ca0abf26c5
Adds an affirmative log message for successful WAL repair (#12135)
* Adds an affirmative log message for successful WAL repair

Signed-off-by: Vernon Miller <vernon.miller@grafana.com>
Signed-off-by: Vernon Miller <96601789+aldernero@users.noreply.github.com>
Co-authored-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-03-21 19:33:43 +05:30
Julien Pivotto
edfc3bcd02
Merge pull request #12164 from roidelapluie/rel-243
Address review comments on release 2.43 changelog.
2023-03-21 13:52:36 +01:00
Julien Pivotto
67f48f47c7 Address review comments
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-21 13:50:48 +01:00
Julien Pivotto
842ab019ed
Merge pull request #12162 from roidelapluie/rel-2.43
Release 2.43.0
2023-03-21 13:49:31 +01:00
Julien Pivotto
1070c9b06c Release 2.43.0
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-21 13:07:51 +01:00
SuperQ
f14665b9e3 Fix docker tag sanitizer
Use a `-` instead of `_` to make the docker tag also pass semver checks.

Signed-off-by: SuperQ <superq@gmail.com>
2023-03-21 11:27:25 +01:00
Ganesh Vernekar
1b7d973f14
tsdb: Fix a comment in tsdb/head_read.go
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-03-21 15:15:36 +05:30
Julien Pivotto
fd8992cdbd
Merge pull request #12137 from g3offrey/fix/update-prometheus-ansible-link
docs: update ansible installation link
2023-03-20 11:14:56 +01:00
Julien Pivotto
901937c6ac
Merge pull request #12142 from colega/store-the-remote-client-url-string
remote.Client: store urlString
2023-03-20 10:44:10 +01:00
Julien Pivotto
bc7ce50d85
Merge pull request #12115 from prometheus/superq/go_1.20
Update Go version
2023-03-16 23:50:51 +01:00
Bryan Boreham
0c09c3feb0 scrape sync: avoid copy of labels for dropped targets
Since the Target object was just created in this function, nobody else
has a reference to it and there are no concerns about it being modified
concurrently so we don't need to copy the value.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-16 20:35:13 +00:00
Bryan Boreham
0dfa1e73f8 scrape: use LabelsRange instead of Labels, for performance
Includes a rewrite of `resolveConflictingExposedLabels` to use
`labels.Builder.Get`, which simplifies it considerably.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-16 20:35:13 +00:00
Bryan Boreham
2fde2fb37d scrape: add Target.LabelsRange
This allows users of a Target to iterate labels without allocating heap memory.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-16 20:35:13 +00:00
Julien Pivotto
d08254324e
Merge pull request #12149 from roidelapluie/relrc1-updatemakefile
Update makefile to better handle semver build metadata
2023-03-16 21:33:49 +01:00
Julien Pivotto
f8eb70c46d Merge branch 'release-2.43' of https://github.com/prometheus/prometheus into release-2.43 2023-03-16 21:09:16 +01:00
Julien Pivotto
71b24c25c2
Merge pull request #12147 from roidelapluie/relrc1
2.43.0-rc.1
2023-03-16 21:08:51 +01:00
Julien Pivotto
331a7dfd21 Replace '+' with '_' in docker image tag for semver compatibility
This change introduces a new variable, SANITIZED_DOCKER_IMAGE_TAG, which
replaces any '+' characters in the original DOCKER_IMAGE_TAG with '_'
characters. This ensures better compatibility with semver standards,
particularly when using metadata in version tags.

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-16 20:31:17 +01:00
Julien Pivotto
2c6168be5f Release 2.43.0-rc.1
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-16 20:21:40 +01:00
Bryan Boreham
934c520d37 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 20:15:10 +01:00
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