OpenTracing
Вход по гиперссылке виден.
OpenTracing разработала платформенно-независимый и независимый от поставщика протокол Trace, позволяющий разработчикам легко добавлять или заменять реализации распределённых систем трассировки. В ноябре 2016 года Технический комитет CNCF проголосовал за принятие OpenTracing в качестве хостингового проекта, который является третьим проектом CNCF, первым является Kubernetes, а вторым — Prometheus, что показывает, что CNCF придаёт большое значение наблюдаемости OpenTracing. Например, знаменитые Zipkin и Jaeger оба следуют протоколу OpenTracing.
OpenCensus
Вход по гиперссылке виден.
Возможно, вы думаете: теперь, когда появился OpenTracing, что же OpenCensus сделает с этим весельем? Извините, вы должны знать, что инициатором OpenCensus является Google, первая компания, предложившая концепцию трассинга, а OpenCensus — это общественная версия Google Dapper. Главное отличие между OpenCensus и OpenTracing в том, что помимо трассинга включает метрики, что позволяет осуществлять базовый мониторинг метрик и на OpenCensus. Ещё одно отличие в том, что OpenCensus — это не простая спецификация, он также занимается всем, включая агентов по сбору данных и сборщиков данных. OpenCensus также имеет большую аудиторию, и главная новость в последнее время — Microsoft объявила о своем присоединении, и OpenCensus можно описать как тигра с крыльями.
Что такое OpenTelemetry?
Вход по гиперссылке виден.
OpenTelemetry объединяет проекты OpenTracing и OpenCensus, предоставляя набор API и библиотек для стандартизации сбора и передачи телеметрических данных. OpenTelemetry предоставляет безопасный, независимый от поставщика инструмент, позволяющий передавать данные на разные бэкенды по мере необходимости.
Проект OpenTelemetry состоит из следующих компонентов:
- Способствуйте использованию единообразных спецификаций во всех проектах
- Основана на спецификациях, с API для интерфейсов и реализаций
- SDK (реализации API) на различных языках, таких как Java, Python, Go, Erlang и др.
- Экспортеры: Данные можно отправлять на выбранный вами бэкенд
- Collectors: Независимая от поставщика реализация для обработки и экспорта телеметрических данных
Терминология открытой телеметрии:
Traces: фиксирует активность запроса через распределённую систему, а trace представляет собой направленный ациклический граф spans
Spans: Трассировка представляет собой названную операцию, основанную на времени. Пролеты гнездятся, образуя следовые деревья. Каждая трасса содержит корневой отсеч, описывающий задержку от конца до конца, а её подоперации могут иметь одно или несколько подразворотов.
Метрики: Сырые метричные данные, собранные во время выполнения сервиса. метрические приборы, определяемые Opentelemetry. Observer поддерживает сбор данных через асинхронные API, при этом по одному данным на каждом интервале сбора информации.
Контекст: Span содержит span-контекст — глобально уникальный идентификатор, представляющий уникальный запрос, к которому относится каждый span, а также данные, необходимые для передачи информации о трассе через границы сервисов. OpenTelemetry также поддерживает корреляционный контекст, который может содержать пользовательские атрибуты. Контекст корреляции не требуется, и компонент может выбрать не хранить и не хранить эту информацию.
Распространение контекста: указывает на передачу контекстной информации между разными сервисами, обычно через заголовок HTTP. Распространение контекста — одна из ключевых особенностей системы Opentelemetry. Помимо трассировки, есть и интересные применения, например, проведение A/B-тестирования. OpenTelemetry поддерживает распространение контекста для нескольких протоколов, чтобы избежать возможных проблем, но важно отметить, что лучше всего использовать один подход в вашем собственном приложении.
Преимущества OpenTelemetry:
Объединив OpenTracing и OpenCensus в один открытый стандарт, OpenTelemetry предоставляет следующие удобства:
Простота выбора: вместо выбора между двумя стандартами, OpenTelemetry совместима как с OpenTracing, так и с OpenCensus. Кроссплатформенность: OpenTelemetry поддерживает различные языки и бэкенды. Он представляет собой независимый от поставщика способ захвата и передачи телеметрических данных на сервер без изменения существующих инструментов. Упрощённая наблюдаемость: Как говорит OpenTelemetry, «высококачественная телеметрия требует высококачественной телеметрии». Я бы хотел, чтобы больше поставщиков переходили на OpenTelemetry, потому что это удобнее и требует тестирования только одного стандарта.
|