(t *testing.T)
| 111 | } |
| 112 | |
| 113 | func TestFindTraceByID_ExternalMode(t *testing.T) { |
| 114 | traceID := []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10} |
| 115 | userID := "test-tenant" |
| 116 | |
| 117 | externalTrace := &tempopb.Trace{ |
| 118 | ResourceSpans: []*v1_trace.ResourceSpans{ |
| 119 | { |
| 120 | ScopeSpans: []*v1_trace.ScopeSpans{ |
| 121 | { |
| 122 | Spans: []*v1_trace.Span{ |
| 123 | { |
| 124 | TraceId: traceID, |
| 125 | SpanId: []byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}, |
| 126 | Name: "external-span", |
| 127 | }, |
| 128 | }, |
| 129 | }, |
| 130 | }, |
| 131 | }, |
| 132 | }, |
| 133 | } |
| 134 | |
| 135 | startTime := int64(1000) |
| 136 | endTime := int64(2000) |
| 137 | server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 138 | // Verify that start and end query parameters are present |
| 139 | require.Equal(t, strconv.FormatInt(startTime, 10), r.URL.Query().Get("start")) |
| 140 | require.Equal(t, strconv.FormatInt(endTime, 10), r.URL.Query().Get("end")) |
| 141 | |
| 142 | traceBytes, err := externalTrace.Marshal() |
| 143 | require.NoError(t, err) |
| 144 | |
| 145 | w.Header().Set("Content-Type", api.HeaderAcceptProtobuf) |
| 146 | w.WriteHeader(http.StatusOK) |
| 147 | _, err = w.Write(traceBytes) |
| 148 | require.NoError(t, err) |
| 149 | })) |
| 150 | defer server.Close() |
| 151 | |
| 152 | cfg := Config{ |
| 153 | TraceByID: TraceByIDConfig{ |
| 154 | External: ExternalConfig{ |
| 155 | Endpoint: server.URL, |
| 156 | Timeout: 10 * time.Second, |
| 157 | }, |
| 158 | }, |
| 159 | } |
| 160 | |
| 161 | o, err := overrides.NewOverrides(overrides.Config{}, nil, prometheus.DefaultRegisterer) |
| 162 | require.NoError(t, err) |
| 163 | |
| 164 | q, err := New(cfg, nil, livestore_client.Config{}, nil, true, nil, o) |
| 165 | require.NoError(t, err) |
| 166 | |
| 167 | ctx := user.InjectOrgID(context.Background(), userID) |
| 168 | |
| 169 | resp, err := q.FindTraceByID(ctx, &tempopb.TraceByIDRequest{ |
| 170 | TraceID: traceID, |
nothing calls this directly
no test coverage detected