(v2Req *writev2.Request)
| 1160 | } |
| 1161 | |
| 1162 | func 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 { |
no test coverage detected
searching dependent graphs…