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

Function TestLiveStoreReplaysTraceInWalBlocks

modules/livestore/live_store_test.go:352–383  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

350}
351
352func TestLiveStoreReplaysTraceInWalBlocks(t *testing.T) {
353 tmpDir := t.TempDir()
354
355 liveStore, err := defaultLiveStore(t, tmpDir)
356 require.NoError(t, err)
357 require.NotNil(t, liveStore)
358
359 // push data
360 expectedID, expectedTrace := pushToLiveStore(t, liveStore)
361
362 inst, err := liveStore.getOrCreateInstance(testTenantID)
363 require.NoError(t, err)
364
365 // cut to head block
366 drained, err := inst.cutIdleTraces(t.Context(), true)
367 require.NoError(t, err)
368 require.True(t, drained, "should drain live traces in one iteration")
369
370 // cut head to wal blocks
371 _, err = inst.cutBlocks(t.Context(), true)
372 require.NoError(t, err)
373
374 // stop the live store and then create a new one to simulate a restart and replay the data on disk
375 err = services.StopAndAwaitTerminated(t.Context(), liveStore)
376 require.NoError(t, err)
377
378 liveStore, err = defaultLiveStore(t, tmpDir)
379 require.NoError(t, err)
380
381 requireTraceInLiveStore(t, liveStore, expectedID, expectedTrace)
382 requireInstanceState(t, liveStore.instances[testTenantID], instanceState{liveTraces: 0, walBlocks: 1, completeBlocks: 0})
383}
384
385func TestLiveStoreReplaysTraceInCompleteBlocks(t *testing.T) {
386 tmpDir := t.TempDir()

Callers

nothing calls this directly

Calls 8

defaultLiveStoreFunction · 0.85
pushToLiveStoreFunction · 0.85
requireTraceInLiveStoreFunction · 0.85
requireInstanceStateFunction · 0.85
cutIdleTracesMethod · 0.80
cutBlocksMethod · 0.80
ContextMethod · 0.65
getOrCreateInstanceMethod · 0.45

Tested by

no test coverage detected