Node Hero: Частина 13 - Моніторинг Node.js-додатків

5 хв. читання

Важливе значення моніторингу у Node.js

Розуміння внутрішньої роботи вашого Node.js-додатка дуже важливе! Вам потрібно постійно знаходити прогалини і з'ясовувати, що уповільнює роботу вашого продукту.

Ще більшою проблемою є обробка та передбачення часу простою. Ви повинні знати про це вже перед тим як ваші клієнти почнуть скаржитися. Виходячи з цих потреб, правильний моніторинг дасть вам додаткову інформацію про поведінку вашого застосування:

  • Ведення профілю на рівні коду: Ви повинні розуміти, скільки часу займає робота кожної функції у виробничому середовищі, не тільки локально.

  • Моніторинг мережевих з'єднань: Якщо ви будуєте архітектуру мікросервісу, вам потрібно моніторити мережеві з'єднання та нижчі затримки у зв'язку між вашими сервісами.

  • Панель продуктивності: Щоб підтримувати швидку, стабільну систему, потрібно обов'язково знати і спостерігати найважливіші показники продуктивності вашого додатка.

  • Оповіщення у режимі реального часу: Очевидно, якщо щось піде не так, ви повинні знати про це негайно. Вам потрібні інструменти, які можуть інтегруватися з Pagerduty або Opsgenie.

Моніторинг Серверу vs Моніторинг Додатку

Є концепції, які розробники зазвичай плутають - моніторинг серверів і моніторинг самих додатків. Ці поняття мають розглядатися окремо, оскільки один сервер може обслуговувати декілька додатків.

Давайте розглянемо деякі відмінності між ними!

Моніторинг Серверу

Моніторинг серверу відповідає за хост-машину. Такий моніторинг повинен допомогти вам відповісти на наступні питання:

  • Чи достатньо місця на диску мого сервера?

  • Чи має сервер достатньо процесорного часу?

  • Чи достатньо пам'яті на моєму сервері?

  • Чи досягає сервер мережі?

Для серверного моніторингу ви можете використовувати такі інструменти, як zabbix.

Моніторинг Додатків

Моніторинг додатків повинен давати вам відповіді на наступні запитання:

  • Чи досягає додаток бази даних?

  • Скільки запитів він зараз обробляє?

  • Який час відповіді?

  • Чи може мій додаток обробляти запити? Чи працює він?

Для моніторингу додатків, я рекомендую використовувати інструмент Trace.

Як використовувати Trace для Моніторингу у Node.js

Щоб розпочати роботу з Trace, перейдіть до https://trace.risingstack.com та створіть ваш безкоштовний акаунт.

Після реєстрації, виконуйте наступні дії, щоб додати Trace до вашого Node.js-застосунку.

Node.js

Чи це не легко? Якщо все зроблено правильно, ви побачите, що сервіс, до якого ви підключились, вже почав відправляти дані до Trace:

Node.js

1: Міра продуктивності

Як перший крок моніторингу вашого Node.js-додатку, я рекомендую перейти до сторінки метрик та перевірити продуктивність ваших сервісів.

Node.js

  • Ви можете використовувати панель часу відповіді, щоб побачити дані про медіану і 95-ий процентиль. Це допоможе вам з'ясувати, коли і чому сповільнюється робота вашого додатка, а також як це впливає на користувачів.

  • Граф пропускної здатності (throughput graph) показує кількість запитів на кожну хвилину (rpm) для категорій статус-кодів (200-299 // 300-399 // 400-499 // >500). Таким чином ви можете легко відокремлювати правильні та проблемні HTTP-запити у вашому застосуванні.

  • Граф використання пам'яті показує, скільки пам'яті використовує кожний процес. Розуміння, де відбувається витік пам'яті, іноді є досить корисним.

Для більш детальної інформації, перегляньте нашу документацію.

2: Налаштування оповіщень

Як я згадував раніше, вам потрібна правильна система оповіщень для вашого додатка.

Перейдіть до сторінки оповіщень Trace та натисніть на Створити нове оповіщення (Create a new alert).

  • Найважливіша річ, яку тут потрібно зробити, - налаштувати час простою та оповіщення щодо пам'яті. Trace повідомить вас на email / Slack / Pagerduty / Opsgenie або навіть Webhooks.

  • Я рекомендую налаштувати оповіщення Error rate by status code, щоб знати про HTTP-запити із статус-кодами 4ХХ та 5ХХ.

  • Також може бути корисним створити оповіщення про Час Відповіді (Response time), щоб отримувати повідомлення, коли ваш додаток починає сповільнюватися.

3: Обстеження дампів пам'яті (heapdumps)

Перейдіть до сторінки Profiler та зробіть запит на новий дамп пам'яті, зачекайте 5 хвилин та зробіть ще один запит. Завантажте їх та відкрийте у Сторінці Профілю (Profiles page) Chrome DevTool. Оберіть другий (той, який новіший) та натисніть Порівняння (Comparison).

Node.js

З цим ви можете легко знайти витіки пам'яті.

4: Моніторинг роботи Процесора

Ведення профілю на рівні коду необхідне, щоб розуміти, скільки часу потрібно для роботи вашої функції у виробничому середовищі. Trace може і це.

Все, що вам потрібно зробити - перейти до вкладки Профілі Процесору (CPU Profiles). Там ви можете зробити запит на завантаження профілю, який ви також можете завантажити на Chrome DevTool.

Node.js

Після завантаження ви зможете побачити період часу у 10 секунд роботи вашого додатку та усі ваші функції з часом їх роботи.

З цими даними, ви зможете з'ясувати, що сповільнює ваш додаток.

Кінець

Це все.

Протягом цих 13 частин серій туторіалів Node Hero, ви навчилися основам розробки додатків на Node.js.

Я сподіваюся, що ви змогли взяти щось корисне з цього!

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація