Instrumenting a Product
Instrumentation involves embedding or integrating monitoring and tracking mechanisms within software applications to collect data on performance, usage, and overall behaviour.
Goal
The goal of instrumentation is to provide real-time insights into application performance and user behaviour, enabling continuous improvement and informed decision-making.
Context
As we increase the pace of delivery, and increasingly rely on automated testing it becomes essential to have real-time visibility into application behaviour to identify and address issues quickly, ensuring that applications remain available and performant.
Types of Monitoring
Monitoring Category | Description | Example Metrics |
---|---|---|
Performance Monitoring | Metrics that measure the responsiveness and speed of applications and systems. | Response time, throughput, latency. |
Application Health Monitoring | Metrics focused on the operational status and health of applications, ensuring they are functioning correctly. | Error rates, uptime, crash reports. |
User Monitoring | Metrics that provide insights into how users interact with the application, including behaviour and satisfaction. | Active users, session length, churn rate, conversions. |
Infrastructure Monitoring | Metrics related to the physical or virtual resources supporting the application, ensuring they are performing optimally. | CPU usage, memory usage, disk I/O. |
Cloud Cost Monitoring | Metrics that track the costs associated with cloud resource usage, helping to manage and optimise spending. | Cost per service, cost per region, unused resource costs. |
Inputs
Artifact | Description | Benefits |
---|---|---|
Monitoring Metrics | Data points collected from the application, providing insights into performance, usage, and behaviour. | Enables real-time visibility into application behaviour, facilitating troubleshooting and performance optimisation. |
Outputs
Artifact | Description | Benefits |
---|---|---|
Realtime Application Performance Data | Data collected from the application's monitoring tools, providing insights into performance and usage. | Enables real-time visibility into application behaviour, facilitating troubleshooting and performance optimisation. |
Anti-patterns
- Over-Instrumentation: Embedding too many monitoring tools or collecting excessive data, which can lead to performance degradation and data overload.
- Underutilising Data: Failing to analyse or act on the collected data, missing opportunities for improvement.