Commit Graph

665 Commits

Author SHA1 Message Date
Kirk Russell
88c30557c0 Fixed minor compile time error 2015-10-01 18:42:25 -04:00
Harmen
5d6fb852bb fix copy-paste error in comment
Comment seems to be copied from netdev_linux.go, where it is correct.
2015-09-29 20:52:33 +02:00
Matthias Rampke
7c47338081 Add an end-to-end test.
This test runs a selection of collectors against the fixtures and
compares the output to a reference.

The uname and filesystem collectors are disabled because they use system
calls that cannot be fixtured easily.
2015-09-28 13:56:22 +00:00
Matthias Rampke
788ac9a859 Rearrange fixtures to match "real" proc and sys.
And add some missing fixtures for default collectors, even if they're
not read by tests yet.
2015-09-28 13:56:22 +00:00
Matthias Rampke
85eb47197f Add a flag for the sysfs location.
Analogous to `collector.procfs`, but for `/sys`. Add tests for both.
2015-09-28 13:56:22 +00:00
Matthias Rampke
24c9db9600 Suppress log noise from textfile collector test. 2015-09-28 13:56:22 +00:00
Matthias Rampke
60dffaa9ff Fix mdadm collector.
In the move to the procfs flag, I accidentally changed the filename.
2015-09-28 13:56:22 +00:00
Kirk Russell
89875cefe8 converted freebsd cpu metrics to seconds 2015-09-26 20:58:47 -04:00
Matthias Rampke
2d0d72b97d Add license headers to all code files. 2015-09-26 17:44:39 +02:00
Matthias Rampke
20b551ab2b Add flag to change the location of the procfs.
Remove all hardcoded references to `/proc`. For all collectors that do
not use `github.com/prometheus/procfs` yet, provide a wrapper to
generate the full paths.

Reformulate help strings, errors and comments to remove absolute
references to `/proc`.

This is a breaking change: the `-collector.ipvs.procfs` flag is removed
in favor of the general flag. Since it only affected that collector it
was only useful for development, so this should not cause many issues.
2015-09-26 15:32:10 +02:00
Björn Rabenstein
cf3aa37f1a Merge pull request #120 from prometheus/move-to-common
Move from client_golang/text to common/expfmt
2015-09-17 14:38:27 +02:00
beorn7
8f182d2f02 Move from client_golang/text to common/expfmt 2015-09-17 14:05:56 +02:00
Julius Volz
7de03b8d6b Merge pull request #119 from AlphaB/issue-95
Resolve go vet problems
2015-09-17 11:44:46 +02:00
Björn Rabenstein
ca74e8ab3e Merge pull request #117 from TheTincho/forget-old-filesystems
Revamp the filesystem collector to use throw-away ConstMetrics.
2015-09-16 17:31:06 +02:00
Martín Ferrari
e3f217ea45 Build filesystem_common only on linux and freebsd. 2015-09-16 18:15:27 +03:00
Julius Volz
d8bf6daed9 Merge pull request #118 from TheTincho/forget-old-netdevs
Revamp the netdev collector to use throw-away ConstMetrics.
2015-09-16 16:36:16 +02:00
Martín Ferrari
0161a36fa5 Fix formatting and variable names. 2015-09-16 17:06:59 +03:00
Martín Ferrari
dace6dc48b Fix issues from code review, and split common code into filesystem_common.go. 2015-09-16 16:34:34 +03:00
Mikhail Salosin
e41593de14 Add unix timestamp of the last service state change to runit collector 2015-09-15 19:46:59 +03:00
Martín Ferrari
13672ced48 Revamp the netdev collector to use throw-away ConstMetrics. 2015-09-15 15:31:51 +00:00
Mikhail Salosin
741fb66e1c Resolve go vet problems
Issue prometheus/node_exporter#95
2015-09-15 17:09:10 +03:00
Martín Ferrari
8c2316e8a9 Revamp the filesystem collector to use throw-away ConstMetrics. 2015-09-15 12:17:15 +00:00
Jonas Große Sundrup
9f2aa24e12 Add collector for metrics of linux software raids 2015-09-11 18:36:39 +02:00
Julius Volz
7b39ccc144 Add Linux uname collector.
This creates a single metric like:

node_uname_info{domainname="(none)",machine="x86_64",nodename="desktop",release="3.16.0-48-generic",sysname="Linux",version="#64~14.04.1-Ubuntu SMP Thu Aug 20 23:03:57 UTC 2015"} 1
2015-09-11 14:32:18 +02:00
Julius Volz
02956d2bcc Merge pull request #114 from chosenken/sockstat
Fixed sockstat test wording
2015-09-10 17:15:21 +02:00
Ken Herner
7569c6ce23 Initial implementation of file-nr
Fixed file-nr update function

Fixed file-nr test case

Fixed file-nr test case again

Fixed file-nr separator to tab

Updated file-nr to filenr.

Updated file-nr to filenr.

Fixed file-nr test cases, added comments

Remove reporting the second value from file-nr as it will alwasy be zero in linux 2.6 and greator

Renaming file-nr to filefd

Updated build constraint

Updates and code cleanup for filefd.

Updated enabledCollectors with the correct name for filefd

Fixed filefd test wording
2015-09-10 10:27:58 -04:00
Ken Herner
d6a1f0c7e3 Fixed sockstat test wording 2015-09-10 10:21:19 -04:00
Julius Volz
6f17231e44 Minor comment cleanups. 2015-09-10 12:21:25 +02:00
Julius Volz
dd5fc6a3ca Merge pull request #111 from chosenken/sockstat
Implementation of /proc/net/sockstat collector
2015-09-10 12:19:47 +02:00
Ken Herner
d4adef9881 Added new metric mem_bytes that reports the number of bytes used by TCP/UDP memory 2015-09-09 14:05:16 -04:00
Ken Herner
60a57a15d5 Updated sockstat build constraint 2015-09-09 12:37:48 -04:00
Ken Herner
356e1bb866 Added sockstat test file
initial work on sockstat work

Fixed package name

Finished implementation of the sockstat plugin

missed a return value

Added sockstat to default plugins to start

Fixed scanner read on sockstat

fixed sockstat linux test for TCP alloc

update sockstat test case

Updated sockstat to return TCP and UDP memory in bytes instead of page count
2015-09-09 10:48:17 -04:00
Julius Volz
e13f910427 Fix mtime reporting in textfile collector, add tests. 2015-09-04 15:42:44 +02:00
Alexey Palazhchenko
38e6e6b672 Fix debug output 2015-08-28 08:54:36 +03:00
Alexis Letessier
0028abc077 megacli: prevent crash when drive temperature is N/A
Intel SSD do not report their temperature in MegaCLI output
Drive Temperature : N/A
2015-07-29 08:34:02 +02:00
Jari Takkala
21ce0cbda9 Add support for stats from /proc/net/snmp as well. 2015-07-15 12:39:28 -04:00
Siavash Safi
8c4a5b0f65 stats: Fix formatting. 2015-07-14 17:27:20 +04:30
Siavash Safi
dddb273dfc Fix some error messages. 2015-07-14 13:58:54 +04:30
Siavash Safi
93708f3dda devstat: Fix metric types, disable free metrics. 2015-07-14 13:58:53 +04:30
Siavash Safi
f8ede82488 cpu: Fix build constraints. 2015-07-14 13:58:53 +04:30
Siavash Safi
9e66d4f2ae meminfo: Code cleanup. 2015-07-14 13:58:52 +04:30
Siavash Safi
d303a2ebc3 loadavg: Fix build constraints. 2015-07-14 13:58:52 +04:30
Siavash Safi
d80b2af492 loadavg: Split the collector for linux and other platforms. 2015-07-14 13:58:51 +04:30
Siavash Safi
720198e047 netdev: Code cleanup. 2015-07-14 13:58:51 +04:30
Siavash Safi
78bf63ffd8 filesystem: Code cleanup. 2015-07-14 13:58:50 +04:30
Siavash Safi
462b708742 cpu: Code cleanup. 2015-07-14 13:58:50 +04:30
Siavash Safi
f93125ba10 loadavg: Remove unnecessary global variable. 2015-07-14 13:58:49 +04:30
Siavash Safi
ccbea34465 filesystem: Remove unused const variable. 2015-07-14 13:58:49 +04:30
Siavash Safi
71abff14b1 devstat: Fix wrong labels for 'other' metrics. 2015-07-14 13:58:49 +04:30
Siavash Safi
c5669f0a1a Add devstat collector for FreeBSD. 2015-07-14 13:58:48 +04:30
Siavash Safi
f7563fe7a2 Remove config from collectors. 2015-07-14 13:58:48 +04:30
Siavash Safi
1ebda4c0aa Remove linux build contraint from meminfo test source code. 2015-07-14 13:58:48 +04:30
Siavash Safi
9b6843db60 netdev: use counters instead of gauges. 2015-07-14 13:58:47 +04:30
Siavash Safi
c651d7ccd9 meminfo: use bytes, fix type conversion bug. 2015-07-14 13:58:47 +04:30
Siavash Safi
a10ab2c102 Check caller's euid and egid when accessing /dev/mem on FreeBSD. 2015-07-14 13:58:47 +04:30
Siavash Safi
6ef3b7a4e8 Add filesystem collector for FreeBSD. 2015-07-14 13:58:46 +04:30
Siavash Safi
13d5f969a5 Removed freebsd build constraints from source code. 2015-07-14 13:58:46 +04:30
Siavash Safi
ae5aea0191 Add netdev collector for FreeBSD. 2015-07-14 13:58:46 +04:30
Siavash Safi
66e0171159 Rename linux collectors for build constraints. 2015-07-14 13:58:45 +04:30
Siavash Safi
d7ec7eac1f Revert "Add build constraint for linux collectors." 2015-07-14 13:58:44 +04:30
Siavash Safi
4c5db2787e Add meminfo collector for FreeBSD. 2015-07-14 13:58:44 +04:30
Siavash Safi
ad73b87d1e Add build constraint for linux collectors. 2015-07-14 13:58:44 +04:30
Siavash Safi
23bb9c44b9 Add cpu collector for FreeBSD. 2015-07-14 13:58:43 +04:30
Siavash Safi
f9fa6d05cf loadavg: Use getloadavg() from stdlib.h 2015-07-14 13:58:42 +04:30
Ian Hansen
64affe205b Allows netdev devices to be ignored 2015-07-13 17:18:34 -06:00
Will Rouesnel
676ed5c6ac Change "filesystem" to "mountpoint" to better reflect the new labels. 2015-07-07 02:40:19 +10:00
William Rouesnel
b22d2e9739 Add device,fsType collection to the filesystem exporter.
Collects more information for labelling scraped filesystems with the device
and fsType. This is useful for setting alerts which should change based on
filesystem type, or for filtering out shared mounts such as with NFS volumes.
2015-07-03 11:05:03 +10:00
Julius Volz
e65bc868fc Switch logging from glog to github.com/prometheus/log. 2015-05-28 21:34:02 +02:00
Julius Volz
9f046cd88e Run gofmt. 2015-05-28 21:22:03 +02:00
Julius Volz
b539481503 Merge pull request #75 from prometheus/remove-attribute-module
Use flags instead of config and remove attributes
2015-05-21 11:49:01 +02:00
Johannes 'fish' Ziemke
665b05eedc Use flags instead of config and remove attributes 2015-05-21 11:36:56 +02:00
Julius Volz
072ddabf62 Fix /proc/net/dev column parsing.
This fixes https://github.com/prometheus/node_exporter/issues/73
2015-05-21 01:01:15 +02:00
Matthias Rampke
2ee8470004 remove cgo dependency
by hardcoding `USER_HZ` (aka. `_SC_CLK_TCK`) to 100, which it is for all
platforms Go supports. See prometheus/node_exporter#52 for discussion around this too.

Closes prometheus/node_exporter#52.
2015-05-12 14:24:48 +00:00
Matthias Rampke
37c7e5e60f Add IPVS stats collector.
This collector exposes IPVS status from `/proc/net/ip_vs` and stats from
`/proc/net/ip_vs_stats`.

Note that it is _not_ tested with IPv6, YMMV.
2015-05-08 14:02:47 +00:00
Julius Volz
3ab0b1f915 Merge pull request #56 from kjmkznr/add-tcp-stat-collector
Add TCP state collector
2015-03-24 12:50:26 +01:00
KOJIMA Kazunori
e4da771b21 Add collector for /proc/net/tcp 2015-03-24 20:34:48 +09:00
Benjamin Staffin
df7ba0af85 Switch protobuf import to its new github URL 2015-03-22 12:25:07 -07:00
Julius Volz
efcce45c90 Make collector-specific flags consistent with others.
This puts all collector-specific flags into their own namespace under
"collector.<collector-name>", and moves from camel case to dashes, which
is the standard in Prometheus land now.
2015-02-18 18:42:39 +01:00
Stephen Shirley
54da76f575 Match fd0, not fda0
Add fd/sr/vda examples to test input
2015-02-18 17:10:28 +01:00
Stephen Shirley
686a0c768c Fix typo, match fd0, not fdd0 2015-02-18 16:09:41 +01:00
Stephen Shirley
72404d9ed1 Ignore floppy disk devices, due to it being 2015 2015-02-18 16:04:53 +01:00
Stephen Shirley
0c7d45cc5d Also ignore vda1 and friends 2015-02-18 15:44:30 +01:00
Daniel Speichert
1763908013 Fixed panic when parsing /proc/stat on 2.6.32-25-pve
Fixes issue described in #38
/proc/stat reports a blank line which needs to be ignored.
Old kernels misses one CPU time field, this needs to be ignored too.
2015-02-07 06:36:36 +01:00
Brian Brazil
352cde6d20 Add text file exporter
This allows static metrics (e.g. an attributes collector replacement),
and cronjobs to expose stats by echoing into a file.

For example:

echo "my_metric 123" > mycronjob.prom.$$
mv mycronjob.prom.$$ mycronjob.prom
2015-01-25 16:25:25 +00:00
Tobias Schmidt
0aacec2335 Fix ganglia namespace
Remove double underscore usage.
2014-11-26 18:15:02 -05:00
Tobias Schmidt
74971c46ba Consolidate build flags
The build of any collector can be deactivated by using "no<name>".
2014-11-25 18:01:02 -05:00
Tobias Schmidt
211ddf33f1 Consolidate collector selection
Remove special tags necessary for gmond and runit collectors. All
collectors get built. Selection of which collectors to use continues to
happen via parameter.
2014-11-25 18:01:02 -05:00
Tobias Schmidt
872f921867 Reduce number of global variables used
This is the first step to make the exporter more testable.
2014-11-24 21:08:50 -05:00
Tobias Schmidt
974f6fc762 Fix tests 2014-11-24 18:34:02 -05:00
Brian Brazil
96eaff8c7e Add an exporter for /proc/net/netstat, enabled by default.
This catches things like listen overflows, retransmits
and other things that are very useful for retroactive debugging
thus I think it's justified to have it on by default.
2014-11-11 16:54:08 +00:00
Brian Brazil
1c17481a42 Collect at every scrape, rather than at regular intervals.
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.
2014-10-29 17:00:36 +00:00
Johannes 'fish' Ziemke
9f6fc576df Look for slave_ and lower_ prefixed device in proc
Looks like on newer kernels this is prefixed lower_ not slave_.
2014-10-03 14:29:38 +02:00
Johannes 'fish' Ziemke
0bf0f67503 Add network bonding collector
This collector exposes two metrics:

- net_bonding_slaves: configured slaves per bonding interface
- net_bonding_slaves_active: currently active slaves per bonding
  interface
2014-08-14 15:45:17 +02:00
Johannes 'fish' Ziemke
b03ff7cb9b Fix format string in test 2014-08-13 13:36:16 +02:00
Johannes 'fish' Ziemke
2b3a112b54 Add time exporter
This simple exporter exposes the systems unix time. It's useful to
compare it to the prometheus server time and other targets to detect
clock skew.
2014-07-28 13:02:48 +02:00
Johannes 'fish' Ziemke
32724a10b0 Add NTP exporter
This exporter gets the time from a NTP server and exposes the offset
between the remote and local system time.
2014-07-28 13:02:46 +02:00
Johannes 'fish' Ziemke
053db59122 Change metric prefix from raid to megacli 2014-07-09 18:47:17 +02:00
Johannes 'fish' Ziemke
50c66918d8 Merge pull request #18 from prometheus/add-megaraid-metrics
Add MegaCLI collector
2014-07-09 14:56:52 +02:00
Johannes 'fish' Ziemke
f47abc5d06 Add MegaCLI collector
This collector exports the following metrics:

- raid_drive_temperature: drive temperature
- raid_drive_count: drive error and event counters
- raid_adapter_disk_presence: disk presence per adapter
2014-07-09 14:56:06 +02:00
Johannes 'fish' Ziemke
7cb4c0edb6 Fix tests 2014-07-04 18:44:51 +02:00
Bjoern Rabenstein
28468bebae Now also migrate gmond and runit. 2014-06-26 21:16:21 +02:00
Bjoern Rabenstein
0563ecd29d Migrated everything to new client_golang. 2014-06-26 19:20:36 +02:00
Brian Brazil
c0f10e3a6d Update comment format. 2014-06-06 11:38:34 +01:00
Brian Brazil
09a3de1669 Changes per code review. 2014-06-06 10:53:40 +01:00
Brian Brazil
062443133e Add collector for /proc/stat, enabled by default.
This gives cpu stats, boot time, context switches, forks.
2014-06-06 10:37:16 +01:00
Brian Brazil
3f0814f13b Add filesystem collector module, to report space used etc. 2014-06-05 20:46:11 +01:00
Brian Brazil
b98ac0b050 Also ignore xvda1, as seen on AWS 2014-06-05 14:23:13 +01:00
Brian Brazil
f9c6e4ca52 Ignore disk partitions by default, it's the disks themselves you usually want. 2014-06-05 11:44:44 +01:00
Brian Brazil
25ea90369c Split native collector into it's component parts and make them enablable.
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.
2014-06-04 12:37:25 +01:00
Brian Brazil
964cdbfcc9 Trim down a bit per feedback. 2014-05-23 15:53:31 +01:00
Brian Brazil
ffc811b337 Expand docs per code review. 2014-05-23 15:38:44 +01:00
Brian Brazil
6cdaf0e969 Change stats to follow name guidelines.
Diskstats: Split out metrics, keep 'device' label
Meminfo: Split out metrics, one each. Convert kB to bytes.
Netstats: Split out metrics, keep 'device' label.
Interrupts: Stays the same. Not perfect, but should be rarely used.
Loadavg: Make it clear it's the 1m loadavg
Last seen: Not clear this belongs in the node exporter, as it's more a user
  thing than a machine thing. Changed to absolute time rather than relative.

All stats now have appropriate counter/gauge type.
2014-05-23 14:41:43 +01:00
Julius Volz
a22036788a Prefix Ganglia metrics with "ganglia_".
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
2014-04-10 12:34:39 +02:00
Johannes 'fish' Ziemke
3a4aa70afb Make collector testable and add native test 2014-02-18 14:53:48 +01:00
Johannes 'fish' Ziemke
3ac5222f8b Move exporter to main and listen/interval to flags 2014-02-18 13:57:41 +01:00