Spring Cloud Sleuth 필터 무의미 한 호출 추적

Sleuth 는 SpringCloud 에서 자주 사용 하 는 서비스 추적 분석 방식 이지 만 다음 장면 에서 대량의 무의미 한 추적 정 보 를 기록 할 것 이다.
마이크로 서 비 스 는 spring admin client 를 통합 한 후에 기본 설정 은 10 초 에 한 번 씩 admin server 에 등록 하고 싶 습 니 다. 이때 sleuth 에서 많은 admin 이 등록 한 웹 호출 을 수집 합 니 다. 이런 호출 은 마이크로 서비스 추적 에 의미 가 없습니다.
Sleuth 문서 통과 하기
http://cloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.0.1.RELEASE/multi/multi__customizations.html#_http
클 라 이언 트 Sampler 를 통 해 추적 요청 을 걸 러 낼 수 있 습 니 다.
TraceHttp AutoConfiguration 소스 코드 를 분석 한 결과 다음 과 같은 코드 가 있 습 니 다.
	@Bean
	@ConditionalOnMissingBean(name = ClientSampler.NAME)
	HttpSampler sleuthClientSampler() {
		return HttpSampler.TRACE_ID;
	}

클 라 이언 트 Sampler 를 정의 하지 않 으 면 기본 값 을 사용 합 니 다. HttpSampler.TRACE_ID 는 모든 웹 호출 추적 을 기록 합 니 다.
Sleuth 의 @ Client Sampler 레이 블 은 이 문 제 를 해결 할 수 있 습 니 다. 다음 코드 를 항목 에 추가 하면 필터 가 필요 한 클 라 이언 트 호출 을 설정 을 통 해 정의 할 수 있 습 니 다.
@RefreshScope
@Component
@ClientSampler
@ConditionalOnProperty("sleuth.client.skipPattern")
public class DemoSampler extends HttpSampler
{

	@Value("${sleuth.client.skipPattern}")
	private String skipPattern;

	@Override
	public  Boolean trySample(HttpAdapter adapter, Req request)
	{
		String path = adapter.path(request);
		if (skipPattern.contains(path))
			return false;
		return null;
	}

}

admin client 의 등록 호출 "/ intances" 를 필터 설정 에 추가 하면 sleuth 에서 의미 없 는 호출 추적 을 걸 러 낼 수 있 습 니 다.

좋은 웹페이지 즐겨찾기