Commit Graph

227 Commits

Author SHA1 Message Date
Christian Schwarz
1fc84e2fb6 Re-implement CPU metrics collection through sysctls.
This removes the requirement to run `node_exporter` as root or with read
access to `/dev/kmem` in order to get CPU usage statistics.

Once FreeBSD adds a macro for the `kern.cp_times` sysctl, the
`setupSysctlMIBs()` function should be replaced by usage of the macro.
2016-02-17 15:39:21 +01:00
Christian Schwarz
2ca6280b82 Fix compile error on FreeBSD
When compiling `20ecedd0b4c983bd7b88f97cd7a21461988a6c12` with GNU make (`gmake`) on FreeBSD 10.2-RELEASE, I get the following error:

```
collector/filesystem_bsd.go:60: non-bool mnt[i].f_flags & MNT_RDONLY (type C.uint64_t) used as if condition
Makefile.COMMON:85: recipe for target 'node_exporter' failed
gmake: *** [node_exporter] Error 2
```

This problem is fixed by this patch.
2016-02-17 15:39:21 +01:00
Carlos Amedee
8578a3281a fix a small typo in an error message. 2016-02-09 23:22:29 -05:00
Pavel Borzenkov
5a085dcaf5 meminfo_numa: fix crash on CentOS 6 kernel
It turns out, on some kernels (notably - CentOS6) there is an empty line
inserted at the beginning of /sys/devices/system/node/node*/meminfo
files.  The leads to node_exporter crash on such kernels.

Fix this by checking for empty string first.

Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
2016-02-06 16:11:49 +03:00
Tobias Schmidt
e2163db0f7 Document os support of each collector 2016-01-21 19:36:58 -05:00
Tobias Schmidt
041de0e30c Fix go format style in filesystem collector 2016-01-21 16:20:32 -05:00
Tobias Schmidt
d1f0f2247d Merge pull request #165 from pborzenkov/ksmd-collector
Add new collector exposing 'ksmd' stats
2016-01-21 08:48:47 -05:00
Tobias Schmidt
4d07881b5b Merge pull request #162 from wrouesnel/read_only_flag
Add filesystem read-only metric.
2016-01-21 08:43:54 -05:00
Pavel Borzenkov
0e78ed63a6 Add new collector exposing 'ksmd' stats
Add new collector which exposes the content of /sys/kernel/mm/ksm
directory. This directory contains control and statistics files for
Kernel Samepage Merging daemon.

The collector is not enabled by default.

Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
2016-01-21 13:43:22 +03:00
Tobias Schmidt
c47c011063 Fix go format style in mdadm collector 2016-01-21 00:44:07 -05:00
Tobias Schmidt
f6f4fda1aa Merge pull request #168 from pborzenkov/per-numa-meminfo
Add new per NUMA node memory statistics collector
2016-01-20 23:43:24 -05:00
afefelov
00e1db52bb Fix mdstat for devices in delayed resync state
In some raid configurations resync will be delayed for devices allocated
on the same physiclal units.

Fixes #170.
2016-01-20 23:35:39 -05:00
Juergen Hoetzel
4c909d4793 Disable compilation of vmstat on !Linux target OS 2016-01-19 17:43:02 +01:00
Juergen Hoetzel
e3437dc583 Fix build on 32-bit architectures 2016-01-19 17:21:47 +01:00
Pavel Borzenkov
21d473ffd4 Fix compilation without conntrack collector
Entry collector uses readUintFromFile() function which is defined by
conntrack collector. Thus, it is impossible to build node_exporter w/o
conntrack collector. Fix this by factoring out the function into
helper.go file.

Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
2016-01-15 15:16:12 +03:00
Pavel Borzenkov
c12d8ea927 Add new per NUMA node memory statistics collector
It is sometimes useful to understand the distribution of free/occupied
memory between NUMA nodes to deal with performance problems. To do so,
add new meminfo_numa collector that enables exporting of per node
statistics along with unit and end-to-end tests for it.

Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
2016-01-15 15:04:27 +03:00
Björn Rabenstein
fae388dcab Merge pull request #191 from erkki/fix_filefd
fix block nesting bug
2016-01-14 15:15:08 +01:00
Richard Hartmann
e8fdc4d160 collector/entropy_linux.go: Use canonical name for available entropy 2016-01-14 08:26:04 +01:00
Richard Hartmann
aee580d8d8 Introduce entropy collector for Linux 2016-01-13 18:29:52 +01:00
Erkki Eilonen
ff7106615e fix block nesting bug causing filefd values to never be updated post initial call 2016-01-13 21:09:01 +07:00
Florian Koch
5d5346af8a Add vmstat collector, enabled per default 2016-01-11 07:58:30 +01:00
Caskey L. Dickson
ab9ee574fb Build cleanly under windows.
Removes unused signal handlers left over from signal based collection
and block the non windows-relevant collectors loadavg and interrupts.

Signal based collection removed in 1c17481a42.
2016-01-07 17:59:16 -08:00
Juergen Hoetzel
e02d99ebff Fix compilation on FreeBSD. Refs #139
There is no interrupts_freebsd.go implementation yet.
2016-01-07 19:25:30 +01:00
Daniel Bechler
fc3931c924 Add build_info metric similar to the one of Prometheus itself 2016-01-06 23:54:33 +01:00
Peter Fern
09e610ad37 Calculate Linux disk bytes read/written based on sector size (512B)
Logical sector size appears to be fixed at 512B for the foreseeable
future in the kernel, so for now we just hard-code it.
2015-12-27 22:00:02 +11:00
Brian Brazil
a82b4c30cb Add linux conntrack collector. 2015-12-20 00:57:52 +00:00
Julius Volz
613f531280 Merge pull request #174 from audebert/systemd
collector: add systemd services status
2015-12-19 16:19:19 +01:00
Rémi Audebert
8628d60125 collector: systemd: collect whether the system is operational 2015-12-19 13:54:20 +01:00
Rémi Audebert
87ccaa39c9 collector: add systemd 2015-12-19 13:54:20 +01:00
Brian Brazil
2f0d697f8c Do a make format run. 2015-12-18 14:08:52 +00:00
Brian Brazil
7739fb4e12 Switch linux stat to using ConstMetric 2015-12-18 12:28:51 +00:00
Brian Brazil
6e20d89467 Merge pull request #169 from pborzenkov/ntp-fix-missing-arg
Add missing argument to fmt.Errorf function in 'ntp' collector
2015-11-13 15:13:02 +00:00
Pavel Borzenkov
d773360d12 Add missing argument to fmt.Errorf function in 'ntp' collector
Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
2015-11-13 18:09:11 +03:00
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