MCPcopy
hub / github.com/prometheus/prometheus / v2RequestToWriteRequest

Function v2RequestToWriteRequest

storage/remote/queue_manager_test.go:1162–1234  ·  view source on GitHub ↗
(v2Req *writev2.Request)

Source from the content-addressed store, hash-verified

1160}
1161
1162func v2RequestToWriteRequest(v2Req *writev2.Request) (*prompb.WriteRequest, error) {
1163 req := &prompb.WriteRequest{
1164 Timeseries: make([]prompb.TimeSeries, len(v2Req.Timeseries)),
1165 Metadata: []prompb.MetricMetadata{},
1166 }
1167 b := labels.NewScratchBuilder(0)
1168 for i, rts := range v2Req.Timeseries {
1169 lbls, err := rts.ToLabels(&b, v2Req.Symbols)
1170 if err != nil {
1171 return nil, fmt.Errorf("failed to convert labels: %w", err)
1172 }
1173 lbls.Range(func(l labels.Label) {
1174 req.Timeseries[i].Labels = append(req.Timeseries[i].Labels, prompb.Label{
1175 Name: l.Name,
1176 Value: l.Value,
1177 })
1178 })
1179
1180 exemplars := make([]prompb.Exemplar, len(rts.Exemplars))
1181 for j, e := range rts.Exemplars {
1182 exemplars[j].Value = e.Value
1183 exemplars[j].Timestamp = e.Timestamp
1184 ex, err := e.ToExemplar(&b, v2Req.Symbols)
1185 if err != nil {
1186 return nil, fmt.Errorf("failed to convert exemplar: %w", err)
1187 }
1188 ex.Labels.Range(func(l labels.Label) {
1189 exemplars[j].Labels = append(exemplars[j].Labels, prompb.Label{
1190 Name: l.Name,
1191 Value: l.Value,
1192 })
1193 })
1194 }
1195 req.Timeseries[i].Exemplars = exemplars
1196
1197 req.Timeseries[i].Samples = make([]prompb.Sample, len(rts.Samples))
1198 for j, s := range rts.Samples {
1199 req.Timeseries[i].Samples[j].Timestamp = s.Timestamp
1200 req.Timeseries[i].Samples[j].Value = s.Value
1201 }
1202
1203 req.Timeseries[i].Histograms = make([]prompb.Histogram, len(rts.Histograms))
1204 for j, h := range rts.Histograms {
1205 if h.IsFloatHistogram() {
1206 req.Timeseries[i].Histograms[j] = prompb.FromFloatHistogram(h.Timestamp, h.ToFloatHistogram())
1207 continue
1208 }
1209 req.Timeseries[i].Histograms[j] = prompb.FromIntHistogram(h.Timestamp, h.ToIntHistogram())
1210 }
1211
1212 // Convert v2 metadata to v1 format.
1213 if rts.Metadata.Type != writev2.Metadata_METRIC_TYPE_UNSPECIFIED {
1214 labels, err := rts.ToLabels(&b, v2Req.Symbols)
1215 if err != nil {
1216 return nil, fmt.Errorf("failed to convert metadata labels: %w", err)
1217 }
1218 metadata, err := rts.ToMetadata(v2Req.Symbols)
1219 if err != nil {

Callers 1

StoreMethod · 0.85

Calls 12

NewScratchBuilderFunction · 0.92
FromFloatHistogramFunction · 0.92
FromIntHistogramFunction · 0.92
FromMetadataTypeFunction · 0.92
ToMetadataMethod · 0.80
RangeMethod · 0.65
StringMethod · 0.65
ToLabelsMethod · 0.45
ToExemplarMethod · 0.45
IsFloatHistogramMethod · 0.45
ToFloatHistogramMethod · 0.45
ToIntHistogramMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…