chore: refactor (#2545)

* chore: refactor

* chore: refactor
master
Kevin Wan 2 years ago committed by GitHub
parent 7fe2492009
commit 9cadab2684
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -149,7 +149,7 @@ func logDuration(ctx context.Context, cmds []red.Cmder, duration time.Duration)
} }
build.WriteString(mapping.Repr(arg)) build.WriteString(mapping.Repr(arg))
} }
buf.WriteString(mapping.Repr(build.String())) buf.WriteString(build.String())
} }
logx.WithContext(ctx).WithDuration(duration).Slowf("[REDIS] slowcall on executing: %s", buf.String()) logx.WithContext(ctx).WithDuration(duration).Slowf("[REDIS] slowcall on executing: %s", buf.String())
} }

@ -91,10 +91,10 @@ func TestHookProcessPipelineCase1(t *testing.T) {
log.SetOutput(&buf) log.SetOutput(&buf)
defer log.SetOutput(writer) defer log.SetOutput(writer)
ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{red.NewCmd(context.Background())}) ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{
if err != nil { red.NewCmd(context.Background()),
t.Fatal(err) })
} assert.NoError(t, err)
assert.Equal(t, "redis", tracesdk.SpanFromContext(ctx).(interface{ Name() string }).Name()) assert.Equal(t, "redis", tracesdk.SpanFromContext(ctx).(interface{ Name() string }).Name())
assert.Nil(t, durationHook.AfterProcessPipeline(ctx, []red.Cmder{ assert.Nil(t, durationHook.AfterProcessPipeline(ctx, []red.Cmder{
@ -115,10 +115,10 @@ func TestHookProcessPipelineCase2(t *testing.T) {
w, restore := injectLog() w, restore := injectLog()
defer restore() defer restore()
ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{red.NewCmd(context.Background())}) ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{
if err != nil { red.NewCmd(context.Background()),
t.Fatal(err) })
} assert.NoError(t, err)
assert.Equal(t, "redis", tracesdk.SpanFromContext(ctx).(interface{ Name() string }).Name()) assert.Equal(t, "redis", tracesdk.SpanFromContext(ctx).(interface{ Name() string }).Name())
time.Sleep(slowThreshold.Load() + time.Millisecond) time.Sleep(slowThreshold.Load() + time.Millisecond)
@ -159,7 +159,9 @@ func TestHookProcessPipelineCase5(t *testing.T) {
defer log.SetOutput(writer) defer log.SetOutput(writer)
ctx := context.WithValue(context.Background(), startTimeKey, "foo") ctx := context.WithValue(context.Background(), startTimeKey, "foo")
assert.Nil(t, durationHook.AfterProcessPipeline(ctx, []red.Cmder{red.NewCmd(context.Background())})) assert.Nil(t, durationHook.AfterProcessPipeline(ctx, []red.Cmder{
red.NewCmd(context.Background()),
}))
assert.True(t, buf.Len() == 0) assert.True(t, buf.Len() == 0)
} }
@ -167,11 +169,16 @@ func TestLogDuration(t *testing.T) {
w, restore := injectLog() w, restore := injectLog()
defer restore() defer restore()
logDuration(context.Background(), []red.Cmder{red.NewCmd(context.Background(), "get", "foo")}, 1*time.Second) logDuration(context.Background(), []red.Cmder{
red.NewCmd(context.Background(), "get", "foo"),
}, 1*time.Second)
assert.True(t, strings.Contains(w.String(), "get foo")) assert.True(t, strings.Contains(w.String(), "get foo"))
logDuration(context.Background(), []red.Cmder{red.NewCmd(context.Background(), "get", "foo"), red.NewCmd(context.Background(), "set", "bar", 0)}, 1*time.Second) logDuration(context.Background(), []red.Cmder{
assert.True(t, strings.Contains(w.String(), "get foo\\nset bar 0")) red.NewCmd(context.Background(), "get", "foo"),
red.NewCmd(context.Background(), "set", "bar", 0),
}, 1*time.Second)
assert.True(t, strings.Contains(w.String(), `get foo\nset bar 0`))
} }
func injectLog() (r *strings.Builder, restore func()) { func injectLog() (r *strings.Builder, restore func()) {

@ -12,11 +12,11 @@ import (
oteltrace "go.opentelemetry.io/otel/trace" oteltrace "go.opentelemetry.io/otel/trace"
) )
var dontTracingSpanNames sync.Map var notTracingSpans sync.Map
// DontTracingSpanName disable tracing for the specified spanName. // DontTraceSpan disable tracing for the specified span name.
func DontTracingSpanName(spanName string) { func DontTraceSpan(spanName string) {
dontTracingSpanNames.Store(spanName, lang.Placeholder) notTracingSpans.Store(spanName, lang.Placeholder)
} }
// TracingHandler return a middleware that process the opentelemetry. // TracingHandler return a middleware that process the opentelemetry.
@ -36,8 +36,7 @@ func TracingHandler(serviceName, path string) func(http.Handler) http.Handler {
spanName = r.URL.Path spanName = r.URL.Path
} }
_, ok := dontTracingSpanNames.Load(spanName) if _, ok := notTracingSpans.Load(spanName); ok {
if ok {
return return
} }

@ -60,7 +60,7 @@ func TestDontTracingSpanName(t *testing.T) {
Sampler: 1.0, Sampler: 1.0,
}) })
DontTracingSpanName("bar") DontTraceSpan("bar")
for _, test := range []string{"", "bar", "foo"} { for _, test := range []string{"", "bar", "foo"} {
t.Run(test, func(t *testing.T) { t.Run(test, func(t *testing.T) {

Loading…
Cancel
Save