Lazy SleuthHttpSampler skip pattern resoolution; fixes gh-1420

This commit is contained in:
Marcin Grzejszczak
2019-08-13 15:11:45 +02:00
parent 56c18e9084
commit e6100b56f9

View File

@@ -29,20 +29,29 @@ import brave.http.HttpSampler;
*/
class SleuthHttpSampler extends HttpSampler {
private final Pattern pattern;
private final SkipPatternProvider provider;
private Pattern pattern;
SleuthHttpSampler(SkipPatternProvider provider) {
this.pattern = provider.skipPattern();
this.provider = provider;
}
@Override
public <Req> Boolean trySample(HttpAdapter<Req, ?> adapter, Req request) {
String url = adapter.path(request);
boolean shouldSkip = this.pattern.matcher(url).matches();
boolean shouldSkip = pattern().matcher(url).matches();
if (shouldSkip) {
return false;
}
return null;
}
private Pattern pattern() {
if (this.pattern == null) {
this.pattern = this.provider.skipPattern();
}
return this.pattern;
}
}