2017-05-24 13 views
0

추적자를 만든 다음 추적자를 만들려고합니다. 수행중인 작업. 그런 다음 스팬을 닫습니다. 닫기 작업으로 spanReporter.report가 호출되어 사용 가능한 Zipkin 서버 (기본 로컬 호스트)에 데이터를 게시해야합니다.Zipkin이 닫힐 때마다 Zipkin에보고 할 수있게 설정하는 방법

그러나 그런 일은 일어나지 않습니다. 아래 코드 나는 NeverSampler를 사용하고있는 것으로 나타났습니다. AlwaysSampler로 변경했습니다 (현재). 또한 NoOpSpanReporter를 기본 SpanReporter로 사용하고 있습니다 (아무 것도하지 않음). ZipkinSpanReporter로 변경하고 싶습니다. (또는 다른 것). 여기가 내가 붙어 있습니다.

질문 : 붙여 넣은 코드에

  1. 을 바탕으로, 내가 사용하는 것이 기본 범위 보고서의 올바른 유형이어야 하는가?
  2. Span Reporter가 올바른 병입니다. 나는 spring-cloud-sleuth-zipkin 클래스 ZipkingSpanReporter 클래스를 본다. 그렇다면 스프링 - 클라우드 - 썬더 - 종속성을 제거하고 단지 zipkin 의존성으로 대체해야합니까? 위의 사용

public class TestClass { 

    private TestClass() { 
     // Default constructor 
    } 

    public static DefaultTracer createDefaultTracer() { 
     boolean isTraceId128 = false; 
     Sampler sampler = createDefaultTraceSampler(); 
     Random random = createDefaultRandomForSpanIds(); 
     SpanNamer spanNamer = createDefaultSpanNamer(); 
     SpanLogger spanLogger = createDefaultSpanLogger(); 
     SpanReporter spanReporter = createDefaultSpanReporter(); 
     TraceKeys traceKeys = new TraceKeys(); 

     return new DefaultTracer(sampler, random, spanNamer, spanLogger, spanReporter, isTraceId128, traceKeys); 
    } 

    public static Random createDefaultRandomForSpanIds() { 
     return new Random(); 
    } 

    public static Sampler createDefaultTraceSampler() { 
     //return NeverSampler.INSTANCE; 
     return new AlwaysSampler(); 
    } 

    public static SpanNamer createDefaultSpanNamer() { 
     return new DefaultSpanNamer(); 
    } 

    public static SpanReporter createDefaultSpanReporter() { 
     return new NoOpSpanReporter(); //What default span reporter should I use 
    } 

    public static SpanLogger createDefaultSpanLogger() { 
     return new NoOpSpanLogger(); //I do not care about logging spans using slf4j for now 
    } 
} 

이제 코드 :

DefaultTracer tracer = TestClass.createDefaultTracer(); 
Span mySpan=tracer.createSpan("testSpan"); 
//Do work 
tracer.close(mySpan);//This should stop the span and report the span to zipkin for display 

참고 : 자사의 서비스의에서
이 특정 프로젝트가없는 HTTP 호출. 그것의 데이터 처리 프로젝트.
@SpringBootApplication이 사용되지 않았습니다. (모든 zipkin 예제에서 사용합니다). 그게 필요 할까?

답변

0

휙 스팬이 지 플 킨 스팬과 같지 않은 것처럼 보입니다. 위의 코드에서 zipkin span reporter를 사용하여 기본 추적 프로그램을 인스턴스화 할 수있는 방법은 없습니다. 나는 스턴스 스팬을 zipkin span으로 변환 한 다음 zipkin에보고했습니다. 변환 할 클래스는 spring-cloud-sleuth-stream에서 사용할 수 있습니다. 나는 약간의 비틀기와 함께 거의 같은 학급을 사용했다.