During prolonged testing or after the application has gone to production, we need to monitor its performance to make sure the application continues to meet the performance objectives. There may be infrastructural or operational issues impacting the performance or availability of the application, occasional spikes in latency, or dips in throughput. Generally, monitoring alleviates such risk by generating a continuous feedback stream.
Roughly, there are three kinds of components used to build a monitoring stack. A collector sends the numbers from each host that needs to be monitored. Usually we explicitly make calls in code to periodically send performance data or events to the collector. The collector gets host information and the performance numbers and sends them to the aggregator. An aggregator receives the data sent by the collector and persists them until asked by a visualizer on behalf of the user– the visualizer displays the data in a suitable format.
The project...