(t *testing.T)
| 2156 | } |
| 2157 | |
| 2158 | func TestTracePushMiddlewareFailsOpen(t *testing.T) { |
| 2159 | limits := overrides.Config{} |
| 2160 | limitCfg := &flag.FlagSet{} |
| 2161 | limits.RegisterFlagsAndApplyDefaults(limitCfg) |
| 2162 | |
| 2163 | distributorCfg, overridesSvc, loggingLevel, middleware := setupDependencies(t, limits) |
| 2164 | |
| 2165 | // Create a middleware that returns an error |
| 2166 | expectedErr := errors.New("middleware error") |
| 2167 | errorMiddleware := func(_ context.Context, _ ptrace.Traces) error { |
| 2168 | return expectedErr |
| 2169 | } |
| 2170 | |
| 2171 | distributorCfg.TracePushMiddlewares = []TracePushMiddleware{errorMiddleware} |
| 2172 | |
| 2173 | d, err := New( |
| 2174 | distributorCfg, |
| 2175 | LocalPushTargets{}, |
| 2176 | nil, |
| 2177 | overridesSvc, |
| 2178 | middleware, |
| 2179 | kitlog.NewLogfmtLogger(os.Stdout), |
| 2180 | loggingLevel, |
| 2181 | prometheus.NewRegistry(), |
| 2182 | ) |
| 2183 | require.NoError(t, err) |
| 2184 | |
| 2185 | // Create test traces |
| 2186 | traces := batchesToTraces(t, []*v1.ResourceSpans{test.MakeBatch(10, nil)}) |
| 2187 | |
| 2188 | // Call PushTraces - should succeed despite middleware error (fail open) |
| 2189 | _, err = d.PushTraces(ctx, traces) |
| 2190 | require.NoError(t, err, "PushTraces should succeed even when middleware returns an error") |
| 2191 | } |
nothing calls this directly
no test coverage detected