Для мониторинга производительности Старка нам понадобится следующий стек:
Агент APM Node.js: отправляет показатели производительности и ошибки на сервер APM. Он имеет встроенную поддержку самых популярных фреймворков и маршрутизаторов.
Сервер APM: получает данные от агентов APM и преобразует их в документы Elasticsearch.
ElasticSearch: база данных, используемая для хранения и индексации журналов.
Kibana - это инструмент визуализации (веб-интерфейс), использующий Elasticsearch DB для изучения, визуализации и обмена.
Ключевые особенности реализации APM
Простая реализация
Интеграция APM с приложением NodeJS - Express проста, и есть различные способы, которыми мы можем настроить его в соответствии с нашими потребностями.
Единственные обновления, которые мы должны добавить в кодировку, - это однократный вызов агента APM для его запуска раньше всего остального.
Пример:
Эффективность каждого веб-запроса и транзакции
Использование APM позволит нам измерить производительность каждого веб-запроса и транзакции в вашем приложении.
Затем мы можем использовать это, чтобы понять, какие запросы используются больше всего, какие самые медленные и какие из них следует добавить в свой бэклог для улучшения.
Профилирование производительности на уровне кода
Отслеживая, что делает приложение вплоть до уровня кода, мы потенциально можем получить больше информации о том, что происходит:
- Какие ключевые методы в вашем коде даже вызываются?
- Какие методы медленные?
- Приложение работает медленно из-за таких вещей, как JIT, сборка мусора и т. Д.?
- Какие зависимости вызываются?
Ошибки приложения
Нам необходимо найти и исправить ошибки или, по крайней мере, знать о них, прежде чем клиенты позвонят нам, чтобы сообщить нам, потому что, скорее всего, большинство из них даже не позвонят, чтобы сообщить вам.
Мы можем настроить оповещения для новых исключений, а также для отслеживания общего количества ошибок.
Вот несколько снимков экрана панели инструментов Kibana, подключенной с помощью Elastic APM.