I don’t know if that’s a coincidence or not, but drastic changes in application metrics usually happen soon after a product upgrade was made. In fact, whenever I have to deal with new issue on production server, the first thing I do is checking if it was recently updated. No wonder it makes sense to record such events along with other monitoring data.
But assuming our monitoring data is in Graphite, how would we do that?
Continue reading “Tracking application events in Graphite”
In the variety of collectd plugins there’s one ‘to rule them all’. If due to some course of events all collectd plugins except for Exec would be taken from you, you’d still be able to restore all its functionality with Exec.
As the name suggests, Exec starts external program or script and interprets its output as source of data. To be specific, it looks for lines that follow this scheme:
PUTVAL hostname/source-instance/datatype-instance [Interval=seconds] timestamp:value[:value..]
To be even more specific, these lines would work:
PUTVAL myhost/cpu-0/cpu-system interval=10 N:51
PUTVAL hostname/vm_count/gauge 1484012951:U
What is Graphite
Graphite is an app that does three things:
- It receives monitoring data from other agents,
- saves it efficiently into the database, and
- displays data as graphs and dashboards in web UI
Continue reading “Quick intro to Graphite”