Моніторинг і усунення несправностей в AWS
John Q. Martin
Principal Consultant
Автоматично з ваших трас: без ручного налаштування

Одним поглядом: зелений = вчасно · бурштиновий = затримка · червоний = зупинено

Відкривши мапу сервісів, одразу шукайте все, що не зелене.
Клацніть будь-який вузол, щоб побачити: розподіл часу відповіді, розбиття HTTP-статусів, типи помилок.

API Gateway (50ms)
-> OrderService (50ms)
-> PaymentService (100ms)
-> External API (200ms)
Разом: 400ms
External API = 50% загальної затримки
Порівняйте альтернативний шлях:
OrderService -> DynamoDB
Разом: 120ms (швидко)


Query 1 (10-30ms)
-> Query 2 (30-50ms)
-> Query 3 (50-70ms)
-> Query 4 (70-90ms)

Get user list (10-20ms)
Get user 1 details (20-30ms)
Get user 2 details (30-40ms)
... ×100 послідовних запитів
Виправлення: пакетні запити, eager loading
Виправлення: пакетні запити, черги повідомлень, кешування

Виправлення: provisioned concurrency, оптимізуйте ініціалізацію
Service A [Error]
-> Service B [Timeout 5s]
-> Service C [Timeout 5s]
-> Database [Timeout 5s]
Однакові блоки timeout, складені вздовж ієрархії трас
Виправлення: timeouts, circuit breakers, fallbacks

Порівнюйте групи:
response_time > 1000ms, сортування за тривалістю
# Сповіщення про високу затримку
aws cloudwatch put-metric-alarm \
--alarm-name HighLatency \
--metric-name ResponseTime \
--namespace AWS/XRay \
--statistic Average \
--period 300 \
--threshold 1000 \
--comparison-operator GreaterThanThreshold
# Сповіщення про велику кількість помилок
aws cloudwatch put-metric-alarm \
--alarm-name HighErrorCount \
--metric-name ErrorCount \
--namespace AWS/XRay \
--statistic Sum \
--period 300 \
--threshold 50 \
--comparison-operator GreaterThanThreshold
Моніторинг і усунення несправностей в AWS