Application performance monitoring is the key to proving that the application is delivering the business value it was designed for. The setup for application monitoring should start at the beginning of development cycle, otherwise if it is left to the advanced stage, it could potentially extend the project delivery cycle by weeks and sometimes months.
For application monitoring we should capture “4 golden signals” (SRE term):
- Latency – the time to serve a request, successful and in error
- Traffic – number of web requests per second, number of queries to the database per second etc
- Errors – server exceptions (500, 400 type of errors), core dump, 200 errors with the wrong response etc.
- Saturation – memory, cpu usage, predictive like when battery will die etc
Mandatory requirements for application monitoring tools:
- Dashboards to show:
- Whether the application is running.
- Unusual cpu/memory/network usage.
- Report any unhandled exceptions.
- Status of various modules (if applicable).
- Status of external components (databases, web services, file servers, etc.)
- Number of pending background tasks (if applicable)
- Real User Monitoring (user sessions grouped by actions)
- Traceability from user actions down to the web service and database calls.
- Expansion on exceptions down to the logs or the source code
- Reports and statistics on for example web requests, most browsers used, most functionalities used etc.
- Alerting on errors or failed services
- Secure access to the applications
Nice to have requirements for application monitoring tools:
- Agent-less collection of data
- Self discovery of assets to be monitored
- Service and infrastructure grouping
- Multitenancy support
- Use of APIs
- Predictive analysis with AI