Performance monitoring
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 infrastructure or operational issues impacting the performance or availability of the application, or 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. The collector gets host information and the performance numbers and sends them to an aggregator. An aggregator receives the data sent by the collector and persists them until asked by a visualizer on behalf of the user.
The project metrics-clojure (https://github.com/sjl/metrics-clojure) is a Clojure wrapper over the Metrics (https://github.com/dropwizard/metrics) Java framework, which acts...