To Monitor the performance of Stark, we will need the following stack:
APM Node.js Agent : sends performance metrics and errors to the APM Server. It has built-in support for the most popular frameworks and routers.
APM Server : receives data from APM agents and transforms them into Elasticsearch documents.
ElasticSearch: a database used for storing and indexing logs
Kibana: is a visualization tool (a web interface) that uses Elasticsearch DB to Explore, Visualize, and Share
The key features of implement an APM
The integration of APM with NodeJS — Express app is easy, and there are various ways we can tweak it to fit our needs.
The only updates we have to add to the coding, is a single call of the APM Agent to run it before everything else.
Performance of every web request and transaction
Using an APM will enable us to measure the performance of every web request and transaction in your application.
We can then use this to understand which requests are accessed the most, which are the slowest, and which ones you should add to your backlog to improve.
Code level performance profiling
By tracking what the application is doing all the way down to the code level, we can potentially gain more insights about what is occurring:
- What key methods in your code are even being called?
- Which methods are slow?
- Is the app slow due to things like JIT, garbage collection, etc?
- What dependencies are being called?
We need to find and fix the errors, or at least know about them, before or customers call to tell us because odds are most of them won’t even call to tell you.
We can set up alerts for new exceptions as well as for monitoring overall error rates.
Here are some screenshots of a Kibana Dashboard Connected with Elastic APM