csv plugin: set datadir null when free
If you define twice DataDir:
<Plugin csv>
DataDir "/opt/collectd/var/lib/collectd/csv"
DataDir stdout
</Plugin>
the second time datadir will not be null and
you will get garbage in value_list_to_filename
Signed-off-by: Florian Forster <octo@collectd.org>
If you define twice DataDir:
<Plugin csv>
DataDir "/opt/collectd/var/lib/collectd/csv"
DataDir stdout
</Plugin>
the second time datadir will not be null and
you will get garbage in value_list_to_filename
Signed-off-by: Florian Forster <octo@collectd.org>
csv plugin: fix forgotten "datadir" in re-implement value_list_to_filename()
In the commit 7f90e30 the re-implementation of value_list_to_filename
forgot to prepend the datadir string.
Signed-off-by: Florian Forster <octo@collectd.org>
In the commit 7f90e30 the re-implementation of value_list_to_filename
forgot to prepend the datadir string.
Signed-off-by: Florian Forster <octo@collectd.org>
rrdcached, rrdtool plugins: Add directory separator after datadir.
D'oh! Thanks to @rcpoison for pointing this out!
Github: #380
D'oh! Thanks to @rcpoison for pointing this out!
Github: #380
rrdcached, rrdtool plugins: Honor the "DataDir" setting.
This fixes a regression introduced in:
bfd3f06ef4996707036756371c5724ebf2748821
Github: #380
This fixes a regression introduced in:
bfd3f06ef4996707036756371c5724ebf2748821
Github: #380
lpar: make dots in configure.in consistent with other plugins
src/plugin.c: Free the "data_sets" AVL tree.
This pops up every time I investigate memory leaks and it's annoying me.
This pops up every time I investigate memory leaks and it's annoying me.
write_graphite plugin: Don't call close() on invalid file descriptors.
write_graphite plugin: Don't call close() on invalid file descriptors.
write_graphite plugin: Actually check the return value of wg_send_message().
Assignment to "status" was missing.
Assignment to "status" was missing.
rrdtool, rrdcached plugins: Re-implement value_list_to_filename().
Faster version without snprintf().
Faster version without snprintf().
csv plugin: Re-implement value_list_to_filename().
The new implementation is faster, because it doesn't use snprintf().
The new implementation is faster, because it doesn't use snprintf().
src/common.c: Reimplement format_name for performance.
This is used from uc_update(), i.e. for every value list dispatched, and was
one of the most expensive functions thanks to snprintf().
This reduces total time spent in the format_name() function from 7.78% to 1.89%
during a network stress test.
This is used from uc_update(), i.e. for every value list dispatched, and was
one of the most expensive functions thanks to snprintf().
This reduces total time spent in the format_name() function from 7.78% to 1.89%
during a network stress test.
collectd-threshold(5): Correct the description of the "Interesting" config option.
threshold plugin: Fix the "Interesting" configuration option.
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Unbreak type_inst value in collectd psql view.
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
src/configfile.c: Let errors in included files propagate up to cf_read().
cf_read_generic() returned NULL in two cases: Unable to read file and
file was empty. Since we wanted to allow empty includes, the "include
file with errors" case was not handled properly.
Github: #323
cf_read_generic() returned NULL in two cases: Unable to read file and
file was empty. Since we wanted to allow empty includes, the "include
file with errors" case was not handled properly.
Github: #323
Merge branch 'collectd-4.10' into collectd-5.2
Don't notify continuously when MySQL slave SQL thread is running
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Add "=encoding" header to all manual pages.
http://bugs.debian.org/708718
http://bugs.debian.org/708718
exec plugin: Document that defaulting to PUTVAL is no longer done
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'document-varnish-instance-block' into collectd-5.2
modbus plugin: Refactor the new reconnection code.
Avoid the goto() and switch() statements.
Github: #294
Avoid the goto() and switch() statements.
Github: #294
Cleanup modbus connection if wrong result
Change-Id: I1b7520442d7663d5bc2529369e27e3e858fe2168
Signed-off-by: Florian Forster <octo@collectd.org>
Change-Id: I1b7520442d7663d5bc2529369e27e3e858fe2168
Signed-off-by: Florian Forster <octo@collectd.org>
Fix modbus segfault / New strategy for connecting
The previous implementation had a reconnection loop which should not
really be necessary. Idea tried here is to check if connection is alive,
and establish it if not. Change was begun because previously connection
would only be attempted as a retry, so on first pass a NULL was handed to
libmodbus which caused segmentation faults reproducibly.
Signed-off-by: Florian Forster <octo@collectd.org>
The previous implementation had a reconnection loop which should not
really be necessary. Idea tried here is to check if connection is alive,
and establish it if not. Change was begun because previously connection
would only be attempted as a retry, so on first pass a NULL was handed to
libmodbus which caused segmentation faults reproducibly.
Signed-off-by: Florian Forster <octo@collectd.org>
varnish: hint about missing <Instance> block
The warning when the Collect* configuration options where used outside
of an <Instance> block was confusing. This patch warns the user the same
way the apache plugin does.
The warning when the Collect* configuration options where used outside
of an <Instance> block was confusing. This patch warns the user the same
way the apache plugin does.
Improve varnish section in manpage.
There previously was no mention of the mandatory <Instance> block.
There previously was no mention of the mandatory <Instance> block.
dns plugin: Sleep for an interval before re-trying to read from interface.
Otherwise we'd just have the CPU hogging behavior shifted from libpcap
to collectd …
Github: #308
Otherwise we'd just have the CPU hogging behavior shifted from libpcap
to collectd …
Github: #308
dns plugin: Resume after receiving a PCAP_ERROR from pcap_loop().
If an interface goes down while capturing, libpcap returns PCAP_ERROR.
Handle this case gracefully.
Github: #308
If an interface goes down while capturing, libpcap returns PCAP_ERROR.
Handle this case gracefully.
Github: #308
src/utils_mount.h: Add <stdio.h>.
This is required on Solaris 10. Thanks to dannypoo@ for reporting this
problem.
Github: #306
This is required on Solaris 10. Thanks to dannypoo@ for reporting this
problem.
Github: #306
Record load averages over 100
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Bump version to 5.2.2; Update ChangeLog.
Merge branch 'collectd-5.1' into collectd-5.2
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
Bump version to 5.1.3; Update ChangeLog.
Merge remote-tracking branch 'origin/collectd-4.10' into collectd-5.1
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
Bump version to 4.10.9; Update ChangeLog.
Merge branch 'collectd-5.1' into collectd-5.2
Merge branch 'jk/snmp' into collectd-5.1
Merge remote-tracking branch 'github-octo/ff/netapp' into collectd-5.1
Merge branch 'collectd-5.1' into collectd-5.2
Conflicts:
configure.in
Conflicts:
configure.in
Merge branch 'collectd-4.10' into collectd-5.1
Conflicts:
configure.in
src/mysql.c
src/network.c
src/thermal.c
Conflicts:
configure.in
src/mysql.c
src/network.c
src/thermal.c
bindings/Makefile: Hint the user at --with-perl-bindings.
… in case 'perl Makefile.PL' fails.
Fixes Github issue #290.
Signed-off-by: Florian Forster <octo@collectd.org>
… in case 'perl Makefile.PL' fails.
Fixes Github issue #290.
Signed-off-by: Florian Forster <octo@collectd.org>
build system (Perl bindings): Make Makefile.PL's PREFIX/INSTALL_BASE optional.
Both options may cause problems:
- PREFIX might clash with INSTALL_BASE being set in $PERL_MM_OPT.
- INSTALL_BASE without any further options set will install into non-standard
directories in many cases.
Rather, use PREFIX=${prefix} as default but overwrite that if
--with-perl-bindings=... has been used.
Thanks to faxm0dem for reporting the INSTALL_BASE problems on IRC and
bvarner and nirik for reporting this in GH #177 and #196.
This is a follow-up / fix for 97e8f346a88eccf4d1608c21d5cc6ee9620c1c41.
Fixes Github issue #290.
Signed-off-by: Florian Forster <octo@collectd.org>
Both options may cause problems:
- PREFIX might clash with INSTALL_BASE being set in $PERL_MM_OPT.
- INSTALL_BASE without any further options set will install into non-standard
directories in many cases.
Rather, use PREFIX=${prefix} as default but overwrite that if
--with-perl-bindings=... has been used.
Thanks to faxm0dem for reporting the INSTALL_BASE problems on IRC and
bvarner and nirik for reporting this in GH #177 and #196.
This is a follow-up / fix for 97e8f346a88eccf4d1608c21d5cc6ee9620c1c41.
Fixes Github issue #290.
Signed-off-by: Florian Forster <octo@collectd.org>
network plugin: Make sure gcrypt is initialized before using any of its functions.
@marekbecka found that sockent_open() is called during the configuration
phase, but gcrypt is initialized later, during the initialization phase.
This patch will initialize gcrypt in sockent_open() if any sockets with
security are configured.
Fixes Github issue #273.
@marekbecka found that sockent_open() is called during the configuration
phase, but gcrypt is initialized later, during the initialization phase.
This patch will initialize gcrypt in sockent_open() if any sockets with
security are configured.
Fixes Github issue #273.
Don't clobber TMPDIR during Java detection
- Java detection used TMPDIR as var to parse command output
- TMPDIR is used in libltdl later on in ./configure
- alternative fix is local var or subshell
- fixes issue introduced via #33163ee
Conflicts:
configure.in
Signed-off-by: Florian Forster <octo@collectd.org>
- Java detection used TMPDIR as var to parse command output
- TMPDIR is used in libltdl later on in ./configure
- alternative fix is local var or subshell
- fixes issue introduced via #33163ee
Conflicts:
configure.in
Signed-off-by: Florian Forster <octo@collectd.org>
notify_email: Add charset in Content-Type header (seems required by some picky spam filters)
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
netapp plugin: Fix intervals used when dispatching values.
It used to use the interval of the <Host /> block when in fact it should
have used the interval of the data blocks.
Fixes Github issue #288.
It used to use the interval of the <Host /> block when in fact it should
have used the interval of the data blocks.
Fixes Github issue #288.
snmp plugin: Fix compilation issue.
Thanks to Magnus for pointing this out.
Thanks to Magnus for pointing this out.
nfs plugin: Copy the name before calling the non-const lookup function.
Fixes Github issue #70. Thanks to Jeff for reporting this issue.
Fixes Github issue #70. Thanks to Jeff for reporting this issue.
rrdcached plugin: Connect to the daemon in the read() callback.
Fixes Github issue #275. Thanks to Yves Mettier for reporting this bug!
Fixes Github issue #275. Thanks to Yves Mettier for reporting this bug!
Merge branch 'collectd-5.1' into collectd-5.2
src/libcollectdclient/network_buffer.c check for htonll exitence
before defining it. I have to to this to get it compiled on AIX6
Signed-off-by: Florian Forster <octo@collectd.org>
before defining it. I have to to this to get it compiled on AIX6
Signed-off-by: Florian Forster <octo@collectd.org>
snmp plugin: Allocate "oid_list" on the stack.
snmp plugin: Some coding style fixes.
* Rename "oid_todo_list" to "oid_list_todo".
* Rename "j" to "oid_list_todo_num".
* Fix indentation.
* Declare variables at beginning of block.
* Rename "oid_todo_list" to "oid_list_todo".
* Rename "j" to "oid_list_todo_num".
* Fix indentation.
* Declare variables at beginning of block.
csnmp_read_table: Change GETNEXT request behaviour (+ bugfix 235)
This patch changes the snmp GETNEXT request behaviour implemented in snmp.c.
The old implementation requested all OIDs using GETNEXT requests until all OIDs
left their own subtree. In cases were trees in a Data template are much longer
than other trees the shorter subtrees were re-requested over and over again.
The new implementation will only request OIDs that did not already leave their
subtrees (see the oid_todo_list implementation for details). This renders the
function csnmp_check_res_left_subtree useless as the oid_todo_list keeps track
if all OIDs have finished.
During tests against Cat6500 (CatOS/IOS) as well as Nexus5k (NX-OS) it looks as
though GETNEXT requests (when requesting multiple OIDs like all 14 dot3Stats
errors from Etherlike-MIB) can take about 5-10ms (CatOS 30ms) longer if they wrap
to the next OID.
This does not sound much but when collecting data for the Etherlike-MIB (that only
has entries for physical interfaces) with a collectd "Instance" variable in IF-MIB
(that has entries for all physical as well as pseudo [SVIs, VLANs, ...] interfaces)
this can make a notable difference (e.g. for core routers that have all SVIs and
VLANs but only some switches attached):
IOS-Core-Router ifName 550 entries
dot3StatsFCSErrors 70 entries
------------
480 entries * 10ms = 4.8s overhead
CatOS-Access-Sw. ifName 840 entries
dot3StatsFCSErrors 490 entries
------------
350 entries * 30ms = 10.5s overhead
After refactoring csnmp_read_table "Instance" and "Value" OIDs are now handled
consistently (so no pointer-forward foo needed). It doesn't change any logic
and data structures, though - so there should not be any impact to other
functions.
The refactored code also fixes GitHub bugs #235 and #258. This bug is due to
reusing the status variable in following code section which might lead to errors
if the subtrees are of different length:
1436 /* Calculate the current suffix. This is later used to check that the
1437 * suffix is increasing. This also checks if we left the subtree */
1438 status = csnmp_oid_suffix (&suffix, &vb_name, data->values + i);
Signed-off-by: Florian Forster <octo@collectd.org>
This patch changes the snmp GETNEXT request behaviour implemented in snmp.c.
The old implementation requested all OIDs using GETNEXT requests until all OIDs
left their own subtree. In cases were trees in a Data template are much longer
than other trees the shorter subtrees were re-requested over and over again.
The new implementation will only request OIDs that did not already leave their
subtrees (see the oid_todo_list implementation for details). This renders the
function csnmp_check_res_left_subtree useless as the oid_todo_list keeps track
if all OIDs have finished.
During tests against Cat6500 (CatOS/IOS) as well as Nexus5k (NX-OS) it looks as
though GETNEXT requests (when requesting multiple OIDs like all 14 dot3Stats
errors from Etherlike-MIB) can take about 5-10ms (CatOS 30ms) longer if they wrap
to the next OID.
This does not sound much but when collecting data for the Etherlike-MIB (that only
has entries for physical interfaces) with a collectd "Instance" variable in IF-MIB
(that has entries for all physical as well as pseudo [SVIs, VLANs, ...] interfaces)
this can make a notable difference (e.g. for core routers that have all SVIs and
VLANs but only some switches attached):
IOS-Core-Router ifName 550 entries
dot3StatsFCSErrors 70 entries
------------
480 entries * 10ms = 4.8s overhead
CatOS-Access-Sw. ifName 840 entries
dot3StatsFCSErrors 490 entries
------------
350 entries * 30ms = 10.5s overhead
After refactoring csnmp_read_table "Instance" and "Value" OIDs are now handled
consistently (so no pointer-forward foo needed). It doesn't change any logic
and data structures, though - so there should not be any impact to other
functions.
The refactored code also fixes GitHub bugs #235 and #258. This bug is due to
reusing the status variable in following code section which might lead to errors
if the subtrees are of different length:
1436 /* Calculate the current suffix. This is later used to check that the
1437 * suffix is increasing. This also checks if we left the subtree */
1438 status = csnmp_oid_suffix (&suffix, &vb_name, data->values + i);
Signed-off-by: Florian Forster <octo@collectd.org>
configure.in: Yet another attempt at fixing the mess that is AC_LANG_PROGRAM().
thermal plugin: set the hostname
Signed-off-by: Markus Knetschke <markus.knetschke@gmail.com>
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Markus Knetschke <markus.knetschke@gmail.com>
Signed-off-by: Florian Forster <octo@collectd.org>
thermal plugin: fixed value submitting
Signed-off-by: Markus Knetschke <markus.knetschke@gmail.com>
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Markus Knetschke <markus.knetschke@gmail.com>
Signed-off-by: Florian Forster <octo@collectd.org>
Allow parsing plugin_instance in parse_option().
isalnum() is not enough to catch the underscore.
Signed-off-by: Florian Forster <octo@collectd.org>
isalnum() is not enough to catch the underscore.
Signed-off-by: Florian Forster <octo@collectd.org>
mysql plugin: Call mysql_init() only once.
Apparently, if you call it with a structure allocated by mysql_init()
itself, it leaks memory. Thanks to Yves Mettier for pointing this out!
Fixes Github issue #274.
Apparently, if you call it with a structure allocated by mysql_init()
itself, it leaks memory. Thanks to Yves Mettier for pointing this out!
Fixes Github issue #274.
configure.in: Fix quoting of AC_LANG_PROGRAM().
Autoconf 2.68 complains about that and aborts building the configure
script. *sigh*
Autoconf 2.68 complains about that and aborts building the configure
script. *sigh*
Merge branch 'collectd-5.1' into collectd-5.2
configure.in: Quote AC_LANG_PROGRAM and remove AC_INCLUDES_DEFAULT.
The latter isn't expanded anymore when quoted. There's no easy way
around this :\
The latter isn't expanded anymore when quoted. There's no easy way
around this :\
src/filter_chain.c: Fixed typos in error messages
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'collectd-5.1' into collectd-5.2
Merge branch 'collectd-4.10' into collectd-5.1
Conflicts:
src/curl_json.c
Conflicts:
src/curl_json.c
curl_xml plugin: Check for a curl_easy_perform() error first
The value of CURLINFO_RESPONSE_CODE isn't valid otherwise.
Also, use the symbolic name CURLE_OK in all plugins where
appropriate.
Change-Id: I17ae9c7eea393ee4641296b5484c93809a662dd9
Signed-off-by: Florian Forster <octo@collectd.org>
The value of CURLINFO_RESPONSE_CODE isn't valid otherwise.
Also, use the symbolic name CURLE_OK in all plugins where
appropriate.
Change-Id: I17ae9c7eea393ee4641296b5484c93809a662dd9
Signed-off-by: Florian Forster <octo@collectd.org>
Fix memory leaks when plugin gets no results
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
exec plugin: Fix a copy'n'paste mistake in a comment.
Thanks to Robert Riches Jr for the hint.
Thanks to Robert Riches Jr for the hint.
Add upstart configuration file for Ubuntu, Debian and RedHat distros
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'mf/redhat' into collectd-5.2
Fixes Github issue #220.
Fixes Github issue #220.
curl_json plugin: Call yajl_complete_parse() / yajl_parse_complete() only once.
The cURL callback may be called several times, so we need to call the
complete() function after perform() returns.
The cURL callback may be called several times, so we need to call the
complete() function after perform() returns.
Add protection from infinite redirect loops to curl-using plugins
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
curl_xml plugin: Fix potential dereference of NULL pointer.
I managed to get collectd to segfault in a couple of places while
playing with it a bit. The first is in the curl_xml module when the
XPATH expression doesn't quite match the input. The crash occurs on line
407 when instance_node->nodeTab[0] is dereferenced. At this point, all
members of instance_node are 0, so dereferencing the array isn't a good
idea. This patch fixes the problem, although I'm not sure if this
particular case actually deserves its own error message.
Signed-off-by: Florian Forster <octo@collectd.org>
I managed to get collectd to segfault in a couple of places while
playing with it a bit. The first is in the curl_xml module when the
XPATH expression doesn't quite match the input. The crash occurs on line
407 when instance_node->nodeTab[0] is dereferenced. At this point, all
members of instance_node are 0, so dereferencing the array isn't a good
idea. This patch fixes the problem, although I'm not sure if this
particular case actually deserves its own error message.
Signed-off-by: Florian Forster <octo@collectd.org>
src/plugin.c: Initialize "next_read" field of read callbacks.
Fixes Github issue #230.
Fixes Github issue #230.
11 years agosrc/Makefile.am: Only add path to lcc_features.h to binaries linked against libcollec...
src/Makefile.am: Only add path to lcc_features.h to binaries linked against libcollectdclient.
Allow out-of-tree builds
The generated header file lcc_features.h and collectd.h cause problems
otherwise.
Signed-off-by: Florian Forster <octo@collectd.org>
The generated header file lcc_features.h and collectd.h cause problems
otherwise.
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'collectd-5.1' into collectd-5.2
Merge branch 'collectd-4.10' into collectd-5.1
Conflicts:
src/curl_json.c
Conflicts:
src/curl_json.c
curl's numeric options are always at minimum long, never int
This can affect portability to some architectures.
Signed-off-by: Florian Forster <octo@collectd.org>
This can affect portability to some architectures.
Signed-off-by: Florian Forster <octo@collectd.org>
postgresql plugin: Fix cast (was breaking aliasing rules).
postgresql.c: In function 'c_psql_flush':
postgresql.c:974: warning: dereferencing type-punned pointer will break strict-aliasing rules
postgresql.c: In function 'c_psql_flush':
postgresql.c:974: warning: dereferencing type-punned pointer will break strict-aliasing rules
pf plugin: Fix checking for <net/pfvar.h>.
The header is not self-contained, so we need to include appropriate
headers in the configure check as well.
The header is not self-contained, so we need to include appropriate
headers in the configure check as well.
pf plugin: Define {F,S}CNT_NAMES.
Apparently they are only defined in the pfctl sources, not in the
system's header files for some reason.
Apparently they are only defined in the pfctl sources, not in the
system's header files for some reason.
pf plugin: Fix a typo.
s/status/state/g
s/status/state/g
cpu plugin: Remove broken debug message.
The message was uninformative and did cast a pointer to an int,
resulting in a compile error.
The message was uninformative and did cast a pointer to an int,
resulting in a compile error.
Merge remote-tracking branch 'github/collectd-5.2' into collectd-5.2
ChangeLog: Fix typo.
ChangeLog: Fixed version number for 5.2.1 ;-)
src/utils_tail.c: Remove multiple newlines at EOL.
Updated ChangeLog.
Merge remote-tracking branch 'origin/collectd-5.2' into collectd-5.2
Bumped version to 5.2.1; Updated ChangeLog.
Merge branch 'collectd-5.1' into collectd-5.2
Conflicts:
ChangeLog
src/write_graphite.c
version-gen.sh
Conflicts:
ChangeLog
src/write_graphite.c
version-gen.sh
Bumped version to 5.1.2; Updated ChangeLog.
Added "tar-pax" (bugfix for long filenames with make distcheck)
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
src/Makefile.am: Fix "make distcheck".
protoc-c has a weird handling of files not in the CWD: They have to be
specified with the "-I" option _and_ you need to specify the full path
to the file.
protoc-c has a weird handling of files not in the CWD: They have to be
specified with the "-I" option _and_ you need to specify the full path
to the file.
bugfix ("cannot find collectd.h") for branch master (and 5.2)
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
make distcheck : perllocal.pod was missing. Fixed
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Fix make distcheck (against release 5.1.1)
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
logfile plugin: Make "do_close" a boolean.
If the file isn't closed such as when logging to stdout or stderr the file must be flushed for it to get out of the IO buffers right away.
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>