Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!31.08.2022
Відлагодження проблем з навантаження за допомогою AWS CloudWatch
📃🔍🐞 Сьогодні довелося шукати причину перенавантаження бази по логах в AWS Cloudwatch (це амазонівський сервіс логування та спостереження).
- З'ясували, що база почала перенавантажуватись раптово, з деякого часу. (Це просто по метриках.)
- Визначаємо - чи це база досягнула технічної межі, або чи маємо аномальне навантаження. Пишемо простий запит в Log Insights, та по гістограмі бачимо, що кількість запитів дійсно зросла стрибком. (Це можна теж подивитись по метриках.)
- Ставимо гіпотезу - додаткові запити походять з конкретного акаунту користувача (це найпростіше пояснення.) Як визначити, з якого?
- В Cloudwatch можна тегувати записи, просто передаючи в тілі записа JSON об'єкт. Але на жаль, ми ще тегували акаунтом. (Тепер будемо)
- Якщо тегів немає, Cloudwatch також вміє парсити записи регулярками, на льоту, командою parse
. Це спрацювало.
- Потім за допомогою статистичного запиту stats()
та сортування знаходимо акаунт з найбільшою кількістю запитів.
- Акаунт знайшли, далі вже інша історія.
PS
- Треба знати, що в Cloudwatch потік - належить конкретному процесу, а група - збирає потоки однакової форми. Наприклад, по групі на сервіс. Групувати потоки різної форми - це ускладнювати собі життя.
- До речі, навіть API Cloudwatch так побудований, що в потік можна писати тільки знаючи токен з попереднього запису, тобто виключно послідовно.