@@ -150,6 +150,78 @@ func TestWithCommandFilter(t *testing.T) {
150150 t .Fatal (err )
151151 }
152152 })
153+
154+ t .Run ("auth command filtered by default" , func (t * testing.T ) {
155+ provider := sdktrace .NewTracerProvider ()
156+ hook := newTracingHook (
157+ "" ,
158+ WithTracerProvider (provider ),
159+ )
160+ ctx , span := provider .Tracer ("redis-test" ).Start (context .TODO (), "redis-test" )
161+ cmd := redis .NewCmd (ctx , "auth" , "test-password" )
162+ defer span .End ()
163+
164+ processHook := hook .ProcessHook (func (ctx context.Context , cmd redis.Cmder ) error {
165+ innerSpan := trace .SpanFromContext (ctx ).(sdktrace.ReadOnlySpan )
166+ if innerSpan .Name () != "redis-test" || innerSpan .Name () == "auth" {
167+ t .Fatalf ("auth command should not be traced by default" )
168+ }
169+
170+ return nil
171+ })
172+ err := processHook (ctx , cmd )
173+ if err != nil {
174+ t .Fatal (err )
175+ }
176+ })
177+
178+ t .Run ("hello command filtered by default when sensitive" , func (t * testing.T ) {
179+ provider := sdktrace .NewTracerProvider ()
180+ hook := newTracingHook (
181+ "" ,
182+ WithTracerProvider (provider ),
183+ )
184+ ctx , span := provider .Tracer ("redis-test" ).Start (context .TODO (), "redis-test" )
185+ cmd := redis .NewCmd (ctx , "hello" , 3 , "AUTH" , "test-user" , "test-password" )
186+ defer span .End ()
187+
188+ processHook := hook .ProcessHook (func (ctx context.Context , cmd redis.Cmder ) error {
189+ innerSpan := trace .SpanFromContext (ctx ).(sdktrace.ReadOnlySpan )
190+ if innerSpan .Name () != "redis-test" || innerSpan .Name () == "hello" {
191+ t .Fatalf ("auth command should not be traced by default" )
192+ }
193+
194+ return nil
195+ })
196+ err := processHook (ctx , cmd )
197+ if err != nil {
198+ t .Fatal (err )
199+ }
200+ })
201+
202+ t .Run ("hello command not filtered by default when not sensitive" , func (t * testing.T ) {
203+ provider := sdktrace .NewTracerProvider ()
204+ hook := newTracingHook (
205+ "" ,
206+ WithTracerProvider (provider ),
207+ )
208+ ctx , span := provider .Tracer ("redis-test" ).Start (context .TODO (), "redis-test" )
209+ cmd := redis .NewCmd (ctx , "hello" , 3 )
210+ defer span .End ()
211+
212+ processHook := hook .ProcessHook (func (ctx context.Context , cmd redis.Cmder ) error {
213+ innerSpan := trace .SpanFromContext (ctx ).(sdktrace.ReadOnlySpan )
214+ if innerSpan .Name () != "hello" {
215+ t .Fatalf ("hello command should be traced" )
216+ }
217+
218+ return nil
219+ })
220+ err := processHook (ctx , cmd )
221+ if err != nil {
222+ t .Fatal (err )
223+ }
224+ })
153225}
154226
155227func TestTracingHook_DialHook (t * testing.T ) {
0 commit comments