Какой будет правильный шаблон для использования OpenTracing в приложении Apache Streams? Вся документация, которую я прочитал, предполагает трассировку по HTTP-запросу. В моем случае TraceId и SpanId распространяются в каждом сообщении Kafka.
Я пытался (после https://cloud.google.com/trace/docs/setup/java) обернуть мои функции объединения потоков в
SpanContext spanContext = SpanContext.create(TraceId.fromLowerBase16(traceId), SpanId.fromLowerBase16(parentSpanId),TraceOptions.DEFAULT, Tracestate.builder().build())
try (spanBuilderWithRemoteParent("join-trace", spanContext).setSampler(Samplers.probabilitySampler(1)).startScopedSpan()) {
... // join logic
}
С простой настройкой как
StackdriverTraceExporter.createAndRegister(StackdriverTraceConfiguration.builder().setProjectId(traceProjectId).build());
и использованием io.opencensus:opencensus-xxx:0.24.0
библиотек
Во-первых, в StackDriver ничего не появляется (без ошибок), но что еще более важно, я начинает задаваться вопросом, если это правильный подход. Пользовательский интерфейс StackDriver, по-видимому, также принимает http, есть фильтры для методов http, et c.