(logger *slog.Logger, samples []writev2.TimeSeries, labels []string, pBuf *[]byte, filter func(writev2.TimeSeries) bool, buf compression.EncodeBuffer, compr compression.Type)
| 2163 | } |
| 2164 | |
| 2165 | func buildV2WriteRequest(logger *slog.Logger, samples []writev2.TimeSeries, labels []string, pBuf *[]byte, filter func(writev2.TimeSeries) bool, buf compression.EncodeBuffer, compr compression.Type) (compressed []byte, highest, lowest int64, _ error) { |
| 2166 | timeSeries, stats := buildV2TimeSeries(samples, filter) |
| 2167 | |
| 2168 | if stats.droppedSamples > 0 || stats.droppedExemplars > 0 || stats.droppedHistograms > 0 { |
| 2169 | logger.Debug("dropped data due to their age", "droppedSamples", stats.droppedSamples, "droppedExemplars", stats.droppedExemplars, "droppedHistograms", stats.droppedHistograms) |
| 2170 | } |
| 2171 | |
| 2172 | req := &writev2.Request{ |
| 2173 | Symbols: labels, |
| 2174 | Timeseries: timeSeries, |
| 2175 | } |
| 2176 | |
| 2177 | if pBuf == nil { |
| 2178 | pBuf = &[]byte{} // For convenience in tests. Not efficient. |
| 2179 | } |
| 2180 | |
| 2181 | data, err := req.OptimizedMarshal(*pBuf) |
| 2182 | if err != nil { |
| 2183 | return nil, stats.highest, stats.lowest, err |
| 2184 | } |
| 2185 | *pBuf = data |
| 2186 | |
| 2187 | compressed, err = compression.Encode(compr, *pBuf, buf) |
| 2188 | if err != nil { |
| 2189 | return nil, stats.highest, stats.lowest, err |
| 2190 | } |
| 2191 | return compressed, stats.highest, stats.lowest, nil |
| 2192 | } |
| 2193 | |
| 2194 | func buildV2TimeSeries(timeSeries []writev2.TimeSeries, filter func(writev2.TimeSeries) bool) ([]writev2.TimeSeries, *timeSeriesStats) { |
| 2195 | stats := newTimeSeriesStats() |
searching dependent graphs…