(timeSeries []prompb.TimeSeries, filter func(prompb.TimeSeries) bool)
| 2110 | } |
| 2111 | |
| 2112 | func 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 | |
| 2137 | func 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) |
searching dependent graphs…