2017-05-24 4 views
0

トレーサを作成しようとしていて、トレーサからスパンを作成しようとしています。 作業を行う。 次にスパンを閉じます。 私は、closeアクションによってspanReporter.reportが呼び出され、利用可能なZipkinサーバー(デフォルトのローカルホスト)にデータをポストすることが期待されます。Zipkinが閉鎖されたときにZipkinに報告できるようにする方法を設定する方法

しかし、それは起こっていません。 以下のコード。 私はNeverSamplerを使用していることに気付きました。これをAlwaysSamplerに変更しました(現在は)。 私はNoOpSpanReporterをデフォルトのSpanReporter(何もしません)としても使用していました。私はそれをZipkinSpanReporterに変更したいと思います。 (または、他の何か)。 これは私が立ち往生している場所です。

質問:

  1. 貼り付けたコードに基づいて、私が使用するデフォルトのスパンレポートの正しいタイプがどうあるべきか?
  2. 正しいスパンレポーターを持つジャーはどれですか。私はクラスZipkingSpanReporterをspring-cloud-sleuth-zipkinで見る。それでは、私はspring-cloud-sleuth- *依存関係を削除し、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の範囲に変換し、zipkinに報告しました。それを変換するクラスはspring-cloud-sleuth-streamで利用できます。私はいくつかの調整をして、ほとんど同じクラスを使いました。

関連する問題