[collectd] generating composite metrics

Marc Fournier marc.fournier at camptocamp.com
Fri Jun 27 07:48:32 CEST 2014


Excerpts from Gerardo Herzig's message of 2014-06-25 18:14:10 +0200:
> Hi all. Im wondering if it is possible to generate a metric as a
> calculation between others.
> Example I: Know the rate between the "used memory" and the "total
> memory".  Example II: Know the rate between "In use" apache threads
> against "total" apache threads.

As a side note, the master branch has a patch which allows the memory
plugin to emit percentages instead of absolute values. Maybe this could
solve example 1 in a way ?

> I know how to make a graph as this sort of calculations, but i also
> need to generate an alert when, say, 75% of the apache's threads are
> in use, so the graphical solutions does not cover all my needs.
> So i guess the correct solution is to generate my own .rrd files
> according to existing .rrd files. I just dont have any idea how.

I like using riemann for this sort of use-cases (http://riemann.io).
Basically, you just use collectd to collect metrics from your systems
and send them to a riemann server using the write_riemann plugin. Then
do the calculations/aggregations/correlations (and optionnally, the
alerting based on the result) in riemann.

If you're tied to having the resulting values in RRD files (which
riemann doesn't know about), you can run riemann embedded in collectd
using the java language binding plugin. This way you can do the filering
and calculations you want using riemann, and have the results passed
down to collectd's rrdtool/rrdcached plugin. Search for "collmann" on
github for the details.


More information about the collectd mailing list