Skip to content

Commit c884d66

Browse files
authored
Merge pull request #6917 from SungJin1212/Add-prw2-pool
2 parents 1b3d767 + 1f83cc7 commit c884d66

File tree

13 files changed

+2464
-342
lines changed

13 files changed

+2464
-342
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
* [ENHANCEMENT] Modernizes the entire codebase by using go modernize tool. #7005
3030
* [ENHANCEMENT] Overrides Exporter: Expose all fields that can be converted to float64. Also, the label value `max_local_series_per_metric` got renamed to `max_series_per_metric`, and `max_local_series_per_user` got renamed to `max_series_per_user`. #6979
3131
* [ENHANCEMENT] Ingester: Add `cortex_ingester_tsdb_wal_replay_unknown_refs_total` and `cortex_ingester_tsdb_wbl_replay_unknown_refs_total` metrics to track unknown series references during wal/wbl replaying. #6945
32+
* [ENHANCEMENT] Distributor: Introduce a Protobuf model for Prometheus Remote Write 2.0 and a pool to improve performance. #6917
3233
* [ENHANCEMENT] Ruler: Emit an error message when the rule synchronization fails. #6902
3334
* [ENHANCEMENT] Querier: Support snappy and zstd response compression for `-querier.response-compression` flag. #6848
3435
* [ENHANCEMENT] Tenant Federation: Add a # of query result limit logic when the `-tenant-federation.regex-matcher-enabled` is enabled. #6845

pkg/cortexpb/compat.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020

2121
// ToWriteRequest converts matched slices of Labels, Samples, Metadata and Histograms into a WriteRequest proto.
2222
// It gets timeseries from the pool, so ReuseSlice() should be called when done.
23-
func ToWriteRequest(lbls []labels.Labels, samples []Sample, metadata []*MetricMetadata, histograms []Histogram, source WriteRequest_SourceEnum) *WriteRequest {
23+
func ToWriteRequest(lbls []labels.Labels, samples []Sample, metadata []*MetricMetadata, histograms []Histogram, source SourceEnum) *WriteRequest {
2424
req := &WriteRequest{
2525
Timeseries: PreallocTimeseriesSliceFromPool(),
2626
Metadata: metadata,

pkg/cortexpb/compatv2.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package cortexpb
2+
3+
import "github.com/prometheus/prometheus/model/labels"
4+
5+
func (e *ExemplarV2) ToLabels(b *labels.ScratchBuilder, symbols []string) labels.Labels {
6+
return desymbolizeLabels(b, e.GetLabelsRefs(), symbols)
7+
}
8+
9+
func (t *TimeSeriesV2) ToLabels(b *labels.ScratchBuilder, symbols []string) labels.Labels {
10+
return desymbolizeLabels(b, t.GetLabelsRefs(), symbols)
11+
}
12+
13+
// desymbolizeLabels decodes label references, with given symbols to labels.
14+
// Copied from the Prometheus: https://github.com/prometheus/prometheus/blob/v3.5.0/prompb/io/prometheus/write/v2/symbols.go#L76
15+
func desymbolizeLabels(b *labels.ScratchBuilder, labelRefs []uint32, symbols []string) labels.Labels {
16+
b.Reset()
17+
for i := 0; i < len(labelRefs); i += 2 {
18+
b.Add(symbols[labelRefs[i]], symbols[labelRefs[i+1]])
19+
}
20+
b.Sort()
21+
return b.Labels()
22+
}

0 commit comments

Comments
 (0)