Named return variables should only be used to describe the returned type
further, e.g. `err error` doesn't add any new information and is just
stutter.
Remove special tags necessary for gmond and runit collectors. All
collectors get built. Selection of which collectors to use continues to
happen via parameter.
Switch to Update using the Collecter Collect interface, due to not knowing all
metricnames in all modules beforehand we can't use Describe and thus the full
Collecter interface.
Remove 'updates', it's meaning varies by module and doesn't add much.
Last login is disabled by default as it's broken on ubuntu 12.04
Interrupts is disabled by default as it's very granular and we'll have total interrupts from /proc/stat
Allow ignoring devices from diskstats, ignore ram and loop devices by default.
Use glog for logging.
The gmond (Ganglia) exporter module exports many metrics not under our
control. They should all be prefixed in a common way to make it obvious
where they came from.
Fixes https://github.com/prometheus/node_exporter/issues/8
This works by using a global array with references to NewXCollector
functions. Each collector appends to that array in it's init() function.
Which file gets build depends on the build tags:
To build only the ganglia exporter, you can do:
go build -tags nonative,ganglia
By default it will build only the native collector.
Because: "We are using a period to separate between the job name and the metric
name in shorthand; thusly, a metric ought not have a period in it." - Matt
A collector is a type matching 'Collector' interface.
The following collectors where added:
- NativeCollector wrapping the original functionality (attributes, load)
- GmondCollector scraping ganglia's gmond (based on gmond_exporter)
- MuninCollector scraping munin (based on munin_exporter)