??? Jaeger v2 уже на подходе! Прочитайте сообщение в блоге и попробуйте.
график ТД
SDK["OpenTelemetry SDK"] --> |HTTP или gRPC| КОЛЛЕКЦИОНЕР
КОЛЛЕКТОР["Jaeger Collector"] --> МАГАЗИН[Хранилище]
КОЛЛЕКТОР --> |gRPC| ПЛАГИН [Плагин хранилища]
КОЛЛЕКТОР --> |gRPC/выборка| SDK
ПЛАГИН --> МАГАЗИН
ЗАПРОС[Служба запросов Jaeger] --> МАГАЗИН
ЗАПРОС --> |gRPC| ПЛАГИН
UI[Jaeger UI] --> |HTTP| ЗАПРОС
Хост приложения подграфа
Пользовательское приложение подграфа
SDK
конец
конец
Jaeger, вдохновленный Dapper и OpenZipkin, представляет собой распределенную платформу отслеживания, созданную Uber Technologies и переданную в дар Cloud Native Computing Foundation. Его можно использовать для мониторинга распределенных систем на основе микросервисов:
См. также:
Jaeger проводится Cloud Native Computing Foundation (CNCF) как седьмой проект высшего уровня (завершен в октябре 2019 года). Если вы — компания, которая хочет способствовать развитию контейнерных, динамически планируемых и ориентированных на микросервисы технологий, рассмотрите возможность присоединения к CNCF. Подробную информацию о том, кто в этом участвует и какую роль играет Jaeger, читайте в объявлении об инкубации Jaeger CNCF и объявлении об окончании Jaeger.
Jaeger — это проект с открытым исходным кодом и открытым управлением. Мы приветствуем вклад сообщества и будем рады вашей помощи в улучшении и расширении проекта. Вот несколько идей о том, как принять участие. Многие из них даже не требуют какого-либо кодирования.
Серверная часть Jaeger спроектирована таким образом, чтобы не иметь единых точек отказа и масштабироваться в соответствии с потребностями бизнеса. Например, любая установка Jaeger в Uber обычно обрабатывает несколько миллиардов интервалов в день.
Проекты Jaeger и OpenTelemetry преследуют разные цели. OpenTelemetry стремится предоставлять API и SDK на нескольких языках, чтобы приложения могли экспортировать различные данные телеметрии из процесса в любое количество метрик и серверов отслеживания. Проект Jaeger — это, прежде всего, серверная часть отслеживания, которая получает данные телеметрии отслеживания и обеспечивает обработку, агрегирование, интеллектуальный анализ данных и визуализацию этих данных. Для получения дополнительной информации обратитесь к сообщению в блоге Jaeger и OpenTelemetry.
Jaeger изначально был разработан для поддержки стандарта OpenTracing. Эта терминология по-прежнему используется в пользовательском интерфейсе Jaeger, но концепции напрямую сопоставляются с моделью данных трассировки OpenTelemetry.
Возможность | Концепция OpenTracing | Концепция OpenTelemetry |
---|---|---|
Представляйте трассы как ориентированные ациклические графы (а не просто деревья). | ссылки на интервалы | промежуточные ссылки |
Строго типизированные атрибуты диапазона. | теги диапазона | атрибуты диапазона |
Строго типизированные события/журналы | промежуточные журналы | охватывать события |
Проект Jaeger рекомендует для инструментирования использовать пакеты SDK OpenTelemetry вместо устаревших пакетов SDK Jaeger.
Jaeger можно использовать с растущим числом серверных хранилищ:
Веб-интерфейс Jaeger реализован на языке Javascript с использованием популярных платформ с открытым исходным кодом, таких как React. В версии 1.0 было выпущено несколько улучшений производительности, позволяющих пользовательскому интерфейсу эффективно обрабатывать большие объемы данных и отображать трассировки с десятками тысяч интервалов (например, мы пробовали трассировку с 80 000 интервалами).
Серверная часть Jaeger распространяется в виде коллекции образов Docker. Двоичные файлы поддерживают различные методы настройки, включая параметры командной строки, переменные среды и файлы конфигурации в нескольких форматах (yaml, toml и т. д.).
Рекомендуемый способ развертывания Jaeger в рабочем кластере Kubernetes — через оператор Jaeger.
Оператор Jaeger предоставляет интерфейс командной строки для создания манифестов Kubernetes из Jaeger CR. Это можно рассматривать как альтернативный источник по сравнению с обычными файлами манифеста Kubernetes.
Экосистема Jaeger также предоставляет диаграмму Helm в качестве альтернативного способа развертывания Jaeger.
Все серверные компоненты Jaeger по умолчанию предоставляют метрики Prometheus (также поддерживаются другие серверные компоненты метрик). Журналы записываются в стандартный формат с использованием библиотеки структурированного журналирования zap.
Результаты стороннего аудита безопасности Jaeger доступны по адресу https://github.com/jaegertracing/security-audits. См. выпуск № 1718 для получения сводной информации о доступных механизмах безопасности в Jaeger.
Хотя мы рекомендуем оснащать приложения OpenTelemetry, если ваша организация уже вложила средства в инструментирование с использованием библиотек Zipkin, вам не нужно переписывать весь этот код. Jaeger обеспечивает обратную совместимость с Zipkin, принимая диапазоны в форматах Zipkin (Thrift или JSON v1/v2) через HTTP. Переключение с серверной части Zipkin — это всего лишь вопрос маршрутизации трафика из библиотек Zipkin на серверную часть Jaeger.
Иногда флаги CLI могут быть признаны устаревшими, например, из-за улучшения удобства использования или появления новых функций. В таких ситуациях разработчики, объявляющие прекращение поддержки, обязаны следовать этим рекомендациям.
Короче говоря, для устаревшего флага CLI вы должны увидеть следующее сообщение в документации --help
:
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
Прежде чем можно будет удалить устаревший флаг CLI, будет предоставлен льготный период продолжительностью не менее 3 месяцев или двух незначительных обновлений версии (в зависимости от того, что наступит позже) с момента первого выпуска, содержащего уведомление об устаревании.
Например, рассмотрим сценарий, в котором 1 июня 2021 г. выпущена версия 1.28.0, содержащая уведомление об устаревании флага CLI. Этот флаг останется устаревшим до 1 сентября 2021 г. или до версии 1.30.0, после чего его можно будет удалить в любое из этих событий или после него. Он может оставаться устаревшим дольше, чем вышеупомянутый льготный период.
Проект Jaeger пытается отслеживать поддерживаемые в настоящее время версии Go, как это определено командой Go. Удаление поддержки неподдерживаемой версии Go не считается критическим изменением.
Начиная с выпуска Go 1.21, поддержка версий Go будет обновлена следующим образом:
N
в этапы сборки и тестирования будут внесены обновления для адаптации к последней минорной версии Go.N
поддержка Go версии N-2
будет удалена, и версия N-1
станет минимально необходимой версией. Проект Jaeger рекомендует для инструментирования использовать пакеты SDK OpenTelemetry вместо собственных пакетов SDK Jaeger, которые сейчас устарели.
См. ВКЛАД.
См. ВКЛАД.
Спасибо всем людям, которые уже внесли свой вклад!
Правила участия в сопровождении определены в документе УПРАВЛЕНИЕ. Ниже приведены официальные сопровождающие проекта Jaeger. Пожалуйста, используйте @jaegertracing/jaeger-maintainers
чтобы отмечать их в вопросах/запросах.
Некоторые репозитории в составе jaegertracing org имеют дополнительных сопровождающих.
Мы благодарны нашим бывшим сопровождающим за их вклад в проект Jaeger.
Сопровождающие и участники Jaeger регулярно встречаются по видеосвязи. Присоединиться могут все желающие, включая конечных пользователей. Подробности встречи см. на странице https://www.jaegertracing.io/get-in-touch/.
См. https://www.jaegertracing.io/docs/roadmap/.
Есть вопросы, предложения, сообщения об ошибках? Свяжитесь с сообществом проекта по этим каналам:
#jaeger
(необходимо впервые присоединиться к CNCF Slack)jaeger-tracing
Jaeger как продукт состоит из нескольких компонентов. Мы хотим поддерживать разные типы пользователей, независимо от того, используют ли они только наши библиотеки инструментов или полную комплексную установку Jaeger, работает ли он в рабочей среде или вы используете его для устранения проблем в разработке.
Пожалуйста, посетите ADOPTERS.md, чтобы узнать о некоторых организациях, использующих Jaeger сегодня. Если вы хотите добавить свою организацию в список, прокомментируйте, пожалуйста, вопрос нашего опроса.
Авторские права (c) The Jaeger Authors. Лицензия Апач 2.0.