MCPcopy
hub / github.com/prometheus/prometheus / buildV2WriteRequest

Function buildV2WriteRequest

storage/remote/queue_manager.go:2165–2192  ·  view source on GitHub ↗
(logger *slog.Logger, samples []writev2.TimeSeries, labels []string, pBuf *[]byte, filter func(writev2.TimeSeries) bool, buf compression.EncodeBuffer, compr compression.Type)

Source from the content-addressed store, hash-verified

2163}
2164
2165func 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
2194func buildV2TimeSeries(timeSeries []writev2.TimeSeries, filter func(writev2.TimeSeries) bool) ([]writev2.TimeSeries, *timeSeriesStats) {
2195 stats := newTimeSeriesStats()

Calls 3

OptimizedMarshalMethod · 0.95
EncodeFunction · 0.92
buildV2TimeSeriesFunction · 0.85

Used in the wild real call sites across dependent graphs

searching dependent graphs…