collectd.git
9 years agoMerge pull request #396 from radford/perl-debug-compile-fix
Pierre-Yves Ritschard [Sat, 29 Nov 2014 07:08:16 +0000 (08:08 +0100)]
Merge pull request #396 from radford/perl-debug-compile-fix

perl plugin: #undef macros before poisoning them.

9 years agoMerge pull request #824 from collectd/feature/update-innodb-stats
Pierre-Yves Ritschard [Fri, 28 Nov 2014 08:24:34 +0000 (09:24 +0100)]
Merge pull request #824 from collectd/feature/update-innodb-stats

Fetch innodb stats from the information_schema when appropriate.

9 years agoerroneous comparison, caught by clang
Pierre-Yves Ritschard [Thu, 27 Nov 2014 09:08:43 +0000 (10:08 +0100)]
erroneous comparison, caught by clang

9 years agoFetch innodb stats from the information_schema when appropriate.
Pierre-Yves Ritschard [Wed, 26 Nov 2014 13:28:51 +0000 (14:28 +0100)]
Fetch innodb stats from the information_schema when appropriate.

This supercedes #556, using the same query but assigning types.
I'd love some help deciding which types to use.

9 years agoMerge pull request #813 from njh/openldap_symbol_fix
Marc Fournier [Wed, 26 Nov 2014 13:07:02 +0000 (14:07 +0100)]
Merge pull request #813 from njh/openldap_symbol_fix

Fix for "conflicting types for 'ldap_init'"

9 years agowrite_redis: pass a literal string to snprintf()
Marc Fournier [Mon, 24 Nov 2014 14:00:45 +0000 (15:00 +0100)]
write_redis: pass a literal string to snprintf()

This corrects the following compiler warning when building with
"-Werror=format-security" (the default when building debian packages):

write_redis.c:91:3: error: format not a string literal and no format
arguments

9 years agoavoid clashing with existing names on MacOSX. fixes #812
Pierre-Yves Ritschard [Mon, 24 Nov 2014 13:55:58 +0000 (14:55 +0100)]
avoid clashing with existing names on MacOSX. fixes #812

9 years agoMerge branch 'collectd-5.4'
Marc Fournier [Mon, 24 Nov 2014 08:44:45 +0000 (09:44 +0100)]
Merge branch 'collectd-5.4'

Conflicts:
src/Makefile.am
src/cpu.c
src/swap.c
src/write_redis.c

NB: dropped change to src/swap.c made in 1a146775d4, as suggested in the
commit message.

9 years agoMerge branch 'collectd-5.3' into collectd-5.4
Marc Fournier [Mon, 24 Nov 2014 08:23:18 +0000 (09:23 +0100)]
Merge branch 'collectd-5.3' into collectd-5.4

Conflicts:
src/write_graphite.c

9 years agoMerge branch 'collectd-4.10' into collectd-5.3
Marc Fournier [Mon, 24 Nov 2014 08:18:44 +0000 (09:18 +0100)]
Merge branch 'collectd-4.10' into collectd-5.3

9 years agomention configure script generation (idea from @hugoduncan).
Pierre-Yves Ritschard [Sun, 23 Nov 2014 12:27:58 +0000 (13:27 +0100)]
mention configure script generation (idea from @hugoduncan).

fixes #818

9 years agoMerge pull request #816 from collectd/feature/redis-llen
Pierre-Yves Ritschard [Fri, 21 Nov 2014 17:08:51 +0000 (18:08 +0100)]
Merge pull request #816 from collectd/feature/redis-llen

add support for custom commands in redis plugin

9 years agoMerge pull request #728 from mbethke/test-and-clean
Pierre-Yves Ritschard [Fri, 21 Nov 2014 09:32:55 +0000 (10:32 +0100)]
Merge pull request #728 from mbethke/test-and-clean

Test and clean

9 years agoadd doc bits for new postgresql option
Pierre-Yves Ritschard [Thu, 20 Nov 2014 22:17:41 +0000 (23:17 +0100)]
add doc bits for new postgresql option

9 years agoMerge pull request #593 from sodor/master
Pierre-Yves Ritschard [Thu, 20 Nov 2014 22:07:03 +0000 (23:07 +0100)]
Merge pull request #593 from sodor/master

Add postgresql writer option to skip older values.

9 years agoMerge pull request #571 from jktjkt/sensors-support-power
Pierre-Yves Ritschard [Thu, 20 Nov 2014 21:52:08 +0000 (22:52 +0100)]
Merge pull request #571 from jktjkt/sensors-support-power

Add support for monitoring lm_sensors' "power" sensors

9 years agoMerge pull request #699 from marekbecka/innodb_stats
Pierre-Yves Ritschard [Thu, 20 Nov 2014 15:38:57 +0000 (16:38 +0100)]
Merge pull request #699 from marekbecka/innodb_stats

add more innodb metrics

9 years agoMerge pull request #550 from marekbecka/nfs4
Pierre-Yves Ritschard [Thu, 20 Nov 2014 15:30:27 +0000 (16:30 +0100)]
Merge pull request #550 from marekbecka/nfs4

Add support for nfs4 on linux

9 years agoAdd documentation bits.
Pierre-Yves Ritschard [Thu, 20 Nov 2014 12:29:44 +0000 (13:29 +0100)]
Add documentation bits.

9 years agoProvide sensible default for configuration values
Pierre-Yves Ritschard [Thu, 20 Nov 2014 12:24:35 +0000 (13:24 +0100)]
Provide sensible default for configuration values

This reorders arguments a bit:

- The query is expected to be the block argument
- The type instance is inferred from the query if unsupplied
- The type will default to gauge if not supplied

9 years agouse consistent naming for arguments
Pierre-Yves Ritschard [Thu, 20 Nov 2014 12:15:22 +0000 (13:15 +0100)]
use consistent naming for arguments

9 years agorename command to query
Pierre-Yves Ritschard [Thu, 20 Nov 2014 12:13:18 +0000 (13:13 +0100)]
rename command to query

9 years agoadd support for custom commands in redis plugin
Pierre-Yves Ritschard [Thu, 20 Nov 2014 10:30:33 +0000 (11:30 +0100)]
add support for custom commands in redis plugin

Now that the redis plugin has moved to hiredis, it could
be worthwhile to add support for custom commands.

This diff implements a mechanism for executing commands which
allows for setting the type and type-instance. It doesn not
support hash or array returns, but if this is deemed necessary
could be added later on.

The canonical use case for this is for people using redis
has a queue (for instance, using solutions such as rq,
sidekiq and similar solutions) who want a simple way to
ensure the work queue size is not growing. To address this
you would use:

```
<Plugin redis>
  <Node local>
    <Command "queue_length">
      Exec "LLEN myqueue"
      Instance "myqueue"
    </Command>
  </Node>
</Plugin>
```

This would then produce a redis-local/queue_length-myqueue value.

If the idea has traction I'll add the doc bits.

9 years agoSupport the switch from credis to hiredis
Michael Spiegle [Fri, 13 Dec 2013 17:04:33 +0000 (09:04 -0800)]
Support the switch from credis to hiredis

Conflicts:
contrib/redhat/collectd.spec

9 years agoMerge pull request #759 from mschenck/add-linux-io-time
Marc Fournier [Thu, 20 Nov 2014 07:58:38 +0000 (08:58 +0100)]
Merge pull request #759 from mschenck/add-linux-io-time

Add linux I/O time

9 years agoMerge pull request #783 from mfournier/varnish4
Marc Fournier [Thu, 20 Nov 2014 07:53:58 +0000 (08:53 +0100)]
Merge pull request #783 from mfournier/varnish4

Add support for varnish 4.x

9 years agoMerge pull request #799 from mfournier/hiredis-switch
Marc Fournier [Thu, 20 Nov 2014 07:50:24 +0000 (08:50 +0100)]
Merge pull request #799 from mfournier/hiredis-switch

Switch redis & write_redis plugins from credis to hiredis

9 years agoRevert "Let snmp_synch_response deal with PDU freeing"
Marc Fournier [Wed, 19 Nov 2014 16:59:30 +0000 (17:59 +0100)]
Revert "Let snmp_synch_response deal with PDU freeing"

This reverts commit 9d6f72e5054cfbb183585991fefcf119259d71c4.

The proper fix to this issue is in the collectd-4.10 branch. See also
79e90bba.

9 years agoRevert "Let snmp_synch_response deal with PDU freeing"
Marc Fournier [Wed, 19 Nov 2014 16:49:30 +0000 (17:49 +0100)]
Revert "Let snmp_synch_response deal with PDU freeing"

This reverts commit e767dc103a142e1c57800f06a9c384f21a48aef5.

The proper fix to this issue is in the collectd-4.10 branch. See also
79e90bba.

9 years agosnmp: avoid freeing req under normal operation
Marc Fournier [Wed, 19 Nov 2014 16:54:09 +0000 (17:54 +0100)]
snmp: avoid freeing req under normal operation

Equivalent patch to 79e90bba5, to avoid issue #804 introduced while
fixing #610.

9 years agoAvoid reintroducing #610, updates the fix to #804
Pierre-Yves Ritschard [Wed, 19 Nov 2014 16:30:17 +0000 (17:30 +0100)]
Avoid reintroducing #610, updates the fix to #804

We might as well mess with avoid freeing the req pointer
only when failures occur, otherwise perform as before

9 years agoMerge pull request #814 from mfournier/upstart-systemd-examples
Pierre-Yves Ritschard [Wed, 19 Nov 2014 16:02:11 +0000 (17:02 +0100)]
Merge pull request #814 from mfournier/upstart-systemd-examples

upstart and systemd doc & examples

9 years agoMerge pull request #802 from ccin2p3/faxm0dem/cpu-ticks-percentage
Pierre-Yves Ritschard [Wed, 19 Nov 2014 16:01:53 +0000 (17:01 +0100)]
Merge pull request #802 from ccin2p3/faxm0dem/cpu-ticks-percentage

allow for 'ReportByCpu false' and 'ValuesPercentage false'

9 years agoLet snmp_synch_response deal with PDU freeing
Pierre-Yves Ritschard [Wed, 19 Nov 2014 15:00:54 +0000 (16:00 +0100)]
Let snmp_synch_response deal with PDU freeing

When reading from tables, upon errors the PDUs sent are already
freed by snmp_synch_response since they are right after
snmp_send is called.

This commit syncs collectd's approach with other occurences of
snmp_synch_response calls.

There might be a few corner cases where we leak PDUs, but it
is unclear how to check for those since we would need to
have an indication that snmp_send was never called, which
as far as I can tell is not possible.

The potential for failure in snmp_send is rather low and will
be easily spotted though, since when crafting invalid PDUs
snmp send will constantly fail and since valid configurations
can never leak memory.

This fixes #804

9 years agoLet snmp_synch_response deal with PDU freeing
Pierre-Yves Ritschard [Wed, 19 Nov 2014 15:00:54 +0000 (16:00 +0100)]
Let snmp_synch_response deal with PDU freeing

When reading from tables, upon errors the PDUs sent are already
freed by snmp_synch_response since they are right after
snmp_send is called.

This commit syncs collectd's approach with other occurences of
snmp_synch_response calls.

There might be a few corner cases where we leak PDUs, but it
is unclear how to check for those since we would need to
have an indication that snmp_send was never called, which
as far as I can tell is not possible.

The potential for failure in snmp_send is rather low and will
be easily spotted though, since when crafting invalid PDUs
snmp send will constantly fail and since valid configurations
can never leak memory.

This fixes #804

9 years agoLet snmp_synch_response deal with PDU freeing
Pierre-Yves Ritschard [Wed, 19 Nov 2014 15:00:54 +0000 (16:00 +0100)]
Let snmp_synch_response deal with PDU freeing

When reading from tables, upon errors the PDUs sent are already
freed by snmp_synch_response since they are right after
snmp_send is called.

This commit syncs collectd's approach with other occurences of
snmp_synch_response calls.

There might be a few corner cases where we leak PDUs, but it
is unclear how to check for those since we would need to
have an indication that snmp_send was never called, which
as far as I can tell is not possible.

The potential for failure in snmp_send is rather low and will
be easily spotted though, since when crafting invalid PDUs
snmp send will constantly fail and since valid configurations
can never leak memory.

This fixes #804

9 years agocollectd(1): mention upstart & systemd support
Marc Fournier [Wed, 19 Nov 2014 11:09:03 +0000 (12:09 +0100)]
collectd(1): mention upstart & systemd support

9 years agoamend comments in upstart config file + disable "console log"
Marc Fournier [Wed, 19 Nov 2014 10:14:18 +0000 (11:14 +0100)]
amend comments in upstart config file + disable "console log"

Hopefully avoid some confusion for RHEL6 users which have an old upstart
version.

9 years agoadd example systemd service file
Marc Fournier [Wed, 19 Nov 2014 10:12:55 +0000 (11:12 +0100)]
add example systemd service file

Making use of systemd socket notification feature added in ff270e6d5.

9 years agoFix for "conflicting types for 'ldap_init'"
Nicholas Humfrey [Wed, 19 Nov 2014 09:23:34 +0000 (09:23 +0000)]
Fix for "conflicting types for 'ldap_init'"
Prefixed all the collectd specific functions and datatypes with the letter 'c'

9 years agoMerge pull request #811 from mfournier/systemd-upstart-build-issue
Marc Fournier [Tue, 18 Nov 2014 09:34:55 +0000 (10:34 +0100)]
Merge pull request #811 from mfournier/systemd-upstart-build-issue

prevent going through systemd/upstart code, except on Linux

9 years agoMerge pull request #810 from njh/mac_battery_read_return
Marc Fournier [Tue, 18 Nov 2014 09:17:23 +0000 (10:17 +0100)]
Merge pull request #810 from njh/mac_battery_read_return

Added return (0) to the Mac/IOKit variant of battery_read()

9 years agoprevent going through systemd/upstart code, except on Linux
Marc Fournier [Tue, 18 Nov 2014 08:21:42 +0000 (09:21 +0100)]
prevent going through systemd/upstart code, except on Linux

Fixes #809 (build issue on MacOSX)

NB: in case one day upstart is used on non-Linux platforms, this could
be relaxed to only skip systemd.

9 years agoAdded return(0) to the Mac/IOKit variant of battery_read()
Nicholas Humfrey [Mon, 17 Nov 2014 23:16:05 +0000 (23:16 +0000)]
Added return(0) to the Mac/IOKit variant of battery_read()

9 years agoMerge pull request #806 from vincentbernat/fix/libstatgrab2
Pierre-Yves Ritschard [Mon, 17 Nov 2014 12:57:40 +0000 (13:57 +0100)]
Merge pull request #806 from vincentbernat/fix/libstatgrab2

libstatgrab: only use one configure test for 0.90 API change

9 years agoMerge pull request #808 from landryb/openbsd_build_fixes_2
Pierre-Yves Ritschard [Mon, 17 Nov 2014 12:54:35 +0000 (13:54 +0100)]
Merge pull request #808 from landryb/openbsd_build_fixes_2

Openbsd build fixes 2

9 years agoDetect sys/vmmeter.h and include it if available.
Landry Breuil [Mon, 17 Nov 2014 10:39:11 +0000 (11:39 +0100)]
Detect sys/vmmeter.h and include it if available.

Needed on OpenBSD for struct vmtotal definition.

9 years agoFix wrong #ifdef introduced in df46cd01
Landry Breuil [Mon, 17 Nov 2014 10:38:40 +0000 (11:38 +0100)]
Fix wrong #ifdef introduced in df46cd01

9 years agolibstatgrab: only use one configure test for 0.90 API change
Vincent Bernat [Mon, 17 Nov 2014 09:35:16 +0000 (10:35 +0100)]
libstatgrab: only use one configure test for 0.90 API change

Previously, each API change was tested in configure.ac. Some of the
tests are relying on signature checks and would need to have -Werror
flag enabled to make them work. This is quite fragile.

Instead, we assume that if `sg_init()` requires an argument, we must use
the 0.90 API.

Fixes: #795

9 years agoRPM specfile: add support for smart & openldap plugins
Marc Fournier [Mon, 17 Nov 2014 09:14:57 +0000 (10:14 +0100)]
RPM specfile: add support for smart & openldap plugins

9 years agoadd credits for new plugins
Marc Fournier [Mon, 17 Nov 2014 08:47:33 +0000 (09:47 +0100)]
add credits for new plugins

9 years agosmart: mention support lib in README
Marc Fournier [Mon, 17 Nov 2014 08:47:04 +0000 (09:47 +0100)]
smart: mention support lib in README

9 years agoadapt contrib script
Pierre-Yves Ritschard [Sat, 15 Nov 2014 09:47:05 +0000 (10:47 +0100)]
adapt contrib script

9 years agoMerge pull request #796 from mfournier/write_redis-colon-mistake
Pierre-Yves Ritschard [Sat, 15 Nov 2014 14:45:00 +0000 (15:45 +0100)]
Merge pull request #796 from mfournier/write_redis-colon-mistake

write_redis: re-add colon dropped in b7984797 + manpage

9 years agoMerge pull request #719 from mfournier/openldap-improvements-rebased
Pierre-Yves Ritschard [Sat, 15 Nov 2014 09:52:47 +0000 (10:52 +0100)]
Merge pull request #719 from mfournier/openldap-improvements-rebased

Openldap plugin

9 years agoMerge pull request #795 from vincentbernat/fix/libstatgrab
Pierre-Yves Ritschard [Sat, 15 Nov 2014 09:51:49 +0000 (10:51 +0100)]
Merge pull request #795 from vincentbernat/fix/libstatgrab

libstatgrab: fix sg_init() invocation for libstatgrab >= 0.9

9 years agoMerge pull request #797 from vincentbernat/feature/libatasmart
Pierre-Yves Ritschard [Sat, 15 Nov 2014 09:49:32 +0000 (10:49 +0100)]
Merge pull request #797 from vincentbernat/feature/libatasmart

smart: add a SMART plugin

9 years agoMerge pull request #800 from pyr/feature/riemann-batch
Pierre-Yves Ritschard [Sat, 15 Nov 2014 09:49:17 +0000 (10:49 +0100)]
Merge pull request #800 from pyr/feature/riemann-batch

Add a batching mechanism for riemann TCP writes

9 years agoMerge pull request #798 from pyr/feature/upstart-job
Pierre-Yves Ritschard [Sat, 15 Nov 2014 09:47:49 +0000 (10:47 +0100)]
Merge pull request #798 from pyr/feature/upstart-job

Support both systemd and upstart.

9 years agowrite_redis: avoid passing a float/double to redisCommand()
Marc Fournier [Fri, 14 Nov 2014 21:04:16 +0000 (22:04 +0100)]
write_redis: avoid passing a float/double to redisCommand()

... as it seems to not be well supported by hiredis 0.10.1 on Debian
7.0, leading to a segfault. Storing the string representation in a
variable instead is the compromise I found to make the plugin work on
this system.

9 years agolibstatgrab: fix sg_get_disk_io_stats() invocation for libstatgrab >= 0.9
Vincent Bernat [Thu, 13 Nov 2014 16:57:46 +0000 (17:57 +0100)]
libstatgrab: fix sg_get_disk_io_stats() invocation for libstatgrab >= 0.9

In those versions, `sg_get_disk_io_stats()` need to be invoked a pointer
to size_t instead of pointer to int. Such a requirement is detected at
configure-time.

Fixes: #445

9 years agoopenldap: add mention in README
Marc Fournier [Wed, 12 Nov 2014 17:05:33 +0000 (18:05 +0100)]
openldap: add mention in README

9 years agoopenldap: relicence to MIT
Marc Fournier [Wed, 12 Nov 2014 16:55:26 +0000 (17:55 +0100)]
openldap: relicence to MIT

... with Kimo's agreement. Also add myself to copyright holders.

9 years agosmart: when threshold is valid, also test for "less or equal"
Vincent Bernat [Wed, 12 Nov 2014 14:39:42 +0000 (15:39 +0100)]
smart: when threshold is valid, also test for "less or equal"

When the threshold is 0, a value of 0 should hit the threshold.

9 years agoLink aggregation.so to libm.so
Bjørn Nordbø [Wed, 12 Nov 2014 11:27:43 +0000 (12:27 +0100)]
Link aggregation.so to libm.so

Conflicts:
src/Makefile.am

9 years agolibstatgrab: fix sg_get_user_stats() invocation for libstatgrab >= 0.9
Vincent Bernat [Wed, 12 Nov 2014 12:19:05 +0000 (13:19 +0100)]
libstatgrab: fix sg_get_user_stats() invocation for libstatgrab >= 0.9

In those versions, `sg_get_user_stats()` need to be invoked with an
additional argument. The need for such an argument is detected at
configure-time.

Fixes: #445

9 years agolibstatgrab: fix sg_init() invocation for libstatgrab >= 0.9
Vincent Bernat [Fri, 7 Nov 2014 22:46:45 +0000 (23:46 +0100)]
libstatgrab: fix sg_init() invocation for libstatgrab >= 0.9

In those versions, `sg_init()` need to be invoked with an additional
argument. The need for such an argument is detected at configure-time.

Fixes: #445

9 years agoMerge pull request #803 from bnordbo/aggregation-libm
Pierre-Yves Ritschard [Wed, 12 Nov 2014 11:35:00 +0000 (12:35 +0100)]
Merge pull request #803 from bnordbo/aggregation-libm

Link aggregation.so to libm.so

9 years agoLink aggregation.so to libm.so
Bjørn Nordbø [Wed, 12 Nov 2014 11:27:43 +0000 (12:27 +0100)]
Link aggregation.so to libm.so

9 years agoindentation
Fabien Wernli [Wed, 12 Nov 2014 11:06:09 +0000 (12:06 +0100)]
indentation

Change-Id: I0201ac6e3c6e3c9bfcf55b74df6f13b9d961a90e

9 years agoallow for 'ReportByCpu false' and 'ValuesPercentage false'
Fabien Wernli [Wed, 12 Nov 2014 10:21:43 +0000 (11:21 +0100)]
allow for 'ReportByCpu false' and 'ValuesPercentage false'
this will allow for aggregating total cpu values while keeping derives
(ticks)

Change-Id: Ic22a1b52a5897c18398fa25095a0f3ebcc403ee1

9 years agoMerge pull request #765 from tokkee/sh/write-err
Pierre-Yves Ritschard [Tue, 11 Nov 2014 18:39:58 +0000 (19:39 +0100)]
Merge pull request #765 from tokkee/sh/write-err

Use the complain mechanism to report write failures.

9 years agoAdd a batching mechanism for riemann TCP writes
Pierre-Yves Ritschard [Tue, 11 Nov 2014 15:09:48 +0000 (16:09 +0100)]
Add a batching mechanism for riemann TCP writes

This does not batch notifications.

9 years agonetwork: don't enable gcrypt thread callbacks when gcrypt recent enough
Vincent Bernat [Fri, 7 Nov 2014 14:20:22 +0000 (15:20 +0100)]
network: don't enable gcrypt thread callbacks when gcrypt recent enough

From `gcrypt.h`:

> NOTE: Since Libgcrypt 1.6 the thread callbacks are not anymore used.
> However we keep it to allow for some source code compatibility if used
> in the standard way.

Otherwise, we get a deprecation warning which is turned into an error:

```
  CC       libcollectdclient_la-network_buffer.lo
../../../src/libcollectdclient/network_buffer.c:58:15: error: 'gcry_thread_cbs' is deprecated (declared at /usr/include/gcrypt.h:213) [-Werror=deprecated-declarations]
 GCRY_THREAD_OPTION_PTHREAD_IMPL;
```

Fixes: #632

9 years agoMerge pull request #793 from vincentbernat/fix/gcrypt-deprecated
Pierre-Yves Ritschard [Tue, 11 Nov 2014 11:13:30 +0000 (12:13 +0100)]
Merge pull request #793 from vincentbernat/fix/gcrypt-deprecated

network: don't enable gcrypt thread callbacks when gcrypt recent enough

9 years agoadd write_redis to manpage
Marc Fournier [Tue, 11 Nov 2014 10:39:40 +0000 (11:39 +0100)]
add write_redis to manpage

9 years agoMerge pull request #792 from vincentbernat/fix/out-of-tree-build
Pierre-Yves Ritschard [Tue, 11 Nov 2014 10:27:35 +0000 (11:27 +0100)]
Merge pull request #792 from vincentbernat/fix/out-of-tree-build

build: fix out-of-tree build

9 years agoSupport both systemd and upstart.
Pierre-Yves Ritschard [Fri, 7 Nov 2014 12:56:21 +0000 (13:56 +0100)]
Support both systemd and upstart.

This checks appropriate environment variables. When supervised
by either upstart or systemd, collectd will not daemonize but
will signal readyness with the appropriate method.

This allows collectd to be either configured with `expect stop`
in upstart or `Type=notify` with systemd.

The rationale for this is detailed here: http://spootnik.org/entries/2014/11/09_pid-tracking-in-modern-init-systems.html

9 years agosmart: add notifications when a value is below the threshold
Vincent Bernat [Mon, 10 Nov 2014 10:36:58 +0000 (11:36 +0100)]
smart: add notifications when a value is below the threshold

9 years agosmart: add a SMART plugin
Vincent Bernat [Fri, 7 Nov 2014 14:13:27 +0000 (15:13 +0100)]
smart: add a SMART plugin

This plugin uses libatasmart:
 http://0pointer.de/blog/projects/being-smart.html

As libatasmart is Linux-only, the plugin is therefore Linux-only
too. The disks are discovered through libudev.

Each SMART attribute is extracted. The current value, worst value,
threshold value (if any) are recorded. Those are normalized
values (between 0 and 255, higher is better). For some values, it makes
more sense to record the raw value. libatasmart is converting this raw
value to something sensible. We record that form. Sometimes, this is
just the raw value but sometimes this is converted to another scale (for
example, the temperature). People should know what each attribute means
before using those values. Otherwise, the normalized values are better.

Four values are (power-on time, power cycle count, bad sectors and
temperature) are also recorded on their own. Those are usually the
values that the user care about the most.

Here is an excerpt of the plugin output with the CSV plugin (the SSD
disk on my laptop doesn't provide a temperature sensor):

    .
    └── zoro.exoscale.ch
        └── smart-sda
            ├── smart_attribute-attribute-173-2014-11-10
            ├── smart_attribute-attribute-174-2014-11-10
            ├── smart_attribute-available-reserved-space-2014-11-10
            ├── smart_attribute-end-to-end-error-2014-11-10
            ├── smart_attribute-erase-fail-count-2014-11-10
            ├── smart_attribute-power-cycle-count-2014-11-10
            ├── smart_attribute-power-on-hours-2014-11-10
            ├── smart_attribute-power-on-seconds-2-2014-11-10
            ├── smart_attribute-program-fail-count-2014-11-10
            ├── smart_attribute-reallocated-sector-count-2014-11-10
            ├── smart_attribute-reported-uncorrect-2014-11-10
            ├── smart_attribute-total-lbas-read-2014-11-10
            ├── smart_attribute-total-lbas-written-2014-11-10
            ├── smart_attribute-udma-crc-error-count-2014-11-10
            ├── smart_attribute-unused-reserved-blocks-2014-11-10
            ├── smart_attribute-used-reserved-blocks-chip-2014-11-10
            ├── smart_badsectors-2014-11-10
            ├── smart_powercycles-2014-11-10
            └── smart_poweron-2014-11-10

    $ cat zoro.exoscale.ch/smart-sda/smart_attribute-total-lbas-read-2014-11-10
    epoch,current,worst,threshold,pretty
    1415613266.376,100.000000,100.000000,0.000000,281018.000000
    1415613276.395,100.000000,100.000000,0.000000,281018.000000
    1415613286.384,100.000000,100.000000,0.000000,281051.000000
    1415613296.383,100.000000,100.000000,0.000000,281051.000000

9 years agowrite_redis: fix format of commands sent to redis
Marc Fournier [Mon, 10 Nov 2014 06:58:13 +0000 (07:58 +0100)]
write_redis: fix format of commands sent to redis

The commands getting submitted to redis now look like this:
"ZADD" "collectd/hostname/entropy/entropy" "1415602051.335973024" "1415602051.335973024:823"
"SADD" "collectd/values" "hostname/entropy/entropy"

... which is the same as in the initial implementation, except for the
added decimals in the timestamp (the plugin was developped before
high-precision timestamps support was added to collectd).

9 years agoredis: add missing constant
Marc Fournier [Mon, 10 Nov 2014 06:57:48 +0000 (07:57 +0100)]
redis: add missing constant

9 years agowrite_redis: re-add colon dropped in b7984797
Marc Fournier [Sat, 8 Nov 2014 23:16:11 +0000 (00:16 +0100)]
write_redis: re-add colon dropped in b7984797

When running f3706b0b87, the following command gets sent to redis:
  "ZADD" "collectd/hostname/entropy/entropy" "1415487432.000000" "1415487432:932"
Meaning the value actually stored, and later returned by redis is:
"<timstamp>:<value>".

b7984797 accidentally dropped the comma separating the timestamp and the
value, which leads the plugin to store a somewhat confusing value in
redis:
  "ZADD" "collectd/hostname/entropy/entropy" "1415487432.000000" "1415487432932"

9 years agowrite_redis: re-add colon dropped in b7984797
Marc Fournier [Sat, 8 Nov 2014 23:16:11 +0000 (00:16 +0100)]
write_redis: re-add colon dropped in b7984797

When running f3706b0b87, the following command gets sent to redis:
  "ZADD" "collectd/hostname/entropy/entropy" "1415487432.000000" "1415487432:932"
Meaning the value actually stored, and later returned by redis is:
"<timstamp>:<value>".

b7984797 accidentally dropped the comma separating the timestamp and the
value, which leads the plugin to store a somewhat confusing value in
redis:
  "ZADD" "collectd/hostname/entropy/entropy" "1415487432.000000" "1415487432932"

9 years agoFix memory leak in redis.c
Michael Spiegle [Fri, 10 Jan 2014 00:48:47 +0000 (00:48 +0000)]
Fix memory leak in redis.c

9 years agoAdd memory_lua data type
Guillem Anguera [Thu, 28 Nov 2013 09:49:18 +0000 (10:49 +0100)]
Add memory_lua data type

9 years agoSet the right order to parse the redis info.
Guillem Anguera [Wed, 27 Nov 2013 14:26:58 +0000 (15:26 +0100)]
Set the right order to parse the redis info.

9 years agoremove all credis left. Migrate write_redis too.
Victor Seva [Thu, 14 Nov 2013 10:59:32 +0000 (11:59 +0100)]
remove all credis left. Migrate write_redis too.

Conflicts:
README

9 years agoRevert types for redis.c plugin.
Andrés J. Díaz [Thu, 14 Nov 2013 13:57:17 +0000 (14:57 +0100)]
Revert types for redis.c plugin.

9 years agouse timeval. keep timeout in milliseconds for backwards compatibility.
Victor Seva [Thu, 14 Nov 2013 12:37:08 +0000 (13:37 +0100)]
use timeval. keep timeout in milliseconds for backwards compatibility.

9 years agoSwitch redis.c plugin from credis to hiredis.
Andrés J. Díaz [Thu, 7 Nov 2013 08:57:53 +0000 (09:57 +0100)]
Switch redis.c plugin from credis to hiredis.

Change the entire redis.c plugin to use libhiredis (tested with
libhiredis0.10) instead on credis. The libhiredis is supported in a number
of distributions like Debian or Ubuntu.

This patch keeps the same functionality that the old redis.c does.

Conflicts:
src/redis.c
src/types.db

9 years agoredhat initscript: add timeout when stopping the daemon
Marc Fournier [Fri, 7 Nov 2014 16:37:40 +0000 (17:37 +0100)]
redhat initscript: add timeout when stopping the daemon

This mitigates the risk of having 2 daemons running simultaneously
during a short period, on restart.

The debian package's initscript does the same thing, using the same
timeout value.

9 years agoignore new dirs
Pierre-Yves Ritschard [Fri, 7 Nov 2014 16:37:09 +0000 (17:37 +0100)]
ignore new dirs

9 years agoDefine _DEFAULT_SOURCE in addition to _BSD_SOURCE
Pierre-Yves Ritschard [Fri, 7 Nov 2014 16:34:32 +0000 (17:34 +0100)]
Define _DEFAULT_SOURCE in addition to _BSD_SOURCE

This enables forward compatibility with the ongoing
deprecation of _BSD_SOURCE.

9 years agoMerge pull request #794 from vincentbernat/fix/kafka-warning
Pierre-Yves Ritschard [Fri, 7 Nov 2014 15:27:08 +0000 (16:27 +0100)]
Merge pull request #794 from vincentbernat/fix/kafka-warning

kafka: fix compilation for older versions of librdkafka

9 years agokafka: fix compilation for older versions of librdkafka
Vincent Bernat [Fri, 7 Nov 2014 14:51:58 +0000 (15:51 +0100)]
kafka: fix compilation for older versions of librdkafka

Since commit f505691270f2317291c372fd5f004a4ffbce9f9a, kafka module was
broken. Enable definition of `kafka_log()` when using kafka logger
callback as well.

9 years agonetwork: don't enable gcrypt thread callbacks when gcrypt recent enough
Vincent Bernat [Fri, 7 Nov 2014 14:20:22 +0000 (15:20 +0100)]
network: don't enable gcrypt thread callbacks when gcrypt recent enough

From `gcrypt.h`:

> NOTE: Since Libgcrypt 1.6 the thread callbacks are not anymore used.
> However we keep it to allow for some source code compatibility if used
> in the standard way.

Otherwise, we get a deprecation warning which is turned into an error:

```
  CC       libcollectdclient_la-network_buffer.lo
../../../src/libcollectdclient/network_buffer.c:58:15: error: 'gcry_thread_cbs' is deprecated (declared at /usr/include/gcrypt.h:213) [-Werror=deprecated-declarations]
 GCRY_THREAD_OPTION_PTHREAD_IMPL;
```

Fixes: #632

9 years agobuild: fix out-of-tree build
Vincent Bernat [Fri, 7 Nov 2014 14:40:37 +0000 (15:40 +0100)]
build: fix out-of-tree build

When building collectd out of tree, `srcdir` and `builddir` are
different. We ask to search path in `$(top_srcdir)/src` since this is
needed to find `liboconfig/config.h`. Also fix search path for
libcollectdclient where only one header is in `builddir` while the
remaining are in `srcdir`.

9 years agoMerge pull request #791 from mfournier/fix-lvm-merge-conflict-mistake
Marc Fournier [Thu, 6 Nov 2014 20:08:37 +0000 (21:08 +0100)]
Merge pull request #791 from mfournier/fix-lvm-merge-conflict-mistake

lvm: remove duplicate call to lvm_submit()

9 years agolvm: remove duplicate call to lvm_submit()
Marc Fournier [Wed, 5 Nov 2014 15:18:03 +0000 (16:18 +0100)]
lvm: remove duplicate call to lvm_submit()

This got added by accident when solving the merge conflict in 103f05e0.

It led to the plugin triggering the classical "uc_update: Value too old"
error message.