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

Function buildWriteRequest

storage/remote/queue_manager.go:2137–2163  ·  view source on GitHub ↗
(logger *slog.Logger, timeSeries []prompb.TimeSeries, metadata []prompb.MetricMetadata, pBuf *proto.Buffer, filter func(prompb.TimeSeries) bool, buf compression.EncodeBuffer, compr compression.Type)

Source from the content-addressed store, hash-verified

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)
2139
2140 if stats.droppedSamples > 0 || stats.droppedExemplars > 0 || stats.droppedHistograms > 0 {
2141 logger.Debug("dropped data due to their age", "droppedSamples", stats.droppedSamples, "droppedExemplars", stats.droppedExemplars, "droppedHistograms", stats.droppedHistograms)
2142 }
2143
2144 req := &prompb.WriteRequest{
2145 Timeseries: timeSeries,
2146 Metadata: metadata,
2147 }
2148
2149 if pBuf == nil {
2150 pBuf = proto.NewBuffer(nil) // For convenience in tests. Not efficient.
2151 } else {
2152 pBuf.Reset()
2153 }
2154 if err := pBuf.Marshal(req); err != nil {
2155 return nil, stats.highest, stats.lowest, err
2156 }
2157
2158 compressed, err := compression.Encode(compr, pBuf.Bytes(), buf)
2159 if err != nil {
2160 return nil, stats.highest, stats.lowest, err
2161 }
2162 return compressed, stats.highest, stats.lowest, nil
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)

Calls 5

EncodeFunction · 0.92
buildTimeSeriesFunction · 0.85
ResetMethod · 0.65
BytesMethod · 0.65
MarshalMethod · 0.45

Used in the wild real call sites across dependent graphs

searching dependent graphs…