Replaced 'interval_g' with 'plugin_interval' where and when necessary.
core: Changed internal API to allow for per-plugin intervals.
This is the basic support for configuring custom intervals on a per-plugin
basis. The following API changes have been introduced:
- Each plugin's 'module_register()' function is now required to accept and
respect an argument passing the custom interval (if configured). This is
done by passing a pointer to a struct 'plugin_loaddata_t' which (currently)
contains a single cdtime_t member storing the custom interval (0 if none
has been configured).
- A new plugin-global variable, 'plugin_interval', has been introduced. It is
defined in 'plugin.h', and, thus, defined and available in all plugins.
- A new macro, 'PLUGIN_INIT_INTERVAL', has been introduced to initialize
'plugin_interval' in 'module_register'. It requires the passed loaddata
object as argument. In order for this mechanism to work, this macro has to
be used in all plugins.
- The macro 'VALUE_LIST_INIT' now requires the default interval as an
argument. In most cases 'plugin_interval' should be used.
- 'plugin_register_read' now requires a third argument specifying the
interval. Usually, 'plugin_interval' should be passed.
- The <LoadPlugin> block now accepts an option 'Interval' to configure the
custom interval.
This is the basic support for configuring custom intervals on a per-plugin
basis. The following API changes have been introduced:
- Each plugin's 'module_register()' function is now required to accept and
respect an argument passing the custom interval (if configured). This is
done by passing a pointer to a struct 'plugin_loaddata_t' which (currently)
contains a single cdtime_t member storing the custom interval (0 if none
has been configured).
- A new plugin-global variable, 'plugin_interval', has been introduced. It is
defined in 'plugin.h', and, thus, defined and available in all plugins.
- A new macro, 'PLUGIN_INIT_INTERVAL', has been introduced to initialize
'plugin_interval' in 'module_register'. It requires the passed loaddata
object as argument. In order for this mechanism to work, this macro has to
be used in all plugins.
- The macro 'VALUE_LIST_INIT' now requires the default interval as an
argument. In most cases 'plugin_interval' should be used.
- 'plugin_register_read' now requires a third argument specifying the
interval. Usually, 'plugin_interval' should be passed.
- The <LoadPlugin> block now accepts an option 'Interval' to configure the
custom interval.
AMQP plugin: My kingdom for a few semicolons
Change-Id: I08621fd2381e064f1006728162c22cfd12c48cc6
Change-Id: I08621fd2381e064f1006728162c22cfd12c48cc6
Merge branch 'collectd-5.0'
Merge branch 'collectd-4.10' into collectd-5.0
Conflicts:
src/irq.c
Change-Id: Ie6c78234f07cc5b7bac7e6914813e9545ce1b1af
Conflicts:
src/irq.c
Change-Id: Ie6c78234f07cc5b7bac7e6914813e9545ce1b1af
irq plugin: Implement collection of non-numeric interrupts.
Hi all!
I've created a patch that enables collectd to collect all irqs present in
/proc/interrupts, with numeric and string names (NMI, LOC, RES, etc).
Two notices:
a) Unfortunately I was unable to build collectd from git repo (build.sh
failures), therefore I created this patch for latest stable release: 4.10.1
b) I am fairly unexperienced in C programming, so please inform me gently of my
mistakes:) But I am already using a patched version and it works fine.
Any feedback on code quality or recommendations are welcome.
Change-Id: Ia17bd953921051dfe53e838b76672adbef9e73c3
Signed-off-by: Florian Forster <octo@collectd.org>
Hi all!
I've created a patch that enables collectd to collect all irqs present in
/proc/interrupts, with numeric and string names (NMI, LOC, RES, etc).
Two notices:
a) Unfortunately I was unable to build collectd from git repo (build.sh
failures), therefore I created this patch for latest stable release: 4.10.1
b) I am fairly unexperienced in C programming, so please inform me gently of my
mistakes:) But I am already using a patched version and it works fine.
Any feedback on code quality or recommendations are welcome.
Change-Id: Ia17bd953921051dfe53e838b76672adbef9e73c3
Signed-off-by: Florian Forster <octo@collectd.org>
processes plugin: Fixed handling of ProcessMatch regexes containing spaces.
Previously, something like 'ProcessMatch name "My Regex"' would have been
interpreted as three values. This was caused by using the old, non-complex
config interface which joins all config values using a space and passing the
resulting string to the plugin. The processes plugin used to use strsplit() to
re-gain a list of all values, obviously ignoring any quoting that might exist.
This has been fixed by using the complex config interface, which passes all
values as an array of strings and thus honoring the quoting handled by
liboconfig.
Previously, something like 'ProcessMatch name "My Regex"' would have been
interpreted as three values. This was caused by using the old, non-complex
config interface which joins all config values using a space and passing the
resulting string to the plugin. The processes plugin used to use strsplit() to
re-gain a list of all values, obviously ignoring any quoting that might exist.
This has been fixed by using the complex config interface, which passes all
values as an array of strings and thus honoring the quoting handled by
liboconfig.
Merge "exec plugin: Fixed incorrect typecast of 64-bit timestamp to unsigned int (collectd-5.0)" into collectd-5.0
exec plugin: Fixed incorrect typecast of 64-bit timestamp to unsigned int (collectd-5.0)
Change-Id: Ia99285c8158828760e74083ed6ea54112fa8a156
Signed-off-by: Alexander Kovalenko <alexanderk23@gmail.com>
Signed-off-by: Florian Forster <octo@collectd.org>
Change-Id: Ia99285c8158828760e74083ed6ea54112fa8a156
Signed-off-by: Alexander Kovalenko <alexanderk23@gmail.com>
Signed-off-by: Florian Forster <octo@collectd.org>
Varnish plugin: Fix gauge vs. derive issues.
Some of the values are submitted using the wrong submit function.
Change-Id: Icf82844e54605d46cce8e41d2678aa4bca1cb2c1
Some of the values are submitted using the wrong submit function.
Change-Id: Icf82844e54605d46cce8e41d2678aa4bca1cb2c1
Merge "fix xff excessive rounding" into collectd-4.10
.gitignore: Added collectdctl.
Correct a missing yajl1/2 check
Change-Id: Ie3e0380721d88e54cb5630e1c3ecb613790b32b3
Change-Id: Ie3e0380721d88e54cb5630e1c3ecb613790b32b3
tcpconns plugin: add support for AIX
Hi.
In AIX there is a undocumented function/syscall in libc: netinfo
returns a structure with the state of the tcp connections.
I didn't found the description or info abut this syscall, I guess is
something like this:
int netinfo (int proto, void *data, int *size, int n);
and the struct something like this: (with some work we can guess the
unknow remaining bytes)
struct netinfo_header {
unsigned int proto;
unsigned int size;
struct netinfo_entry e[];
};
struct netinfo_entry {
uint32_t unknow1;
uint32_t unknow2;
uint16_t dstport;
uint16_t unknow3;
struct in6_addr dstaddr;
uint16_t srcport;
uint16_t unknow4;
struct in6_addr srcaddr;
uint32_t unknow01[4];
uint32_t unknow02[2];
uint16_t so_options;
uint16_t unknow02a;
uint16_t so_q0len;
uint16_t so_qlen;
uint16_t so_qlimit;
uint16_t so_dqlen;
uint32_t unknow03[4];
struct {
uint32_t sb_hiwat;
uint32_t unknow01;
uint32_t unknow02;
uint32_t unknow03;
uint32_t sb_mbmax;
uint32_t unknow04;
uint32_t sb_lowat;
uint16_t sb_flags;
uint16_t unknow05;
} rcvbuf;
uint32_t unknow07;
uint32_t unknow08[2];
uint32_t unknow09;
struct {
uint32_t sb_hiwat;
uint32_t unknow01;
uint32_t unknow02;
uint32_t unknow03;
uint32_t sb_mbmax;
uint32_t unknow04;
uint32_t sb_lowat;
uint16_t sb_flags;
uint16_t unknow05;
} sndbuf;
uint32_t unknow11;
uint32_t so_uid;
uint16_t so_special;
uint16_t so_special2;
uint16_t tcp_state;
uint16_t unknow12;
uint32_t tcp_flags;
uint32_t tcp_mss;
uint32_t unknow15;
};
Signed-off-by: Florian Forster <octo@collectd.org>
Hi.
In AIX there is a undocumented function/syscall in libc: netinfo
returns a structure with the state of the tcp connections.
I didn't found the description or info abut this syscall, I guess is
something like this:
int netinfo (int proto, void *data, int *size, int n);
and the struct something like this: (with some work we can guess the
unknow remaining bytes)
struct netinfo_header {
unsigned int proto;
unsigned int size;
struct netinfo_entry e[];
};
struct netinfo_entry {
uint32_t unknow1;
uint32_t unknow2;
uint16_t dstport;
uint16_t unknow3;
struct in6_addr dstaddr;
uint16_t srcport;
uint16_t unknow4;
struct in6_addr srcaddr;
uint32_t unknow01[4];
uint32_t unknow02[2];
uint16_t so_options;
uint16_t unknow02a;
uint16_t so_q0len;
uint16_t so_qlen;
uint16_t so_qlimit;
uint16_t so_dqlen;
uint32_t unknow03[4];
struct {
uint32_t sb_hiwat;
uint32_t unknow01;
uint32_t unknow02;
uint32_t unknow03;
uint32_t sb_mbmax;
uint32_t unknow04;
uint32_t sb_lowat;
uint16_t sb_flags;
uint16_t unknow05;
} rcvbuf;
uint32_t unknow07;
uint32_t unknow08[2];
uint32_t unknow09;
struct {
uint32_t sb_hiwat;
uint32_t unknow01;
uint32_t unknow02;
uint32_t unknow03;
uint32_t sb_mbmax;
uint32_t unknow04;
uint32_t sb_lowat;
uint16_t sb_flags;
uint16_t unknow05;
} sndbuf;
uint32_t unknow11;
uint32_t so_uid;
uint16_t so_special;
uint16_t so_special2;
uint16_t tcp_state;
uint16_t unknow12;
uint32_t tcp_flags;
uint32_t tcp_mss;
uint32_t unknow15;
};
Signed-off-by: Florian Forster <octo@collectd.org>
src/plugin.c: add info to 'Invalid value list' error message
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
collectd_unixsock.py: Fix infinite wait.
raise a KeyError if getval() or getthreshold() unixsock returns replies an
error because of request of an unknown identifier
Signed-off-by: Florian Forster <octo@collectd.org>
raise a KeyError if getval() or getthreshold() unixsock returns replies an
error because of request of an unknown identifier
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'collectd-5.0'
Conflicts:
configure.in
src/owniptc/libiptc.c
Change-Id: I0ab8fc1accd476f5d1a243b1a155eac4b751cd8c
Conflicts:
configure.in
src/owniptc/libiptc.c
Change-Id: I0ab8fc1accd476f5d1a243b1a155eac4b751cd8c
rrdtool plugin: Fix warning about unused variable "stepsize".
Change-Id: Ibd4dd3f17db62b10b96c59f37b66941ddc5ea7b0
Change-Id: Ibd4dd3f17db62b10b96c59f37b66941ddc5ea7b0
Merge branch 'collectd-4.10' into collectd-5.0
Conflicts:
src/curl_json.c
src/libvirt.c
Change-Id: I0852495b416435fa3cfd36068d967e0cd5ff689f
Conflicts:
src/curl_json.c
src/libvirt.c
Change-Id: I0852495b416435fa3cfd36068d967e0cd5ff689f
configure: Link with ip4tc and ip6tc, too.
This solves this problem:
octo@leeloo:/tmp $ gcc -o conftest -g -O2 conftest.c -liptc -ldl
/usr/bin/ld: /tmp/ccuJEDqP.o: undefined reference to symbol 'iptc_init'
/usr/bin/ld: note: 'iptc_init' is defined in DSO /lib64/libip4tc.so.0 so try adding it to the linker command line
/lib64/libip4tc.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
Why the iptables plugin compiles without this is beyond me.
Change-Id: If615bee0c9524d907ca1834d5c337ed50c625c5b
This solves this problem:
octo@leeloo:/tmp $ gcc -o conftest -g -O2 conftest.c -liptc -ldl
/usr/bin/ld: /tmp/ccuJEDqP.o: undefined reference to symbol 'iptc_init'
/usr/bin/ld: note: 'iptc_init' is defined in DSO /lib64/libip4tc.so.0 so try adding it to the linker command line
/lib64/libip4tc.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
Why the iptables plugin compiles without this is beyond me.
Change-Id: If615bee0c9524d907ca1834d5c337ed50c625c5b
fix xff excessive rounding
Hi,
When generating arguments for rrd_create, the previous
format string "%.1f", was rounding up the value too aggressively.
ex: for xff==0.9999 the result would be -> 1.0 (invalid value for xff!)
The new format string is "%.10f", which lead up to 10 digits after the
dot, enough to be close to the double type limit, and so handling
correctly the previous example.
Change-Id: I7c6cc55b0d43beb5ef351bb04b67f4628249c737
Hi,
When generating arguments for rrd_create, the previous
format string "%.1f", was rounding up the value too aggressively.
ex: for xff==0.9999 the result would be -> 1.0 (invalid value for xff!)
The new format string is "%.10f", which lead up to 10 digits after the
dot, enough to be close to the double type limit, and so handling
correctly the previous example.
Change-Id: I7c6cc55b0d43beb5ef351bb04b67f4628249c737
configure.in: Add AC_CONFIG_AUX_DIR for libltdl.
mysql plugin: Remove sideeffect-free function call.
notify_email plugin: Remove useless function and fix indentation.
Many build fixes that turned up with GCC 4.6.
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
src/csv.c: use a bigger buffer
The CSV plugin formerly used a relatively small output buffer. If you
had a large dataset, you would always get error -1 because the line
length was be too long. This patch extends the buffer.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
The CSV plugin formerly used a relatively small output buffer. If you
had a large dataset, you would always get error -1 because the line
length was be too long. This patch extends the buffer.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/utils_format_json.c: Correctly format the time of value lists.
Users should get epoch, not our internal format.
Users should get epoch, not our internal format.
curl_json plugin: Add compatibility code for libyajl v2.
Thanks to "spupykin" of the Arch Linux project on whose patch this commit is
loosely based.
Thanks to "spupykin" of the Arch Linux project on whose patch this commit is
loosely based.
AMQP plugin: Fix printing of interval_g.
rrdcached plugin: Handle boolean config options as well.
This was lost previously when changing to the complex config callback.
This was lost previously when changing to the complex config callback.
rrdcached plugin: Register write/flush only if DaemonAddress has been given.
Else, the write callback would remove itself on the first call. This
operation, however, is not thread-safe as access to the write list is not
synchronized. Thus, removing the callback at that point leads to random
segfaults.
Else, the write callback would remove itself on the first call. This
operation, however, is not thread-safe as access to the write list is not
synchronized. Thus, removing the callback at that point leads to random
segfaults.
rrdcached plugin: Handle configuration using a "complex config" callback.
This allows to handle all of the configuration in one go and execute some
action once after doing so.
This allows to handle all of the configuration in one go and execute some
action once after doing so.
threshold: Don't register missing/write callbacks unless we have thresholds.
The checking is fairly expensive, so don't do that unless really necessary.
The checking is fairly expensive, so don't do that unless really necessary.
avl tree: Report size of the tree and make that available in _get_size().
threshold plugin: Dont check for interesting values if there are no thresholds.
amqp plugin: Fixed format strings when printing 'interval_g'.
configure: Removed last traces of 'owniptc'.
E.g., autoconf still tried to generated src/owniptc/Makefile in AC_OUTPUT(),
which obviously fails if owniptc is no longer there.
E.g., autoconf still tried to generated src/owniptc/Makefile in AC_OUTPUT(),
which obviously fails if owniptc is no longer there.
Various plugins: Set the cURL option "CURLOPT_NOSIGNAL".
This fixes problems with version 7.21.2 (and later) of libcurl that are due to
collectd being a multi-threaded program.
Signed-off-by: Florian Forster <octo@collectd.org>
This fixes problems with version 7.21.2 (and later) of libcurl that are due to
collectd being a multi-threaded program.
Signed-off-by: Florian Forster <octo@collectd.org>
collectd-nagios: Sort LISTVAL output.
Also, output the data for each host in a separate "section", printing the
hostname as the heading and leaving it out from any further output.
This way, the strings may directly be used as options for -H and -n.
Also, output the data for each host in a separate "section", printing the
hostname as the heading and leaving it out from any further output.
This way, the strings may directly be used as options for -H and -n.
libcollectdclient: Added `lcc_sort_identifiers()'.
This function may be used to sort an array of lcc_identifier_t objects.
This function may be used to sort an array of lcc_identifier_t objects.
collectd-nagios: Select a single host in LISTVAL output when -H has been used.
collectd-nagios: Let '-n LIST' list all available datasets.
src/meta_data.c: Free a leaking mutex.
This problem primarily manifested on FreeBSD but may well effect other
systems as well.
Thanks to Tomas Krasnican for reporting this problem.
Signed-off-by: Florian Forster <octo@collectd.org>
This problem primarily manifested on FreeBSD but may well effect other
systems as well.
Thanks to Tomas Krasnican for reporting this problem.
Signed-off-by: Florian Forster <octo@collectd.org>
df plugin: Improve error message.
contrib/migrate-4-5.px: "df" does not have COUNTER DSTs.
contrib/migrate-4-5.px: Remove useless "OutDir" option.
iptables plugin: Remove the shipped version of libiptc.
Since libiptc is now publicly available as a shared library, we don't really
have any need to ship it with collectd anymore.
Since libiptc is now publicly available as a shared library, we don't really
have any need to ship it with collectd anymore.
notify_desktop plugin: Add compatibility code for libnotify 0.7.
The current code in src/notify_desktop.c is not compatible with the new
libnotify 0.7 API
This:
notification = notify_notification_new (summary, n->message, NULL, NULL);
Should now be:
notification = notify_notification_new (summary, n->message, NULL;
As in, one argument less for notify_notification_new.
But we can't just remove it or it'll break compability with libnotify
0.4.x and 0.5.x.
This piece of code sets dummy NOTIFY_CHECK_VERSION for libnotify-0.4.x,
because NOTIFY_CHECK_VERSION was added only in 0.5.x:
#ifndef NOTIFY_CHECK_VERSION
#define NOTIFY_CHECK_VERSION(x,y,z) 0
#endif
Then we can freely use NOTIFY_CHECK_VERSION, and it will work with all
of 0.4, 0.5 and 0.7 series:
#if NOTIFY_CHECK_VERSION (0, 7, 0)
do something cool
#endif
I'm attaching the working patch. It's been tested with all of the
mentioned versions, as well as it's in active use at Gentoo Linux.
Thanks, Samuli
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
The current code in src/notify_desktop.c is not compatible with the new
libnotify 0.7 API
This:
notification = notify_notification_new (summary, n->message, NULL, NULL);
Should now be:
notification = notify_notification_new (summary, n->message, NULL;
As in, one argument less for notify_notification_new.
But we can't just remove it or it'll break compability with libnotify
0.4.x and 0.5.x.
This piece of code sets dummy NOTIFY_CHECK_VERSION for libnotify-0.4.x,
because NOTIFY_CHECK_VERSION was added only in 0.5.x:
#ifndef NOTIFY_CHECK_VERSION
#define NOTIFY_CHECK_VERSION(x,y,z) 0
#endif
Then we can freely use NOTIFY_CHECK_VERSION, and it will work with all
of 0.4, 0.5 and 0.7 series:
#if NOTIFY_CHECK_VERSION (0, 7, 0)
do something cool
#endif
I'm attaching the working patch. It's been tested with all of the
mentioned versions, as well as it's in active use at Gentoo Linux.
Thanks, Samuli
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/collectd.h: Define "_Bool" to "int" if the C compiler doesn't know the type.
Merge branch 'collectd-5.0'
ChangeLog: Add release date.
Merge branch 'collectd-4.10' into collectd-5.0
Conflicts:
ChangeLog
src/libvirt.c
src/plugin.c
src/plugin.h
version-gen.sh
Conflicts:
ChangeLog
src/libvirt.c
src/plugin.c
src/plugin.h
version-gen.sh
Bump version to 4.10.3; Update ChangeLog.
Merge branch 'collectd-4.9' into collectd-4.10
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
Bump version to 4.9.5; Update ChangeLog.
libvirt plugin: Correctly check the status code of virDomainGetVcpus().
The status code is less than zero on failure and the number of vCPUs
otherwise. Thanks to "JLPC" for pointing this problem out.
The status code is less than zero on failure and the number of vCPUs
otherwise. Thanks to "JLPC" for pointing this problem out.
Fix compilation error with plugin_register_shutdown
Compiling collectd-4.10.2 on an OpenSuSE 11.3 system causes the
following error:
snmp.c: In function ‘module_register’:
snmp.c:1620:3: error: passing argument 1 of ‘plugin_register_shutdown’ discards qualifiers from pointer target type
plugin.h:275:5: note: expected ‘char *’ but argument is of type ‘const char *’
Convert plugin_register_shutdown's name argument from 'char *' to
'const char *' in order to match the other plugin_register_*
functions.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Compiling collectd-4.10.2 on an OpenSuSE 11.3 system causes the
following error:
snmp.c: In function ‘module_register’:
snmp.c:1620:3: error: passing argument 1 of ‘plugin_register_shutdown’ discards qualifiers from pointer target type
plugin.h:275:5: note: expected ‘char *’ but argument is of type ‘const char *’
Convert plugin_register_shutdown's name argument from 'char *' to
'const char *' in order to match the other plugin_register_*
functions.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
.gitignore: Added collectdctl.
Merge branch 'collectd-4.10' into collectd-5.0
Merge branch 'collectd-4.9' into collectd-4.10
dispatch proper values in Python write plugin
Fixes the Python write callback so the appropriate value is dispatched to
Python. Previously, the code only looked at the first element of a data set
to determine which value type (GAUGE, COUNTER, etc) to dispatch. If your data
set consisted of multiple values of different types, then the Python write
plugin was receiving bad values for the elements at position n > 0 whose type
was not the same as that at position 0.
Fixes the Python write callback so the appropriate value is dispatched to
Python. Previously, the code only looked at the first element of a data set
to determine which value type (GAUGE, COUNTER, etc) to dispatch. If your data
set consisted of multiple values of different types, then the Python write
plugin was receiving bad values for the elements at position n > 0 whose type
was not the same as that at position 0.
snmp plugin: Improve error message.
Go to some length to make it possible to display the name of the
<host /> and <data /> block when complaining about an unknown ASN type.
Go to some length to make it possible to display the name of the
<host /> and <data /> block when complaining about an unknown ASN type.
Removed bogus checking in ut_config.
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Fix buffer length in parse_identifier_vl function.
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Removed bogus checking in ut_config.
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Fix buffer length in parse_identifier_vl function.
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
processes plugin: Call kvm_close() after kvm_geterr().
collectd.conf(5): Mention MySQL privileges required for repl stats.
collectd.conf(5): Be more verbose about how to access a notification daemon.
filter_chain: Use a complaint to report plugin_write()'s ENOENT error.
In most cases this is a permanent error, so using the complain mechanism
avoids spamming the logs.
In most cases this is a permanent error, so using the complain mechanism
avoids spamming the logs.
src/plugin.c: Print a more verbose error message if lt_dlopen() fails.
Since the Debian package doesn't depend on the libraries used by the
collectd plugins, some plugins may fail to load. ltdl reports this with
the very confusing error message "file not found". Since the plugin is
in fact available, many users don't realize a dependency is missing and
assume collectd is looking in the wrong directory -- and they are hardly
to blame for this.
This commit introduces a lengthy error message which hopefully points
users into the right direction.
Since the Debian package doesn't depend on the libraries used by the
collectd plugins, some plugins may fail to load. ltdl reports this with
the very confusing error message "file not found". Since the plugin is
in fact available, many users don't realize a dependency is missing and
assume collectd is looking in the wrong directory -- and they are hardly
to blame for this.
This commit introduces a lengthy error message which hopefully points
users into the right direction.
contrib/collection3: Set @INC at runtime, too.
Apparently the @INC variable is reset by mod_perl, which
causes later require()s to fail.
Apparently the @INC variable is reset by mod_perl, which
causes later require()s to fail.
contrib/collection3: Add basic compatibility to mod_perl.
Some data is cached between requests, which may increase
performance, especially if different timespans of the same
graph are requested.
Some data is cached between requests, which may increase
performance, especially if different timespans of the same
graph are requested.
swap plugin: Declare swap_submit_derive() only on Linux.
ChangeLog: Fix typo.
Merge branch 'collectd-5.0'
Merge branch 'collectd-4.10' into collectd-5.0
Merge branch 'collectd-4.9' into collectd-4.10
Merge remote branch 'origin/ff/modbus'
Merge branch 'ff/flush-rrdcached'
Merge branch 'ff/swap'
exec plugin: Remove useless preprocessor stuff.
Merge branch 'pw/exclude_regex'
varnish plugin: Use a DERIVE type for allocated and free bytes.
Each event is counted, so storing a GAUGE is not the right thing to do.
Thanks to Renaud Chaput for pointing this out.
N.B.: The total amount of allocated memory is tracked by
"bytes-outstanding" for many storage backends.
Each event is counted, so storing a GAUGE is not the right thing to do.
Thanks to Renaud Chaput for pointing this out.
N.B.: The total amount of allocated memory is tracked by
"bytes-outstanding" for many storage backends.
src/collectd.conf.in: Remove the "TranslateDevicename" option from the "hddtemp" plugin.
src/common.c: Include <netinet/in.h> before <arpa/inet.h>.
teamspeak2 plugin: Include <netinet/in.h> before <arpa/inet.h>.
rrdcached plugin: Pass FLUSHes on to the caching daemon.
configure.in: Using sysctl(3) for swap statistics is only possible under Mac OS X.
configure.in: Fix (de)activation of the Swap plugin for OpenBSD.
ntpd plugin: Report failures of "ntpd_do_query" as *errors*, not debug messages.
MySQL plugin: Update copyright header.
src/configfile.[ch]: Update copyright header.
src/configfile.c: cf_util_get_port_number: Gracefully handle number arguments as well.
Why force the user into using strings when it's not strictly
necessary..?
Why force the user into using strings when it's not strictly
necessary..?
src/utils_threshold.c: Fix creation of percentage notifications.
Joey Hess has reported a problem when creating notifications from
percentage thresholds. Because the (percentage) minimum value is
compared to the (raw) DS value, the following message is possible:
Message: Host XXX, plugin df type df (instance root): Data source
"free" is currently 1773072384.000000. That is above the warning
threshold of nan%.
A new section will handle this case correctly. In the inverted case, the
problem should not exist.
Joey Hess has reported a problem when creating notifications from
percentage thresholds. Because the (percentage) minimum value is
compared to the (raw) DS value, the following message is possible:
Message: Host XXX, plugin df type df (instance root): Data source
"free" is currently 1773072384.000000. That is above the warning
threshold of nan%.
A new section will handle this case correctly. In the inverted case, the
problem should not exist.
src/plugin.c: Free allocated data if plugin_insert_read() fails.
src/plugin.c: Move the error-checking code up.
This way the error message is much closer to the check and we save one
level of indentation for the "good" code.
This way the error message is much closer to the check and we save one
level of indentation for the "good" code.
plugin.c: prevent re-adding read functions
When multiple LoadPlugin options are used with a plugin, the plugin is
only loaded once, however the plugin's read function is invoked
multiple times at every interval. This in turn causes undesired
redundant data to be sent to the write plugins.
This patch prevents a plugin's read function from being re-added to
the read_heap and read_list during plugin registration.
Signed-off-by: Blaise Tarr <blaise.tarr@gmail.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
When multiple LoadPlugin options are used with a plugin, the plugin is
only loaded once, however the plugin's read function is invoked
multiple times at every interval. This in turn causes undesired
redundant data to be sent to the write plugins.
This patch prevents a plugin's read function from being re-added to
the read_heap and read_list during plugin registration.
Signed-off-by: Blaise Tarr <blaise.tarr@gmail.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
swap plugin: Implement the "ReportByDevice" for Linux.
configure.in: Unify status output.