MCPcopy Create free account
hub / github.com/prometheus/prometheus / buildTimeSeries

Function buildTimeSeries

storage/remote/queue_manager.go:2112–2135  ·  view source on GitHub ↗
(timeSeries []prompb.TimeSeries, filter func(prompb.TimeSeries) bool)

Source from the content-addressed store, hash-verified

2110}
2111
2112func buildTimeSeries(timeSeries []prompb.TimeSeries, filter func(prompb.TimeSeries) bool) ([]prompb.TimeSeries, *timeSeriesStats) {
2113 stats := newTimeSeriesStats()
2114
2115 timeSeries = slices.DeleteFunc(timeSeries, func(ts prompb.TimeSeries) bool {
2116 if filter != nil && filter(ts) {
2117 stats.recordDropped(len(ts.Samples) > 0, len(ts.Exemplars) > 0, len(ts.Histograms) > 0)
2118 return true
2119 }
2120
2121 // At the moment we only ever append a TimeSeries with a single sample or exemplar in it.
2122 if len(ts.Samples) > 0 {
2123 stats.updateTimestamp(ts.Samples[0].Timestamp)
2124 }
2125 if len(ts.Exemplars) > 0 {
2126 stats.updateTimestamp(ts.Exemplars[0].Timestamp)
2127 }
2128 if len(ts.Histograms) > 0 {
2129 stats.updateTimestamp(ts.Histograms[0].Timestamp)
2130 }
2131 return false
2132 })
2133
2134 return timeSeries, stats
2135}
2136
2137func buildWriteRequest(logger *slog.Logger, timeSeries []prompb.TimeSeries, metadata []prompb.MetricMetadata, pBuf *proto.Buffer, filter func(prompb.TimeSeries) bool, buf compression.EncodeBuffer, compr compression.Type) (_ []byte, highest, lowest int64, _ error) {
2138 timeSeries, stats := buildTimeSeries(timeSeries, filter)

Callers 3

TestBuildTimeSeriesFunction · 0.85
BenchmarkBuildTimeSeriesFunction · 0.85
buildWriteRequestFunction · 0.85

Calls 3

newTimeSeriesStatsFunction · 0.85
recordDroppedMethod · 0.80
updateTimestampMethod · 0.45

Tested by 2

TestBuildTimeSeriesFunction · 0.68
BenchmarkBuildTimeSeriesFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…