MCPcopy
hub / github.com/grafana/tempo / TestMetrics_CompletionFlow

Function TestMetrics_CompletionFlow

modules/livestore/metrics_test.go:151–188  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

149}
150
151func TestMetrics_CompletionFlow(t *testing.T) {
152 setup := setupTest(t)
153 defer setup.cleanup()
154
155 // Create a trace and push it
156 traceID := test.ValidTraceID(nil)
157 trace := test.MakeTrace(10, traceID)
158 traceData, err := trace.Marshal()
159 require.NoError(t, err)
160
161 req := &tempopb.PushBytesRequest{
162 Traces: []tempopb.PreallocBytes{{Slice: traceData}},
163 Ids: [][]byte{traceID},
164 }
165 setup.instance.pushBytes(t.Context(), time.Now(), req)
166
167 // Cut traces to head block
168 drained, err := setup.instance.cutIdleTraces(t.Context(), true)
169 require.NoError(t, err)
170 require.True(t, drained, "should drain live traces in one iteration")
171
172 // Cut block to prepare for completion
173 blockID, err := setup.instance.cutBlocks(t.Context(), true)
174 require.NoError(t, err)
175 assert.NotEqual(t, uuid.Nil, blockID, "should generate a valid block ID")
176
177 // Record initial completion size histogram count
178 initialCompletionSize := getHistogramCount(t, metricCompletionSize)
179
180 // Complete the block
181 _, err = setup.instance.completeBlock(t.Context(), blockID)
182 require.NoError(t, err)
183
184 // Verify completion size metric was updated
185 finalCompletionSize := getHistogramCount(t, metricCompletionSize)
186 assert.Equal(t, initialCompletionSize+1, finalCompletionSize,
187 "completion size histogram should record one additional sample")
188}
189
190func TestMetrics_EmptyPushBytesRequest(t *testing.T) {
191 setup := setupTest(t)

Callers

nothing calls this directly

Calls 12

ValidTraceIDFunction · 0.92
MakeTraceFunction · 0.92
setupTestFunction · 0.85
getHistogramCountFunction · 0.85
cutIdleTracesMethod · 0.80
cutBlocksMethod · 0.80
completeBlockMethod · 0.80
MarshalMethod · 0.65
pushBytesMethod · 0.65
ContextMethod · 0.65
NowMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected