Розподілене трасування з AWS X-Ray та структуроване логування
Розгортання застосунків в AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Повільний запит, який ніхто не міг знайти
Один запит триває чотири секунди
Логи кожного сервісу окремо виглядають добре
Ніхто не бачить увесь шлях
Що розв'язує розподілене трасування
Один запит проходить через
багато сервісів
Логи не показують
шлях від кінця до кінця
Трейс
зшиває весь запит
Бачите, де саме зник час
Сегменти, підсегменти та мапа сервісів
Сегмент
: робота одного сервісу
Підсегмент
: одиниця всередині сегмента, напр., виклик БД
Мапа сервісів
: візуальний граф усіх сегментів
На кожному вузлі видно затримку та помилки
Анотації vs метадані
Анотації
Індексовані пари ключ-значення, тож їх
можна фільтрувати
Використовуйте для пошуку, напр., рівень клієнта
Метадані
Додаткові відомості,
не індексуються
Додавайте для контексту, але за ними не шукають
Кореляція логів за trace ID
Кожен трейс має унікальний
trace ID
Додавайте trace ID у свої
структуровані логи
Переходьте з повільного трейсу до точних рядків логів
Логи й трейси стають єдиним розслідуванням
Як читати мапу сервісів, щоб знайти вузьке місце
Починайте з
мапи сервісів
, не з логів
Знайдіть вузол із найбільшою
затримкою
Заглибтесь у його
часову шкалу трейсів
Найдовший сегмент — головний підозрюваний
Трасування всього запиту
API Gateway, Lambda та низхідні виклики всі
трасуються
Кожен додає свій
сегмент
до того самого трейсу
Один trace ID поєднує логи й сегменти
Видимість від кінця до кінця для кожного запиту
Давайте потренуємось!
Розгортання застосунків в AWS
Preparing Video For Download...