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

Function TestTracePushMiddlewareFailsOpen

modules/distributor/distributor_test.go:2158–2191  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2156}
2157
2158func 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}

Callers

nothing calls this directly

Calls 6

MakeBatchFunction · 0.92
batchesToTracesFunction · 0.85
setupDependenciesFunction · 0.70
NewFunction · 0.70
PushTracesMethod · 0.65

Tested by

no test coverage detected