- Инструменты для разработчиков›
- AWS X-Ray›
- Вопросы и ответы
Вопросы и ответы по AWS X-Ray
Общие вопросы
Что такое AWS X-Ray?
AWS X-Ray помогает разработчикам анализировать свои продукты и распределенные приложения (например, на базе архитектуры микросервисов), а также устранять ошибки. X-Ray позволяет оценить производительность приложения и сервисов, на которых основана его работа, чтобы определить и устранить первопричины снижения производительности и сбоев. X‑Ray обеспечивает комплексное отслеживание запросов и их маршрутов в приложении и показывает карту внутренних компонентов приложения. X-Ray используется для анализа приложений на стадии разработки и развертывания, от простых трехступенчатых вариантов до сложных приложений, состоящих из тысяч микросервисов.
В каких случаях следует использовать X-Ray?
Сегодня при создании и развертывании распределенных приложений разработчики вынуждены следить за перемещением запросов между компонентами приложения с помощью процессов, привязанных к отдельным ресурсам и сервисам. Задача осложняется еще и разницей форматов журналов и носителей в разных инфраструктурах, сервисах и ресурсах, на которых работает приложение или которые оно использует. Таким образом, найти свое место для каждого элемента данных и воссоздать полный маршрут запроса с момента создания на сервисе или устройстве конечного пользователя и до возвращения ответа из приложения становится очень непросто. X-Ray предоставляет модель сбора данных о запросах к приложению, которая ориентирована на пользователя, а не на сервисы и ресурсы. Эта модель позволяет построить ориентированную на пользователя картину перемещения запросов между ресурсами и сервисами. X-Ray автоматически собирает и сопоставляет все необходимые данные, позволяя разработчикам сосредоточиться на развитии взаимодействия с пользователем через свое приложение.
Как можно использовать сервис X-Ray?
X-Ray помогает выполнять следующие задачи.
- Создание карты сервисов. X-Ray отслеживает запросы к приложениям и создает карту используемых ими сервисов. Это позволяет увидеть связи между сервисами приложения, создать дерево зависимостей, обнаружить задержки и ошибки при работе между зонами доступности и регионами AWS, идентифицировать сервисы, которые работают неправильно и т. д.
- Выявление ошибок. X-Ray анализирует код, возвращаемый при обработке каждого запроса к приложению, и автоматически выделяет ошибки в коде приложения. Это позволяет легко исправлять ошибки в коде приложения, не воссоздавая их.
- Создание собственных приложений для анализа и визуализации. X-Ray включает набор API для запросов, позволяющих создавать собственные приложения для анализа и визуализации на основе собираемых X-Ray данных.
Основные понятия
Что такое маршрут?
Маршрут в X-Ray – это набор точек данных с общим ID маршрута. К примеру, когда клиент создает запрос к приложению, этому запросу назначается уникальный ID маршрута. Запрос начинает перемещаться между сервисами приложения, и сервисы передают информацию об этом запросе в X-Ray с помощью этого уникального ID маршрута. Каждый элемент данных, передаваемый сервисом приложения в X-Ray – это сегмент, а маршрут – это набор таких сегментов.
Что такое сегмент?
Сегмент X-Ray содержит все точки данных одного компонента распределенного приложения (например, сервиса авторизации). Сегменты включают в себя определенные системой и пользователем данные в виде аннотаций и состоят из одного или более подсегментов – удаленных вызовов, выполненных сервисом. Например, когда приложение в ответ на запрос выполняет вызов базы данных, для этого запроса создается сегмент, подсегменты которого описывают выполненный вызов базы данных и полученный ответ. Подсегмент может содержать такие данные, как запросы, использованные таблицы, отметки времени и статусы ошибок.
Что такое аннотация?
Аннотация в X-Ray – это определенные системой или пользователем данные, связанные с сегментом. Сегмент может содержать несколько аннотаций. Определенные системой аннотации включают данные, добавляемые в сегмент сервисами AWS, а определенные пользователем аннотации – это метаданные, добавляемые в сегмент разработчиком. Например, данные о регионе для вызовов сервисов AWS могут быть добавлены в созданный приложением сегмент автоматически, а данные о регионе для вызовов сервисов, не принадлежащих AWS, нужно добавлять самостоятельно.
Что такое ошибки?
Ошибки в X-Ray – это системные аннотации, привязанные к сегментам, в которых вызов вернул сообщение об ошибке. Ошибка включает в себя сообщение об ошибке, маршрут стека и любую дополнительную информацию (например, версию или ID подтверждения записи), которая поможет сопоставить ошибку с исходным файлом.
Что такое периодичность отслеживания?
Для оптимизации производительности и стоимости сервис X-Ray не собирает данные по каждому запросу, отправленному в приложение. Вместо этого сервис собирает данные по статистически значимому количеству запросов. Сервис X-Ray не следует использовать как инструмент для аудита и проверки соответствия требованиям, так как он не гарантирует полноту данных.
Что такое демон X-Ray?
Демон X-Ray собирает сведения о маршрутах и отправляет их в сервис X-Ray для последующего объединения, анализа и хранения. Демон позволяет упростить вашу работу: вы отправляете данные в сервис X-Ray вместо использования API напрямую.
Работа с AWS X-Ray
Как начать работу с сервисом X-Ray?
Чтобы начать работу с X-Ray, подключите языковой пакет SDK X-Ray к приложению и установите демон X-Ray. Подробнее см. в Руководстве пользователя X-Ray.
Какие типы приложений совместимы с X-Ray?
X-Ray можно использовать для отслеживания и отладки синхронных запросов и асинхронных событий в распределенных приложениях любого размера. Например, с помощью X-Ray можно отслеживать сетевые запросы к интернет-приложению или асинхронные события, использующие очереди Amazon SQS.
Какие сервисы AWS совместимы с X-Ray?
X-Ray можно использовать с приложениями, работающими на EC2, ECS, в Lambda, Amazon SQS, Amazon SNS и Elastic Beanstalk. Кроме того, SDK X-Ray автоматически отслеживает метаданные API-запросов к сервисам AWS, выполненных с помощью SDK AWS. В SDK X-Ray входят дополнения для драйверов MySQL и PostgreSQL.
Какие изменения нужно внести в код приложения, чтобы оно работало с X-Ray?
При использовании Elastic Beanstalk следует включить в код приложения соответствующие языковые библиотеки X-Ray. Для приложений, работающих в других сервисах AWS, таких как EC2 и ECS, необходимо установить демон X-Ray и обработать код приложения.
Есть ли у сервиса X-Ray API?
Да, у сервиса X-Ray есть набор API для обработки данных о запросах, сбора маршрутов и настройки сервиса. С помощью API X-Ray можно дополнительно разработать собственные приложения для анализа и визуализации.
Регистрирует ли AWS X-Ray события журнала в AWS CloudTrail?
Да. X-Ray регистрирует все вызовы API как события управления. Сервис также регистрирует вызовы трассировок как события данных, в том числе в PutTraceSegments и GetTimeSeriesServiceStatistics и других API. По умолчанию данные о событиях не регистрируются. Чтобы их зарегистрировать, необходимо настроить отслеживание событий CloudTrail или хранилище данных о событиях для их сбора.
Регионы
В каких регионах доступен X-Ray?
Подробнее см. на странице «Продукты и сервисы по регионам».
Можно ли использовать X-Ray для отслеживания запросов в приложения и сервисы, распределенные на несколько регионов?
Да, X-Ray позволяет следить за запросами в адрес приложений и сервисов, распределенных на несколько регионов. Данные X-Ray хранятся в регионах обработки, но при этом информации достаточно для того, чтобы объединить данные и сформировать общую карту маршрутов. Региональные аннотации для сервисов AWS создаются автоматически. При этом собственные сервисы клиента должны самостоятельно добавлять региональные аннотации для поддержания работы в нескольких регионах.
Работа с данными
Как быстро данные о маршрутах появляются в X-Ray?
Данные о маршрутах, отправляемые X-Ray, обычно становятся доступны для загрузки и фильтрации в течение 30 секунд с момента их получения сервисом.
В течение какого срока можно запросить данные о маршруте? Как долго X-Ray хранит данные о маршрутах?
X-Ray хранит данные о маршрутах за последние 30 дней. Таким образом, данные отслеживаний доступны для загрузки в течение 30 дней.
Почему иногда я вижу неполные маршруты?
X-Ray всегда старается предоставить полную информацию о маршрутах. При этом в некоторых ситуациях (ошибки соединения, задержки при получении сегментов и т. д.) данные, предоставляемые через API X-Ray, будут неполными. В таких случаях X-Ray отмечает маршруты как частичные или неполные.
Компоненты моего приложения работают в своих собственных аккаунтах AWS. Можно ли с помощью X-Ray собирать данные с разных аккаунтов AWS?
Да. Демон X-Ray может взять на себя роль, разрешающую публикацию данных в аккаунте, отличном от того, в котором он запущен. Это позволяет публиковать данные с разных компонентов приложения на центральный аккаунт.