Описание тега opentracing
абстрактный
OpenTracing - это независимый от производителя открытый стандарт распределенной трассировки.
Почему отслеживание?
Разработчики и инженерные организации меняют старые монолитные системы на современные микросервисные архитектуры, и они делают это по множеству веских причин: компоненты системы масштабируются независимо, группы разработчиков остаются небольшими и гибкими, развертывания являются непрерывными и независимыми и т. Д.
Тем не менее, как только производственная система вступает в конфликт с реальным параллелизмом или разделяется на множество сервисов, важные (и ранее простые) задачи становятся сложными: оптимизация задержки с участием пользователя, анализ основных причин внутренних ошибок, обмен информацией об отдельных частях теперь распределенной система и др.
Современные распределенные системы трассировки (например, Zipkin, Dapper, HTrace, X-Trace, Hawkular, sky-walking и другие) направлены на решение этих проблем, но они делают это с помощью инструментовки на уровне приложений с использованием несовместимых API. Разработчики беспокоятся о том, чтобы их системы полиглотов были тесно связаны с какой-либо конкретной реализацией распределенной трассировки, тем не менее, API-интерфейсы инструментария на уровне приложений для этих многих различных систем трассировки имеют удивительно похожую семантику.
Почему OpenTracing?
Откройте для себя OpenTracing: предлагая согласованные, выразительные, независимые от поставщиков API-интерфейсы для популярных платформ, OpenTracing упрощает разработчикам добавление (или переключение) реализаций трассировки с изменением конфигурации O(1). OpenTracing также предлагает lingua franca для инструментовки OSS и вспомогательных библиотек трассировки для конкретных платформ. См. Семантическую спецификацию.
Базовый след в реальном мире
https://stackru.com/images/2e9e3d977ac816e694ad0dc0e94f07179fbece49.png
Отслеживание рабочего процесса или транзакции через распределенную систему часто выглядит примерно так. Хотя этот тип визуализации может быть полезен, чтобы увидеть, как различные компоненты сочетаются друг с другом, он не передает каких-либо временных интервалов, плохо масштабируется и является громоздким при использовании параллелизма. Еще одно ограничение заключается в том, что нет способа легко показать задержку или другие аспекты синхронизации. Более удобный способ визуализировать даже базовую трассировку часто выглядит так:
https://stackru.com/images/a48704f626ef588448bd85a3baf8b8cdbbc7a012.png
Этот тип визуализации добавляет контекст времени, иерархию задействованных сервисов и последовательный или параллельный характер выполнения процесса / задачи. Этот вид помогает выделить критический путь системы. Сосредоточив внимание на критическом пути, можно сосредоточить внимание на той области кода, в которой можно сделать наиболее ценные улучшения. Например, вы можете захотеть отследить интервалы распределения ресурсов внутри запроса API вплоть до базовых вызовов блокировки.
Спецификация OpenTracing
Все API OpenTracing, зависящие от языка, имеют общие концепции и терминологию. Вы можете найти все концепции, терминологию и передовой опыт на следующих веб-сайтах.
Официальная домашняя страница
Официальный репозиторий
Репозиторий переводов zh спецификации
https://github.com/opentracing-contrib/opentracing-specification-zh