Commit graph

494 commits

Author SHA1 Message Date
Pavel Borzenkov d1789be33e Fix compilation on OS X
As OS X doesn't have it's own interrupts provider, don't build
interrupts_common on OS X as well. Otherwise build fails, because
interrupts_common depends on variables provided by platform-specific
files.

Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
2015-11-12 18:17:32 +03:00
Will Rouesnel 05539ee156 Add filesystem read-only metric node_filesystem_readonly
This is a boolean metric which is set to 1 when the filesystem is flagged as
read-only.
2015-11-12 14:11:07 +11:00
Bruno Bigras f74de8943b Fix flag name in textfile.go 2015-11-10 15:45:50 -05:00
Julius Volz 07b39499cd Fix protocol version setting in NTP collector.
The upstream library changed their interface - the global Version
variable is gone:

283ed9d548
2015-11-10 10:08:57 +01:00
Tobias Schmidt b11cd9c7d4 Merge pull request #158 from mischief/interrupts-openbsd
collector: add openbsd support to interrupt collector
2015-11-06 22:26:09 -05:00
Tobias Schmidt fe40d8fce2 Merge pull request #159 from mischief/netdev-openbsd
collector: add openbsd support for netdev
2015-11-06 19:05:21 -05:00
Nick Owens 3eb2d6625a collector: add openbsd support for netdev 2015-11-06 15:29:57 -08:00
Nick Owens 73ee8f5257 collector: add openbsd support to interrupt collector 2015-11-06 14:49:04 -08:00
Mikhail Salosin e7359706d4 Do not use flag before flag.Parse() was called 2015-11-06 19:45:05 +03:00
Nick Owens ebf3ef32f1 collector: sync bsd filesystem collector labels with linux 2015-11-02 19:16:17 -08:00
Nick Owens b58d1fc971 collector: add openbsd suport to filesystem colector 2015-11-01 19:17:11 -08:00
Nick Owens 2cb489253c collector: support 1,5,15m load averages for all unices 2015-10-31 06:04:24 -07:00
Nick Owens eb79937340 switch to github.com/prometheus/common/log for logging 2015-10-30 13:20:06 -07:00
Mikhail Salosin 10e65086ea Add NTP protocol version flag 2015-10-26 16:15:53 +03:00
Julius Volz 00e5d1334b Merge pull request #142 from crisidev/master
Add load5 and load15 to linux load metric
2015-10-21 23:26:02 +02:00
Matteo Bigoi e6ffeb4907 Reduce nesting in sanity check 2015-10-21 15:38:26 +00:00
Matteo Bigoi 8913d71ca4 Update end-to-end output for testing 2015-10-19 19:31:54 +00:00
Matteo Bigoi 5918be9a8c Fix documentation and a possible slice bounds out of range 2015-10-19 19:31:31 +00:00
Kevin Lyda 36291d456e Make filesystem collector more robust.
Current behaviour throws away all stats on any Statfs error. In practice
this is not useful. This turns such errors into debug log messages -
though silently ignoring them seems even more valid to me.
2015-10-18 19:47:45 +01:00
Matteo Bigoi 832ba9cc1d Add load5 and load15 to linux load metric 2015-10-17 13:07:39 +00:00
Tobias Schmidt 0faa12cacd Update end-to-end fixtures 2015-10-16 18:53:44 -04:00
Tobias Schmidt 500340bdde Remove logging in IPVS tests 2015-10-16 18:53:44 -04:00
Tobias Schmidt 7e2b65f942 Clean up lint errors 2015-10-16 18:53:44 -04:00
Brian Brazil 07022b3555 Fix compilation on linux/arm64 2015-10-15 08:44:49 +01:00
Brian Brazil 59f1949a76 Merge pull request #135 from prometheus/remove-unneeded-make
Remove unneeded `make` in empty slice initialization.
2015-10-11 21:44:46 +01:00
Julius Volz a25751e0b3 Fix occurreneces of initial uppercase in error strings. 2015-10-11 22:37:43 +02:00
Julius Volz 777a8ddd90 Remove unneeded make in empty slice initialization. 2015-10-11 22:37:34 +02:00
Ilia Choly 9c0302571f Add supervisord collector 2015-10-06 11:50:54 -04:00
Tobias Schmidt 52f79e699d Fix uname collector for arm/ppc64/ppc64le architectures
The syscall.Utsname struct under arm/ppc64/ppc64le uses uint8 type
instead of int8.
2015-10-03 16:17:15 -04:00
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