Commit Graph

555 Commits

Author SHA1 Message Date
Tobias Schmidt
195b4d596c Merge pull request #480 from prometheus/grobie/gosimple
Simplify go code
2017-02-28 13:59:01 -04:00
Tobias Schmidt
694294baf5 Remove unnecessary conversions 2017-02-28 13:57:49 -04:00
Tobias Schmidt
21e13c7f52 Simplify code 2017-02-28 13:54:27 -04:00
Tobias Schmidt
c703435790 Fix all open go lint and vet issues 2017-02-28 13:05:38 -04:00
Ben Kochie
38cd07ebb9 Merge pull request #450 from roclark/add-infiniband
infiniband: Add new collector for InfiniBand statistics
2017-02-16 14:33:19 +01:00
Ben Kochie
a097dd36b3 Merge pull request #459 from joehandzik/wip-zpool-io-cherrypick
ZFS Collector: Add zpool IO statistics
2017-02-16 08:16:55 +01:00
Thorhallur Sverrisson
19813d3e02 Changing datastructure for BuddyInfo 2017-02-15 10:15:44 -06:00
Thorhallur Sverrisson
5ab285e098 Adding buddyinfo to end to end test. 2017-02-15 10:15:44 -06:00
Thorhallur Sverrisson
55417d7688 Moving buddyinfo logic to procfs 2017-02-15 10:15:44 -06:00
Thorhallur Sverrisson
492c96f6b6 Moving buddyinfo_test.go to procfs library 2017-02-15 10:15:43 -06:00
Thorhallur Sverrisson
3ba15c1ddb Adding support for /proc/buddyinfo for linux free memory fragmentation.
/prod/buddyinfo returns data on the free blocks fragments available
for use from the kernel.  This data is useful when diagnosing
possible memory fragmentation.

More info can be found in:
* https://lwn.net/Articles/7868/
* https://andorian.blogspot.com/2014/03/making-sense-of-procbuddyinfo.html
2017-02-15 10:15:43 -06:00
Joe Handzik
bb8b3fca88 ZFS Collector: Add zpool IO statistics
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-02-10 13:31:25 -06:00
Robert Clark
36f81282b7 Add unit tests for InfiniBand collector
Signed-Off-By: Robert Clark <robert.d.clark@hpe.com>
2017-02-07 11:09:08 -06:00
Robert Clark
4866adcb71 Add new collector for InfiniBand statistics
Add new metrics for the InfiniBand network protocol including the amount of packets sent and received, the number of times the link has been downed and how many times the link has recovered from an error state.

Signed-Off-By: Robert Clark <robert.d.clark@hpe.com>
2017-02-07 11:09:08 -06:00
Joe Handzik
8c23f5ff54 ZFS Collector: Convert dashes to underscores for metrics
This fixes #442, and prevents other ZFS metrics from slipping through in the future.

Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-31 14:11:56 -06:00
Ben Kochie
7cfa5e75b8 Merge pull request #439 from mdlayher/collector-staticcheck
Fix two staticcheck issues in IPVS collector tests
2017-01-31 08:53:10 -05:00
Ben Kochie
71362d45eb Merge pull request #432 from joehandzik/wip-zfs-zfetchstats
Update ZFS Collector with most non-zpool metrics
2017-01-31 08:52:41 -05:00
Joe Handzik
e5ee274a32 ZFS Collector: Move from camelcase to underscores for metric prefixes
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-29 15:59:01 -06:00
Matt Layher
c8e546926a
Fix two staticcheck issues in IPVS collector tests 2017-01-27 15:20:36 -05:00
Joe Handzik
e213ccbc57 ZFS Collector: Refactor to use maps/slices and fewer globals
Removed all global types that were unnecessary, and refactored to use constructor-created values and inline values instead of globals.

Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-27 14:02:28 -06:00
Ben Kochie
5a6db5c8d2 Handle multiple NFS device mounts
It's possible to mount an NFS share in multiple locations.
* Duplicates contain the same metric values, so they can be ignored.
* Update fixture.
2017-01-24 13:44:08 +01:00
Joe Handzik
94fb93a9f3 ZFS Collector: Add dmu_tx functionality
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-23 16:41:15 -06:00
Joe Handzik
07c7ae733a ZFS Collector: Add fm functionality
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-23 16:31:22 -06:00
Joe Handzik
05048c067d ZFS Collector: Add xuio_stats functionality
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-23 16:30:37 -06:00
Joe Handzik
3c9e779989 ZFS Collector: Add vdev_cache_stats functionality
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-23 16:29:50 -06:00
Joe Handzik
a02ca9502c ZFS Collector: Add zil functionality
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-23 16:29:00 -06:00
Joe Handzik
a3125ab4d9 ZFS Collector: Add zfetchstats functionality
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-23 16:28:11 -06:00
Ben Kochie
acb495ccab Merge pull request #425 from mdlayher/wifi-update
Update vendored wifi, handle stations with missing info
2017-01-20 08:43:44 -05:00
Matt Layher
dfd661a633
Allow graceful failure in hwmon collector 2017-01-17 11:24:28 -05:00
Matt Layher
ca3f07feef
Update vendored wifi, handle stations with missing info 2017-01-17 00:54:18 -05:00
Ben Kochie
92537020a3 Fix runit collector flag typo. 2017-01-16 23:41:33 +01:00
Julius Volz
276112c7ef Merge pull request #418 from mdlayher/wifi-graceful-fail
Make wifi collector fail gracefully if metrics not available
2017-01-13 20:31:21 -05:00
Matt Layher
d3089f2ce8
Make wifi collector fail gracefully if metrics not available 2017-01-13 13:35:20 -05:00
Matt Layher
1e1775e761
Make ZFS collector fail gracefully when not available 2017-01-12 12:54:16 -05:00
Johannes 'fish' Ziemke
2884181cce Merge pull request #415 from mdlayher/mountstats-nfs-additional
Add NFS event metrics to mountstats collector
2017-01-12 14:08:21 +01:00
Matt Layher
e3f99e13b9
Add NFS event metrics to mountstats collector 2017-01-11 11:41:13 -05:00
Matt Layher
efa25665ec
Add initial wifi collector, bump netlink to fix 32-bit builds 2017-01-11 10:08:44 -05:00
Johannes 'fish' Ziemke
55170e8feb Merge pull request #411 from discordianfish/hwmon-move-label-metrics
Use filename as label, move 'label' to own metric
2017-01-10 12:21:18 +01:00
Ben Kochie
38a4a36061 Update end-to-end test. 2017-01-10 10:23:16 +01:00
Ben Kochie
b4fa10ca9d Add collector for Linux EDAC
Collect "Error detection and correction" metrics from memory
controllers.
* Supported on Linux only.
* Add basic fixtures.
* Enabled by default.
2017-01-10 10:14:19 +01:00
Johannes 'fish' Ziemke
6aef20f8d8 Use filename as label, move 'label' to own metric
This closes #406
2017-01-09 18:33:31 +01:00
Joe Handzik
e7442d6517 end-to-end-test.sh: Add zfs plugin
Enables fixture test and updates e2e-output.txt.

Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-08 11:13:35 -06:00
Corey Stewart
10ba27bf2c Remove FreeBSD support for zfs plugin.
This also involves removing zfs_zpool code for now.

Signed-Off-By: Corey Stewart <stewa169@purdue.edu>
Signed-Off-By: Joe Handzik <joseph.t.handzik@hpe.com>
2017-01-08 11:13:35 -06:00
Corey Stewart
a8c94d48e6 Style changes and cleanup
This patch makes stylistic changes to error strings, unexports method names by lower casing them, removes unused dataSetMetric, and adds copyright/licence information.

Signed-Off-By: Corey Stewart <stewa169@purdue.edu>
2017-01-08 10:23:58 -06:00
Christian Schwarz
f29f3873ea Add a collector for ZFS, currently focussed on ARC stats.
It is tested on FreeBSD 10.2-RELEASE and Linux (ZFS on Linux 0.6.5.4).

On FreeBSD, Solaris, etc. ZFS metrics are exposed through sysctls.
ZFS on Linux exposes the same metrics through procfs `/proc/spl/...`.

In addition to sysctl metrics, 'computed metrics' are exposed by
the collector, which are based on several sysctl values.
There is some conditional logic involved in computing these metrics
which cannot be easily mapped to PromQL.

Not all 92 ARC sysctls are exposed right now but this can be changed
with one additional LOC each.
2017-01-08 10:23:58 -06:00
Johannes 'fish' Ziemke
2e47fcb8c5 Only store relevant e2e output
This makes commits ligher/more readable when updating the output.
2017-01-06 12:36:26 +01:00
Johannes 'fish' Ziemke
ad2eb4a788 Use Gauge for megacli counters
Without refactoring this to use const metrics, we need to make this a
gauge to we can keep using Set() which was deprecated for counters.
2017-01-06 12:33:21 +01:00
Johannes 'fish' Ziemke
01a9a37556 Stop using deprecated SetMetricFamilyInjectionHook 2017-01-06 12:21:12 +01:00
Johannes 'fish' Ziemke
3e266e28b9 Merge pull request #397 from dominikh/freebsd-cpu
Collect CPU temperatures on FreeBSD
2017-01-05 17:32:48 +01:00
Johannes 'fish' Ziemke
fc1113cd11 Merge pull request #396 from dominikh/bsd-memleak
Don't leak or race in FreeBSD devstat collector
2017-01-05 17:31:57 +01:00
Dominik Honnef
d827db8e17 Better error handling when collecting CPU temps
Log why we couldn't collect the temperature, and set metric to NaN if
the CPU should support temperature collection but had an error.
2017-01-05 15:19:56 +01:00
Johannes 'fish' Ziemke
91f4781234 Merge pull request #311 from kpettijohn/solaris-loadavg
Added loadavg collector for Solaris
2017-01-05 11:49:16 +01:00
Dominik Honnef
9847257bc0 Add missing license headers 2017-01-05 06:18:34 +01:00
Dominik Honnef
782eaee100 Collect CPU temperatures on FreeBSD 2017-01-05 06:17:16 +01:00
Dominik Honnef
38c5890428 Reuse devinfo struct
The devstat API expects us to reuse one devinfo for many invocations of
devstat_getstats. In particular, it allocates and resizes memory
referenced by devinfo.
2017-01-05 05:38:26 +01:00
Dominik Honnef
ea55d0f5cb Don't race in FreeBSD devstat collector
Querying the number of devices separately from the device list itself is
racy. Devices may be added or removed between the two calls; and removed
devices would lead to a segfault.
2017-01-05 05:38:26 +01:00
Dominik Honnef
5e220c1665 Move cgo portions of FreeBSD devstat collector into own file
Embedding 100 lines of code in a comment doesn't make for good reading,
editing or code quality.
2017-01-05 05:38:26 +01:00
Dominik Honnef
20ca0f1376 Eliminate memory leak in FreeBSD devstat collector
The memory allocated by calloc was never freed. Since the devinfo struct
never leaves the function, anyway, we might as well just allocate it on
the stack.
2017-01-05 05:38:26 +01:00
Dominik Honnef
732dd67729 Fix build of cpu_freebsd.go
Corrects an incorrect merge in 8e50b80
2017-01-05 03:16:51 +01:00
Kevin Pettijohn
d2fbeeb3c3 Added loadavg collector for solaris
It seems solaris prefers "sys/loadavg.h" over "stdlib.h" when
fetching the load average.

For Illumos based OSes it was required to include "sys/time.h" to
ensure that "hrtime_t" was defined.

https://www.illumos.org/issues/6002

It also required setting the ldflags "-fno-stack-protector -lssp" to
avoid undefined symbols when linking with gcc.

/opt/local/go/pkg/tool/solaris_amd64/link: running gcc failed: exit status 1
Undefined                       first referenced
 symbol                             in file
 __stack_chk_fail                    /tmp/go-link-138622936/000002.o
 __stack_chk_guard                   /tmp/go-link-138622936/000002.o
2017-01-04 17:45:40 -08:00
Johannes 'fish' Ziemke
f9d3f830cb Merge pull request #399 from discordianfish/fish-fs-uniq-metric
Make sure we only return one metric per mounted fs
2017-01-04 16:48:04 +01:00
Johannes 'fish' Ziemke
4c9131b7d8 Make sure we only return one metric per mounted fs 2017-01-04 16:45:25 +01:00
Johannes 'fish' Ziemke
6dd39b15c2 Do not build meminfo on freebsd 2017-01-04 16:02:49 +01:00
Johannes 'fish' Ziemke
a97ff2bcda Do not build meminfo on windows 2017-01-04 15:16:13 +01:00
Johannes 'fish' Ziemke
d17b1b44a6 Merge pull request #398 from prometheus/fish-netdev-check-scan-errror
Check for errors in netdev scanner
2017-01-03 16:00:08 +01:00
Johannes 'fish' Ziemke
9969f93e7d Merge pull request #387 from discordianfish/fish-fix-meminfo-darwin
Refactor meminfo and add darwin metrics
2017-01-03 14:50:52 +01:00
Johannes 'fish' Ziemke
6576571ac8 Check for errors in netdev scanner 2017-01-03 14:48:52 +01:00
Johannes 'fish' Ziemke
26c6182c84 Move comment and remove superfluous newline 2017-01-03 14:41:05 +01:00
Johannes 'fish' Ziemke
b68a9ec7af Merge pull request #359 from CloudAndHeat/feature/hwmon_chip_name_metric
hwmon: Provide annotation metric to link chip sysfs paths to human-readable chip types
2017-01-03 14:38:43 +01:00
Johannes 'fish' Ziemke
4e696d5d31 Merge pull request #391 from discordianfish/fish-add-cpu-darwin
Add cpu collector for darwin
2017-01-03 14:23:50 +01:00
Johannes 'fish' Ziemke
079fd701a0 Merge pull request #389 from prometheus/fish-use-const-metrics
Convert remaining collectors to use ConstMetrics
2017-01-03 14:22:58 +01:00
Johannes 'fish' Ziemke
d2ca252457 Merge pull request #393 from discordianfish/fish-add-netdev-darwin
Add netdev collector for darwin
2017-01-03 14:12:36 +01:00
Johannes 'fish' Ziemke
8e50b80d12 Convert remaining collectors to use ConstMetrics 2017-01-03 14:11:10 +01:00
Johannes 'fish' Ziemke
3db2f442ae Limit node-exporter scope, deprecated collectors 2017-01-03 14:03:23 +01:00
Johannes 'fish' Ziemke
c21c59dfeb Add meminfo stats for Darwin 2017-01-03 11:22:46 +01:00
Johannes 'fish' Ziemke
2983c4a31d Refactor meminfo collector similar to filesystem
Instead of doing the whole metric exposition in a platform specific collector
implementation, this creates and updates the metrics in meminfo.go and
expected a platform specific implementation of getMemInfo on
*meminfoCollector.
2017-01-03 11:20:36 +01:00
Johannes 'fish' Ziemke
3c47ef8e60 Add netdev collector for darwin
Same as for openbsd, this is just slightly adjusted from freebsd
variant.
2016-12-29 19:17:15 +01:00
Dominik Honnef
f0adcd163d Implement CPU collector on FreeBSD without cgo 2016-12-29 04:29:52 +01:00
Dominik Honnef
d2a43f7d05 Implement meminfo on BSD without cgo
This removes some error handling, which should be fine. If the calls
fail, we will get the zeroes, which is a safe enough fallback.
Additionally, if the first sysctl (page_size) succeeded it is unlikely
that other ones will fail.
2016-12-29 02:19:21 +01:00
Johannes 'fish' Ziemke
050d6f7f13 Add cpu collector for darwin 2016-12-28 18:38:52 +01:00
Dominik Honnef
0f6191987e Implement file systems on FreeBSD without cgo
The code may also work for other BSDs, but I don't have access to those
for testing.
2016-12-26 23:06:17 +01:00
Dominik Honnef
54c74923ee Implement loadavg on FreeBSD without cgo
The code may also work for other BSDs, but I don't have access to those
for testing.
2016-12-26 23:06:05 +01:00
Ben Kochie
10e525ff02 Merge pull request #375 from prometheus/fish-add-runit-servicedir-flag
Add runit service dir flag
2016-12-26 13:01:51 +01:00
Johannes 'fish' Ziemke
d506b2266c Merge pull request #374 from prometheus/fish-add-filesystem-errors
Add node_filesystem_device_errors_total metric
2016-12-26 11:51:14 +01:00
Bjørn Forsman
64e637cbcc Ignore autofs filesystems on linux
node_exporter currently triggers autofs to mount the underlying
filesystem on every scrape. This is undesirable. Better ignore autofs.

The underlying filesystem that autofs mounts will be monitored though,
when the (real) filesystem is mounted.
2016-12-25 15:13:45 +01:00
Johannes 'fish' Ziemke
71ea37987f Merge pull request #365 from EdSchouten/drbd
A collector for DRBD
2016-12-25 11:04:43 +01:00
Ed Schouten
b0d15eaac6 Reduce the severity of these messages.
They get printed all the time, as there are some tokens in the /proc
file that we simply don't support. It's better to keep these as
debugging messages, which may come in useful if new tags start to
appear.
2016-12-23 15:57:46 +01:00
Ed Schouten
4adf7fa96c Improve the help strings, as proposed in the code review. 2016-12-23 15:55:49 +01:00
Ed Schouten
b7daf27678 Process feedback from the code review.
- Use the right number of printf() arguments. Use %q where it makes sense.
- Use "DRBD" instead of "Drbd", per Go's style guide.
- Add _total suffixes to counter metrics.
- Mention the unit (bytes) in documentation strings once more.
2016-12-22 13:57:19 +01:00
Björn Rabenstein
08c9347e88 Merge pull request #367 from mdlayher/mountstats
Add mountstats collector for detailed NFS statistics
2016-12-20 17:20:41 +01:00
Matt Layher
25a93e38e7
Add mountstats collector for detailed NFS statistics 2016-12-20 11:13:02 -05:00
Johannes 'fish' Ziemke
9039a425d0 Add runit service dir flag 2016-12-19 13:10:38 +01:00
Johannes 'fish' Ziemke
deebf0aa49 Add node_filesystem_device_errors_total metric
This metric is the total number of errors occurred when getting stats
for the given device.
2016-12-19 11:48:32 +01:00
Ed Schouten
d1fa279105 Use a descriptive name for the file descriptor. 2016-12-16 11:45:14 +01:00
Ben Kochie
677ed28575 Merge pull request #361 from lucasbergman/mips-build-fix
mips64 build fix
2016-12-16 11:39:53 +01:00
Ed Schouten
6ff620e387 Properly propagate parse errors. 2016-12-16 11:36:36 +01:00
Ed Schouten
6269f7502a Add a collector for DRBD.
This collector exposes most of the useful information that can be found
in /proc/drbd. Sizes are normalised to be in bytes, as /proc/drbd uses
kibibytes.
2016-12-11 11:55:28 +01:00
Ed Schouten
a696830c38 Add a collector for NFS client statistics.
This change adds a new collector called "nfs" that parses the contents
of /proc/net/rpc/nfs and turns it into metrics. It can be used to
inspect the number of operations per type, but also to keep an eye on an
extraneous number of retransmissions, which may indicate connectivity
issues.

I've picked the name "nfs", as most operating systems use "nfs" for the
client component and "nfsd" as the server component. If we want to add
stats for the NFS server as well, we'd better call such a collector
"nfsd".
2016-12-09 19:58:08 +01:00
Jonas Wielicki
3efaa1a6a8 Update end-to-end tests 2016-12-01 10:00:50 +01:00
Jonas Wielicki
c481dd19da Re-introduce human-readable chip types
The chip label generation has been changed in #334 to prefer the
unique device path (e.g. the location on the PCI bus) due to #333.

Here, a new annotation metric ``node_hwmon_chip_names`` is
introduced which allows to link the unique chip sysfs path to a
human-readable chip name which may not be unique among chip sysfs
paths (for example, dual-slot systems have multiple
chipType="coretemp" sensors).

This allows to mitigate the downsides of the solution to #333
(namely that the device path may not be stable across kernels and
reboots) for cases where it does not matter that multiple devices
may have the same human-readable name (e.g. aggregation or where
at most one device with a common chip name is present).

For cases where no human-readable name can be derived, the
annotation metric is not emitted.
2016-12-01 09:59:52 +01:00
Lucas Bergman
4f479e55e0 linux/mips: Unbreak the build
Specifically, uname syscall support on Linux is controlled by a build
tag white list, and both mips64 platforms were missing from the list.
2016-11-30 13:13:49 -06:00
Ben Kochie
f8af350ae2 Merge pull request #346 from mcdan/people/mcdan/issues/219
Fix additional mdadm parsing cases
2016-11-17 21:13:38 +01:00
dan mcweeney
13aa37025f Feedback on PR, thanks @tcolgate for the review 2016-11-17 10:23:01 -05:00
Ben Kochie
4fd03c31e4 Merge pull request #323 from stuartnelson3/dfly-devstat
Dragonfly devstat
2016-11-17 13:33:50 +01:00
Ben Kochie
7a9aad01b4 Merge pull request #310 from stuartnelson3/dfly-cpu
export DragonFlyBSD CPU time
2016-11-17 13:33:11 +01:00
stuart nelson
e589a2b8af Remove gauges and convert to NewConstMetric format 2016-11-17 13:23:54 +01:00
stuart nelson
2b74cf7498 Export devstat for dragonfly 2016-11-17 13:23:54 +01:00
dan mcweeney
1f6b5aee39 #219 - add fixes for @samzhang111 super token 2016-11-16 14:49:57 -05:00
dan mcweeney
8d756cab50 Fixes end to end test 2016-11-16 14:47:03 -05:00
dan mcweeney
00c9a88a55 Fixes #219 - use the default to catch personalities that are unknown
Assumes all raid configurations start with raid and that anything
else is unknown.
2016-11-16 14:47:03 -05:00
Ed Schouten
9749c2c0b3 mdstat: Fix parsing of RAID0 lines that contain additional attributes.
We seem to have a small number of Linux servers here that have lines in
/proc/mdstat that cannot be parsed by the node exporter, due to them
containing attributes that are not matched by the regular expression
("super 1.2").

Extend the regular expression to skip this data, just like we do for all
of the other status lines.
2016-11-16 17:21:25 +01:00
Rene Treffer
abe8e297a6 Prefer device path based names over exported names (#334)
* Prefer device path based names over exported names

For some sensors (like coretemp) it is possible that multiple
instances exist, thus base the name on the device path and not on
the exported name.

* Update end-to-end test for dual socket machines

Explicitly have 2 coretemp instances with a symlink for the device
such that the hwmon collector must pick that name (or fail)
2016-10-28 20:25:44 +01:00
Ben Kochie
c6162312f2 Add Linux NUMA "numastat" metrics (#249)
* Add Linux NUMA "numastat" metrics
  Read the `numastat` metrics from /sys/devices/system/node/node* when reading NUMA meminfo metrics.
* Update end-to-end test output.
* Add `numastat` metrics as counters.
* Add tests for error conditions.
* Refactor meminfo numa metrics struct
* Refactor meminfoKey into a simple struct of metric data.
  This makes it easier to pass slices of metrics around.
* Refactor tests.
* Fixup: Add suggested fixes.
* Fixup:  More fixes
* Add another scanner.Err() return
* Add "_total" to counter metrics.
2016-10-12 13:07:49 +02:00
Rene Treffer
081ecc5db0 Add hwmon /sensors support (#278)
* Add hwmon support (mainly known from lm-sensors)

This commit adds initial support for linux hardware sensors, exported
through sysfs.

Details of the interface can be found at
https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface

* Add end-to-end test with some real life data

* Cleanup comments on hwmon collector

* Drop raw sensor name from hwmon output

* Let the sensor label be "sensor"

* Add hwmon short description to README.
2016-10-06 16:33:24 +01:00
stuart nelson
450fe0f3ba Add test 2016-09-28 09:10:05 +02:00
stuart nelson
cf3710191a Compile meminfo for dfly (#315)
* Compile meminfo for dfly

* Update README.me
2016-09-28 08:08:19 +01:00
stuart nelson
ef1925db7d Compile netdev on dragonfly (#314)
* Compile netdev on dragonfly

* Only run netdev bsd test on bsd

* Update README.md
2016-09-27 21:44:13 +01:00
stuart nelson
ee37a27d91 Export values as uint64_t 2016-09-20 23:27:56 +02:00
stuart nelson
e942d7e234 Maintain granularity in cpu data
Export cpu mode times as original uint64_t data,
and update frequency, and do the conversion to
float64 and subsequent division in go.
2016-09-20 09:10:53 +02:00
Ben Kochie
afac1f7433 Update mdstat fixture based on linux source.
Update `Contains` matching for `resync=`
2016-09-19 16:11:16 +02:00
stuart nelson
57f88ac4f6 Update comment 2016-09-19 09:48:53 +02:00
stuart nelson
78c84b1a47 Remove old freq finding code
This is the code that was lifted from the freebsd
implementation, but was not correct.
2016-09-19 09:48:34 +02:00
stuart nelson
45ac033d9e Use correct frequency for calculating cpu time
The correct frequency is the systimer frequency,
not the stathz.

From one of the DragonFly developers:

The bump upon each statclock is:
((cur_systimer - prev_systimer) * systimer_freq) >> 32

systimer_freq can be extracted from following
sysctl in userspace:
sysctl kern.cputimer.freq
2016-09-19 09:35:41 +02:00
stuart nelson
8cc06aab04 Remove unneeded ncpu variable 2016-09-18 17:36:39 +02:00
stuart nelson
9f7822ccdc Remember to bzero string
Duplication was caused by malloc returning a
region of memory that already had data in it.
2016-09-18 16:17:49 +02:00
stuart nelson
c02dcdeb35 Remove unused comment. 2016-09-18 14:21:54 +02:00
stuart nelson
3e4a154656 Correctly exporting values
Moved to exporting via a string, which is then
split and parsed.

The string is sometimes duplicated, however.
2016-09-18 14:16:26 +02:00
Ben Kochie
64b82596ef Fix mdadm collector for resync=PENDING.
Add fix for mdadm devices in state `resync=PENDING`.
* Update test and fixture.
2016-09-18 08:30:20 +02:00
stuart nelson
4b4385bd44 Remove free
Don't need it since we aren't malloc'ing
2016-09-17 19:14:31 +02:00
stuart nelson
cc5142a007 Remove some unnecessary includes 2016-09-17 19:13:05 +02:00
stuart nelson
a9d27ea722 Appears to be working? Still need to cleanup after self 2016-09-17 18:50:08 +02:00
stuart nelson
1d75b376ae checkpoint 2016-09-17 14:43:29 +02:00
stuart nelson
1b7a18c271 Creating slice from C-array
Might not be lined up correctly? Weird output data
in the second CPU.
2016-09-17 14:05:36 +02:00
stuart nelson
61f36ac1ab Activate filesystem collector on DragonFly (#302) 2016-09-11 12:08:00 -04:00
stuart nelson
03da1ea516 successfully exporting one of 2 cpus 2016-09-10 21:13:06 +02:00
stuart nelson
cda2f493ee wip 2016-09-10 19:22:34 +02:00
Takuya Nakaike
0f2a87ab22 add s390x support 2016-08-24 08:06:04 -04:00
Calle Pettersson
e890743f79 Add white/blacklisting of units for systemd collector 2016-08-20 13:08:03 +02:00
Julius Volz
428746c48e Merge pull request #285 from prometheus/meminfo-bsd-constmetrics
Convert BSD meminfo collector to use ConstMetrics
2016-08-14 20:14:13 +02:00
Julius Volz
f0796683fe Convert BSD meminfo collector to use ConstMetrics
This suffers from the same concurrency bug as the netstat one:
https://github.com/prometheus/node_exporter/issues/280
2016-08-13 00:40:29 +02:00
Julius Volz
c0b46391e2 Merge pull request #283 from prometheus/meminfo-constmetrics
Convert meminfo collector to use ConstMetrics
2016-08-12 19:02:30 +02:00
Brian Brazil
25289c5024 Merge pull request #284 from prometheus/sockstat-constmetrics
Convert sockstat collector to use ConstMetrics
2016-08-12 00:42:23 +01:00
Julius Volz
cef3d98256 Convert sockstat collector to use ConstMetrics
This suffers from the same concurrency bug as the netstat one:
https://github.com/prometheus/node_exporter/issues/280
2016-08-12 01:36:42 +02:00
Julius Volz
eac396c637 Convert meminfo collector to use ConstMetrics
This suffers from the same concurrency bug as the netstat one:
https://github.com/prometheus/node_exporter/issues/280
2016-08-12 01:30:15 +02:00
Julius Volz
f91bca427b Convert filefd collector to use ConstMetrics
This suffers from the same concurrency bug as the netstat one:
https://github.com/prometheus/node_exporter/issues/280
2016-08-12 01:26:25 +02:00
Julius Volz
9128952454 Fix end-to-end tests after netstat conversion 2016-08-12 01:09:20 +02:00
Julius Volz
8c5c880705 Convert netstat collector to use ConstMetrics
Fixes https://github.com/prometheus/node_exporter/issues/280
2016-08-12 00:34:00 +02:00
Thomas Frössman
32e3445d72 Fix mdstat tabs parsing 2016-08-06 14:08:11 +02:00
Daniel
c3eba340e3 Update e2e-output.txt 2016-07-09 15:36:52 +02:00
Daniel
87b3df90e6 Update diskstats 2016-07-09 15:23:31 +02:00
Daniel
a7a8d088da Ignore partitions on NVME devices by default
The convention of the linux driver is nvme($device)n($namespace)p($partition). On *bsd it seems to be different, using "ns" instead of "n" as the namespace separator.
2016-07-09 13:23:01 +02:00
Brian Brazil
f660b32f08 Merge pull request #267 from mgit-at/sockstat-rhe4
sockstat: add support for RHE4
2016-07-07 21:30:23 +01:00
Johannes 'fish' Ziemke
7e5aaa9e33 Use meminfo_freebsd on darwin as well 2016-07-06 12:12:16 +02:00
Johannes 'fish' Ziemke
4b04d04558 Enable *bsd collector on darwin 2016-07-06 10:24:20 +02:00
Michael Gebetsroither
4b820427dd sockstat: add support for RHE4 2016-07-05 23:24:54 +02:00
slene
dea279267a Close file handler in textfile 2016-06-30 00:06:51 +08:00
Karsten Weiss
69ba0e916b filefd_linux.go: Fix a typo. 2016-06-20 18:08:26 +02:00
Matthias Rampke
344fe2c4c5 Merge pull request #253 from prometheus/superq/md_raid0
Add support for raid0 devices in mdadm_linux collector.
2016-06-14 12:14:51 +02:00
Ben Kochie
8c809cd29a Add additional test for mdadm_linux collector 2016-06-11 08:54:39 +02:00
Ben Kochie
a09bbaacd1 Add support for raid0 devices in mdadm_linux collector. 2016-06-11 08:54:39 +02:00
Julius Volz
ffd96078e0 Merge pull request #241 from mrwacky42/ignore-fs-types
Add flag to ignore certain filesystem types (Copy of #217)
2016-06-06 17:31:29 -04:00
Sharif Nassar
f0630d5cbb Do not export the filesystem type pattern 2016-06-06 11:10:50 -07:00
Anton Tolchanov
fc3a7b7a97 Add NTP stratum to NTP collector 2016-06-03 13:25:30 +03:00
Chris Batey
387c64424b Use the offset calculation that includes round trip time in the ntp collector
Previously the raw time difference was used which includes the network trip time
between the node and the ntp server. This makes setting alerts off the value
troublesome as it depends on the latency as well as the clock offset.
2016-06-01 08:56:20 +01:00
Sharif Nassar
bf88b6ee0f Fix typos, and initialisms from comments in #217 2016-05-13 13:40:14 -07:00
Dominik Schulz
3fe5e7f8fa Add ignored fs types 2016-05-13 13:40:14 -07:00
Tobias Schmidt
3d81f25fdd Merge pull request #224 from giganteous/test-freebsd-netdev
Add a unit test for the conversion
2016-05-05 01:12:52 -04:00
Tobias Schmidt
6683a89f9e Merge pull request #226 from giganteous/fix-386-on-freebsd
Fix compilation on freebsd/386
2016-05-05 01:08:14 -04:00
Steve Durrheimer
60cbc9efc0
Make version informations consistent between prometheus components
This also fixes #231 by adding the '-version' flag
2016-05-04 08:43:33 +02:00
Julius Volz
c3b16c7b2e Remove lastlogin collector.
See also https://github.com/prometheus/node_exporter/issues/229
2016-04-24 18:30:15 +02:00
Kai Storbeck
53d0a7815b Add a unit test for the conversion 2016-04-21 23:45:34 +02:00
Matthias Schiffer
91ddafdb33 Add 'logind' exporter
logind provides a nice interface to find out about the numbers of sessions
on a system; it is used on most Linux distributions, even those which
aren't using systemd.

The exporter exposes the total number of sessions indexed by the following
attributes:

* seat
* type ("tty", "x11", ...)
* class ("user", "greeter", ...)
* remote ("true"/"false")
2016-04-20 17:28:12 +02:00
Kai Storbeck
dcfbf40dbf change caps of the constant 2016-04-20 00:22:47 +02:00
Kai Storbeck
365e688cec gofmt, a typo, and an unintended change crept in 2016-04-20 00:19:16 +02:00
Kai Storbeck
aac89c524e This should fix it. 2016-04-20 00:08:26 +02:00
Kai Storbeck
1122ce49c7 fix the uint conversion to strings 2016-04-16 14:39:55 +02:00
Christoph Hack
5d35401a41 systemd-collector: support private/direct connections without dbus 2016-03-29 16:19:47 +02:00
Christian Svensson
fff0298c68 Fix NTP server command line reference
--ntpServer is actually -collector.ntp.server
2016-02-20 22:04:49 +01:00
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