fix(zrpc): fix slow threshold priority in stat interceptor (#5310)

Co-authored-by: qiuwenhao <qiushaotest@qq.com>
This commit is contained in:
Qiu shao
2025-12-23 22:45:33 +08:00
committed by GitHub
parent 35ba024103
commit f29c8612e8
2 changed files with 15 additions and 2 deletions

View File

@@ -63,8 +63,12 @@ func UnaryStatInterceptor(metrics *stat.Metrics, conf StatConf) grpc.UnaryServer
}
func isSlow(duration, durationThreshold time.Duration) bool {
return duration > slowThreshold.Load() ||
(durationThreshold > 0 && duration > durationThreshold)
// Prioritize explicit config over global setting
if durationThreshold > 0 {
return duration > durationThreshold
}
return duration > slowThreshold.Load()
}
func logDuration(ctx context.Context, method string, req any, duration time.Duration,

View File

@@ -252,6 +252,15 @@ func Test_isSlow(t *testing.T) {
SetSlowThreshold(time.Millisecond * 100)
},
},
{
"config_priority_fix",
args{
duration: time.Millisecond * 600,
staticSlowThreshold: time.Millisecond * 1000,
},
false,
nil,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {