トレーサを作成しようとしていて、トレーサからスパンを作成しようとしています。 作業を行う。 次にスパンを閉じます。 私は、closeアクションによってspanReporter.reportが呼び出され、利用可能なZipkinサーバー(デフォルトのローカルホスト)にデータをポストすることが期待されます。Zipkinが閉鎖されたときにZipkinに報告できるようにする方法を設定する方法
しかし、それは起こっていません。 以下のコード。 私はNeverSamplerを使用していることに気付きました。これをAlwaysSamplerに変更しました(現在は)。 私はNoOpSpanReporterをデフォルトのSpanReporter(何もしません)としても使用していました。私はそれをZipkinSpanReporterに変更したいと思います。 (または、他の何か)。 これは私が立ち往生している場所です。
質問:
- 貼り付けたコードに基づいて、私が使用するデフォルトのスパンレポートの正しいタイプがどうあるべきか?
- 正しいスパンレポーターを持つジャーはどれですか。私はクラス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の例で使用しています)。それは必要ですか?