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

Function TestRetention

tempodb/retention_test.go:24–80  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

22)
23
24func TestRetention(t *testing.T) {
25 tempDir := t.TempDir()
26
27 r, w, c, err := New(&Config{
28 Backend: backend.Local,
29 Local: &local.Config{
30 Path: path.Join(tempDir, "traces"),
31 },
32 Block: &common.BlockConfig{
33 BloomFP: 0.01,
34 BloomShardSizeBytes: 100_000,
35 Version: encoding.DefaultEncoding().Version(),
36 },
37 WAL: &wal.Config{
38 Filepath: path.Join(tempDir, "wal"),
39 },
40 BlocklistPoll: 0,
41 }, nil, log.NewNopLogger())
42 assert.NoError(t, err)
43
44 ctx := context.Background()
45 err = c.EnableCompaction(ctx, &CompactorConfig{
46 MaxCompactionRange: time.Hour,
47 BlockRetention: time.Hour,
48 CompactedBlockRetention: time.Hour,
49 }, &mockSharder{}, &mockOverrides{})
50 require.NoError(t, err)
51
52 r.EnablePolling(ctx, &mockJobSharder{}, false)
53
54 blockID := backend.NewUUID()
55
56 wal := w.WAL()
57 assert.NoError(t, err)
58
59 meta := &backend.BlockMeta{BlockID: blockID, TenantID: testTenantID}
60 head, err := wal.NewBlock(meta, model.CurrentEncoding)
61 assert.NoError(t, err)
62
63 complete, err := w.CompleteBlock(context.Background(), head)
64 assert.NoError(t, err)
65 blockID = complete.BlockMeta().BlockID
66
67 rw := r.(*readerWriter)
68 // poll
69 checkBlocklists(ctx, t, (uuid.UUID)(blockID), 1, 0, rw)
70
71 // retention should mark it compacted
72 rw.compactorCfg.BlockRetention = 0
73 r.(*readerWriter).doRetention(ctx)
74 checkBlocklists(ctx, t, (uuid.UUID)(blockID), 0, 1, rw)
75
76 // retention again should clear it
77 rw.compactorCfg.CompactedBlockRetention = 0
78 r.(*readerWriter).doRetention(ctx)
79 checkBlocklists(ctx, t, (uuid.UUID)(blockID), 0, 0, rw)
80}
81

Callers

nothing calls this directly

Calls 13

DefaultEncodingFunction · 0.92
NewUUIDFunction · 0.92
checkBlocklistsFunction · 0.85
NewBlockMethod · 0.80
doRetentionMethod · 0.80
NewFunction · 0.70
JoinMethod · 0.65
VersionMethod · 0.65
EnableCompactionMethod · 0.65
EnablePollingMethod · 0.65
WALMethod · 0.65
CompleteBlockMethod · 0.65

Tested by

no test coverage detected