Что такое API-интерфейс Opentracing и какова его роль в системе отслеживания

На https://opentracing.io/ они заявляют, что открывающий API:

API-интерфейсы и инструментарий для распределенной трассировки, не зависящие от поставщика.

Хорошо, но что это на самом деле означает в контексте реального приложения?

Из каких частей на самом деле состоит этот API-интерфейс Opentracing, каково его назначение и как он взаимодействует с другими системами, связанными с ведением журнала, такими как "zipkin" и "jaeger"

  • Требуется ли использование Opentracing API для Java, чтобы иметь возможность заявлять, что "Мое приложение поддерживает" открытое отслеживание?

  • Есть ли один протокол Opentracing (например, данные, отправляемые по сети), или они просто говорят, что opentracing - это средний уровень, который позволяет нескольким другим фреймворкам трассировки взаимодействовать друг с другом? Особенно эта диаграмма заставляет меня так думать.


person Th 00 mÄ s    schedule 23.01.2019    source источник


Ответы (1)


OpenTracing - это API, с которым ваш код будет напрямую взаимодействовать.

По сути, ваше приложение будет «оснащено» с помощью OpenTracing API, а конкретный трассировщик (например, Jaeger или Brave / Zipkin) будет захватывать данные и отправлять их куда-нибудь. Это позволяет вашему приложению использовать нейтральный API во всем коде, чтобы вы могли переходить от одного поставщика к другому, не меняя всю базу кода.

Еще один способ подумать об этом: OpenTracing похож на SLF4J в мире журналирования Java, тогда как Jaeger и Zipkin представляют собой конкретные реализации, такие как Log4j в мире журналирования Java.

person jpkrohling    schedule 23.01.2019
comment
Реализует ли Zipkin протокол OpenTracing? Согласно это: Although we recommend instrumenting applications with OpenTracing API and binding to Jaeger client libraries to benefit from advanced features not available elsewhere, if your organization has already invested in the instrumentation using Zipkin libraries, you do not have to rewrite all that code. Jaeger provides backwards compatibility with Zipkin by accepting spans in Zipkin formats (Thrift or JSON v1/v2) over HTTP. - person user2426679; 11.06.2019
comment
OpenTracing больше похож на API, чем на протокол. Существует совместимый с Zipkin трассировщик (Brave), так что ваше приложение может быть оснащено с помощью OpenTracing API, при этом данные поступают на серверную часть Zipkin. - person jpkrohling; 19.06.2019