SpringCloud HTTP

2023-12-01 16:21 更新

如果需要定制與HTTP相關(guān)的spans的客戶端/服務(wù)器解析,只需注冊類型為brave.http.HttpClientParserbrave.http.HttpServerParser的bean。如果需要客戶端/服務(wù)器采樣,只需注冊類型為brave.sampler.SamplerFunction<HttpRequest>的bean,并將bean sleuthHttpClientSampler命名為客戶端采樣器,將sleuthHttpServerSampler命名為服務(wù)器采樣器。

為了方便起見,可以使用@HttpClientSampler@HttpServerSampler批注注入適當(dāng)?shù)腷eans或通過其靜態(tài)字符串NAME字段引用bean名稱。

查看Brave的代碼,以查看有關(guān)如何制作基于路徑的采樣器的示例 https://github.com/openzipkin/brave/tree/master/instrumentation/http#sampling-policy

如果您想完全重寫HttpTracing bean,則可以使用SkipPatternProvider接口檢索spans不應(yīng)采樣的URL Pattern。在下面,您可以看到在服務(wù)器端Sampler<HttpRequest>中使用SkipPatternProvider的示例。

@Configuration
class Config {
  @Bean(name = HttpServerSampler.NAME)
  SamplerFunction<HttpRequest> myHttpSampler(SkipPatternProvider provider) {
  	Pattern pattern = provider.skipPattern();
  	return request -> {
  		String url = request.path();
  		boolean shouldSkip = pattern.matcher(url).matches();
  		if (shouldSkip) {
  			return false;
  		}
  		return null;
  	};
  }
}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號