Add icinga_stats collector

Commit adds icinga_stats collector which produces metrics by scraping data in
status.dat file produced by Icinga/Nagios.

Signed-off-by: Zdenek Styblik <zdenek.styblik@icflix.com>
feat(endecadgraph): new collector

Change-Id: I96d444b13962337f1504f8de961a74b5548f1d6e
Icinga Stats Collector - remove trailing wspace
Signed-off-by: Zdenek Styblik <zdenek.styblik@icflix.com>
Icinga Stats Collector - "translations" didn't work

Value translations didn't work, because "0,1,2" will match [0, 1]. Let's convert
given value to int which is exactly what we want.

Signed-off-by: Zdenek Styblik <zdenek.styblik@icflix.com>
icinga_stats - fix metric collision

Commit fixes metric collision between hosts.scheduled and
hosts.scheduled.{01,05,15}. This was caused by incorrect split().

Signed-off-by: Zdenek Styblik <zdenek.styblik@icflix.com>
Fix rabbitmq test
Support for config merging from specified directory
Patch beanstalkd collector

'version', 'id', and 'hostname' are not statistics and can be ignored.

See the protocol for a full list of outputs, and their description:

https://github.com/kr/beanstalkd/blob/master/doc/protocol.txt
Merge pull request #659 from MichaelDoyle/patch_beanstalkd_collector

Patch beanstalkd collector
Update memory.py

Add Committed_AS data to collected keys
Made pid detection more robust against invalid data (blank, non-numeric)
Unraveled staircase of nested for loops
Merge pull request #662 from rogerhub/master

Made pid detection more robust against invalid data (blank, non-numeric)
new(feat): added collector for chrony time offsets (ntp time skew)

Change-Id: If4863300ed483dcd83280dfe5c6d668eeacad530
Make handling of mongodb config more robust

- Make sure hosts parameter is interpreted correctly
- Enable option to always specify an alias
Remove history - not needed
Comment out debug stmt
Reduce the number of calls to connect_to_region(..). Was causing collector times to double
Improvements to the hadoop collector.

This change implements two major changes necessary to use the hadoop
collector in a production environment. The first change divides the time
by 1000 as the time reported in the metrics files are miliseconds since
epoch. Without this change the following error is thrown from graphite:
struct.error: 'L' format requires 0 <= number <= 4294967295

The second change included here is a truncation step to the file read.
Without a truncation step the metrics file will grow forever, and each
run will re-read the whole metrics file, sending all the old, as well as
the new metrics to the graphite server. By truncating the file after a
successful read we can stop not only the disks from filling up, but we
can also ensure that we never overload the graphite server by re-sending
massive numbers of metrics. This change is optional, and defaulted to
false in order to maintain current semantics.
postgres: make handling queries against pg_stats (etc) for different vers, more flexible