(t *testing.T)
| 105 | } |
| 106 | |
| 107 | func TestMetrics_PushBytesTracking(t *testing.T) { |
| 108 | setup := setupTest(t) |
| 109 | defer setup.cleanup() |
| 110 | |
| 111 | // Create a trace and push it |
| 112 | traceID := test.ValidTraceID(nil) |
| 113 | trace := test.MakeTrace(10, traceID) |
| 114 | traceData, err := trace.Marshal() |
| 115 | require.NoError(t, err) |
| 116 | |
| 117 | req := &tempopb.PushBytesRequest{ |
| 118 | Traces: []tempopb.PreallocBytes{{Slice: traceData}}, |
| 119 | Ids: [][]byte{traceID}, |
| 120 | } |
| 121 | |
| 122 | expectedBytes := float64(len(traceData)) |
| 123 | |
| 124 | // Record initial values to ensure we're measuring the delta correctly |
| 125 | initialBytesReceived, err := getCounterVecValue(metricBytesReceivedTotal, testTenant, "trace") |
| 126 | require.NoError(t, err) |
| 127 | initialTracesCreated, err := test.GetCounterValue(setup.instance.tracesCreatedTotal) |
| 128 | require.NoError(t, err) |
| 129 | |
| 130 | // Push bytes |
| 131 | setup.instance.pushBytes(t.Context(), time.Now(), req) |
| 132 | |
| 133 | // Verify bytes received metric increased by expected amount |
| 134 | finalBytesReceived, err := getCounterVecValue(metricBytesReceivedTotal, testTenant, "trace") |
| 135 | require.NoError(t, err) |
| 136 | assert.Equal(t, initialBytesReceived+expectedBytes, finalBytesReceived, |
| 137 | "bytes received should increase by trace data size") |
| 138 | |
| 139 | // Check live traces metric after cutting |
| 140 | drained, err := setup.instance.cutIdleTraces(t.Context(), true) // immediate cut |
| 141 | require.NoError(t, err) |
| 142 | require.True(t, drained, "should drain live traces in one iteration") |
| 143 | |
| 144 | // Verify traces were created |
| 145 | finalTracesCreated, err := test.GetCounterValue(setup.instance.tracesCreatedTotal) |
| 146 | require.NoError(t, err) |
| 147 | assert.Equal(t, initialTracesCreated+1.0, finalTracesCreated, |
| 148 | "one trace should be created after cutting") |
| 149 | } |
| 150 | |
| 151 | func TestMetrics_CompletionFlow(t *testing.T) { |
| 152 | setup := setupTest(t) |
nothing calls this directly
no test coverage detected