MCPcopy Create free account
hub / github.com/cortexproject/cortex / ConvertToChunks

Function ConvertToChunks

pkg/querier/testutils.go:113–150  ·  view source on GitHub ↗
(t *testing.T, samples []cortexpb.Sample, histograms []*cortexpb.Histogram)

Source from the content-addressed store, hash-verified

111}
112
113func ConvertToChunks(t *testing.T, samples []cortexpb.Sample, histograms []*cortexpb.Histogram) []client.Chunk {
114 // We need to make sure that there is at least one chunk present,
115 // else no series will be selected.
116 var chk chunkenc.Chunk
117 if len(samples) > 0 {
118 chk = chunkenc.NewXORChunk()
119 appender, err := chk.Appender()
120 require.NoError(t, err)
121
122 for _, s := range samples {
123 appender.Append(s.TimestampMs, s.Value)
124 }
125 } else if len(histograms) > 0 {
126 if histograms[0].IsFloatHistogram() {
127 chk = chunkenc.NewFloatHistogramChunk()
128 appender, err := chk.Appender()
129 require.NoError(t, err)
130 for _, h := range histograms {
131 _, _, _, err = appender.AppendFloatHistogram(nil, h.TimestampMs, cortexpb.FloatHistogramProtoToFloatHistogram(*h), true)
132 }
133 require.NoError(t, err)
134 } else {
135 chk = chunkenc.NewHistogramChunk()
136 appender, err := chk.Appender()
137 require.NoError(t, err)
138 for _, h := range histograms {
139 _, _, _, err = appender.AppendHistogram(nil, h.TimestampMs, cortexpb.HistogramProtoToHistogram(*h), true)
140 }
141 require.NoError(t, err)
142 }
143 }
144
145 c := chunk.NewChunk(labels.EmptyLabels(), chk, model.Time(samples[0].TimestampMs), model.Time(samples[len(samples)-1].TimestampMs))
146 clientChunks, err := chunkcompat.ToChunks([]chunk.Chunk{c})
147 require.NoError(t, err)
148
149 return clientChunks
150}

Callers 1

Calls 8

NewChunkFunction · 0.92
ToChunksFunction · 0.92
AppendMethod · 0.80
IsFloatHistogramMethod · 0.80
AppenderMethod · 0.45
AppendHistogramMethod · 0.45

Tested by 1