Skip to content

Commit

Permalink
chore: refactor (#2545)
Browse files Browse the repository at this point in the history
* chore: refactor

* chore: refactor
  • Loading branch information
kevwan committed Oct 22, 2022
1 parent 7fe2492 commit 9cadab2
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 20 deletions.
2 changes: 1 addition & 1 deletion core/stores/redis/hook.go
Expand Up @@ -149,7 +149,7 @@ func logDuration(ctx context.Context, cmds []red.Cmder, duration time.Duration)
}
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())
}
Expand Down
31 changes: 19 additions & 12 deletions core/stores/redis/hook_test.go
Expand Up @@ -91,10 +91,10 @@ func TestHookProcessPipelineCase1(t *testing.T) {
log.SetOutput(&buf)
defer log.SetOutput(writer)

ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{red.NewCmd(context.Background())})
if err != nil {
t.Fatal(err)
}
ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{
red.NewCmd(context.Background()),
})
assert.NoError(t, err)
assert.Equal(t, "redis", tracesdk.SpanFromContext(ctx).(interface{ Name() string }).Name())

assert.Nil(t, durationHook.AfterProcessPipeline(ctx, []red.Cmder{
Expand All @@ -115,10 +115,10 @@ func TestHookProcessPipelineCase2(t *testing.T) {
w, restore := injectLog()
defer restore()

ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{red.NewCmd(context.Background())})
if err != nil {
t.Fatal(err)
}
ctx, err := durationHook.BeforeProcessPipeline(context.Background(), []red.Cmder{
red.NewCmd(context.Background()),
})
assert.NoError(t, err)
assert.Equal(t, "redis", tracesdk.SpanFromContext(ctx).(interface{ Name() string }).Name())

time.Sleep(slowThreshold.Load() + time.Millisecond)
Expand Down Expand Up @@ -159,19 +159,26 @@ func TestHookProcessPipelineCase5(t *testing.T) {
defer log.SetOutput(writer)

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)
}

func TestLogDuration(t *testing.T) {
w, restore := injectLog()
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"))

logDuration(context.Background(), []red.Cmder{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"))
logDuration(context.Background(), []red.Cmder{
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()) {
Expand Down
11 changes: 5 additions & 6 deletions rest/handler/tracinghandler.go
Expand Up @@ -12,11 +12,11 @@ import (
oteltrace "go.opentelemetry.io/otel/trace"
)

var dontTracingSpanNames sync.Map
var notTracingSpans sync.Map

// DontTracingSpanName disable tracing for the specified spanName.
func DontTracingSpanName(spanName string) {
dontTracingSpanNames.Store(spanName, lang.Placeholder)
// DontTraceSpan disable tracing for the specified span name.
func DontTraceSpan(spanName string) {
notTracingSpans.Store(spanName, lang.Placeholder)
}

// TracingHandler return a middleware that process the opentelemetry.
Expand All @@ -36,8 +36,7 @@ func TracingHandler(serviceName, path string) func(http.Handler) http.Handler {
spanName = r.URL.Path
}

_, ok := dontTracingSpanNames.Load(spanName)
if ok {
if _, ok := notTracingSpans.Load(spanName); ok {
return
}

Expand Down
2 changes: 1 addition & 1 deletion rest/handler/tracinghandler_test.go
Expand Up @@ -60,7 +60,7 @@ func TestDontTracingSpanName(t *testing.T) {
Sampler: 1.0,
})

DontTracingSpanName("bar")
DontTraceSpan("bar")

for _, test := range []string{"", "bar", "foo"} {
t.Run(test, func(t *testing.T) {
Expand Down

0 comments on commit 9cadab2

Please sign in to comment.