Для мониторинга производительности Старка нам понадобится следующий стек:

Агент APM Node.js: отправляет показатели производительности и ошибки на сервер APM. Он имеет встроенную поддержку самых популярных фреймворков и маршрутизаторов.

Сервер APM: получает данные от агентов APM и преобразует их в документы Elasticsearch.

ElasticSearch: база данных, используемая для хранения и индексации журналов.

Kibana - это инструмент визуализации (веб-интерфейс), использующий Elasticsearch DB для изучения, визуализации и обмена.

Ключевые особенности реализации APM

Простая реализация

Интеграция APM с приложением NodeJS - Express проста, и есть различные способы, которыми мы можем настроить его в соответствии с нашими потребностями.

Единственные обновления, которые мы должны добавить в кодировку, - это однократный вызов агента APM для его запуска раньше всего остального.

Пример:

Эффективность каждого веб-запроса и транзакции

Использование APM позволит нам измерить производительность каждого веб-запроса и транзакции в вашем приложении.

Затем мы можем использовать это, чтобы понять, какие запросы используются больше всего, какие самые медленные и какие из них следует добавить в свой бэклог для улучшения.

Профилирование производительности на уровне кода

Отслеживая, что делает приложение вплоть до уровня кода, мы потенциально можем получить больше информации о том, что происходит:

  • Какие ключевые методы в вашем коде даже вызываются?
  • Какие методы медленные?
  • Приложение работает медленно из-за таких вещей, как JIT, сборка мусора и т. Д.?
  • Какие зависимости вызываются?

Ошибки приложения

Нам необходимо найти и исправить ошибки или, по крайней мере, знать о них, прежде чем клиенты позвонят нам, чтобы сообщить нам, потому что, скорее всего, большинство из них даже не позвонят, чтобы сообщить вам.

Мы можем настроить оповещения для новых исключений, а также для отслеживания общего количества ошибок.

Вот несколько снимков экрана панели инструментов Kibana, подключенной с помощью Elastic APM.