+ liblatency: Added utils_latency_config code
+ tail plugin: DSType Latency added
+ tail plugin: DSType Latency added
+ utils_latency: Cleaned latency_counter_get_rate() from debugging
+ utils_latency: Added latency_counter_get_rate()
+ User_data destroy callback added to match_create_callback() in utils_match
Merge remote-tracking branch 'github/pr/2058'
amqp, write_graphite and write_kafka plugins: Implement the "[Graphite]PreserveSeparator" option.
Fixes: #419
Fixes: #419
src/utils_format_graphite.[ch]: Implement the GRAPHITE_PRESERVE_SEPARATOR flag.
Merge remote-tracking branch 'github/pr/2052'
Merge remote-tracking branch 'github/pr/2054'
src/utils_format_graphite.[ch]: Add unit test.
First step towards fixing issue #419.
First step towards fixing issue #419.
collectd.spec: enable write_prometheus
use deterministic time values in MockDaemon
recognize seconds with and without fractional part
pass fractional seconds upwards as floats
allow fractional seconds in listval_filter()
update MockDaemon to report fractional seconds
fix indentation (consistently use tabs)
Merge pull request #2046 from rubenk/cleanup-dpdk-detection
Cleanup dpdk detection
Cleanup dpdk detection
Merge remote-tracking branch 'github/pr/2040'
src/daemon/plugin.c: Address review comments.
Rewrite the check for libdpdk
This fixes various issues, like us not picking up the right include path
and testing for the library in the wrong location.
We now allow you to override the CPPFLAGS and LDFLAGS by doing
./configure LIBDPDK_CPPFLAGS="-I/path/to/your/libdpdk_headers" LIBDPDK_LDFLAGS="-L/path/to/your/libdpdk.so -Wl,--no-as-needed"
The nice thing is that these settings are now logged and remembered
between configure runs.
This fixes various issues, like us not picking up the right include path
and testing for the library in the wrong location.
We now allow you to override the CPPFLAGS and LDFLAGS by doing
./configure LIBDPDK_CPPFLAGS="-I/path/to/your/libdpdk_headers" LIBDPDK_LDFLAGS="-L/path/to/your/libdpdk.so -Wl,--no-as-needed"
The nice thing is that these settings are now logged and remembered
between configure runs.
Enable detection of libdpdk by default
Otherwise we never exercise this check and it will just bitrot.
Otherwise we never exercise this check and it will just bitrot.
dpdkstat: Added support for dpdk 16.07.
configure.ac: Improve detection and usage of pthread_set_name_np(3).
mqtt, gps: add name parameter to plugin_thread_create()
Explain the need for _GNU_SOURCE
Add support to set the thread name.
write_prometheus plugin: Escape label values.
Fixes: #2035
Fixes: #2035
Merge remote-tracking branch 'github/pr/1967'
write_prometheus plugin: Use the "static" macro to specify PROMETHEUS_DEFAULT_STALENESS_DELTA.
Fixes:
write_prometheus.c:56:1: error: initializer element is not constant
static cdtime_t staleness_delta = PROMETHEUS_DEFAULT_STALENESS_DELTA;
^
Fixes:
write_prometheus.c:56:1: error: initializer element is not constant
static cdtime_t staleness_delta = PROMETHEUS_DEFAULT_STALENESS_DELTA;
^
write_prometheus plugin: Don't allocate metric families in prom_missing().
write_prometheus: add support for libmicrohttpd 0.9.45+
Add switch on MHD_VERSION to support both legacy and modern MHD functions.
`MHD_create_response_from_data()` is deprecated since libmicrohttpd
0.9.5 and makes the build fail since 0.9.45.
Add switch on MHD_VERSION to support both legacy and modern MHD functions.
`MHD_create_response_from_data()` is deprecated since libmicrohttpd
0.9.5 and makes the build fail since 0.9.45.
write_prometheus plugin: Improve performance of metric_cmp().
This function is a hotspot because it is used by bsearch() to look up
metrics in a metric family. This simple (though non-obvious) change
brings prom_write() complexity down from 3000 instructions/call to 2640
instructions/call, i.e. a 12% improvement.
This function is a hotspot because it is used by bsearch() to look up
metrics in a metric family. This simple (though non-obvious) change
brings prom_write() complexity down from 3000 instructions/call to 2640
instructions/call, i.e. a 12% improvement.
write_prometheus plugin: Optimize metric_family_get_metric().
Profiling showed that prom_write() spent 73% of its time in this
function. 36% of time was spent in metric_create() and 19% was spent in
metric_destroy().
This patch replaces these two calls by a stack allocation, reducing the
time prom_write() spends in metric_family_get_metric() to 42%.
Profiling showed that prom_write() spent 73% of its time in this
function. 36% of time was spent in metric_create() and 19% was spent in
metric_destroy().
This patch replaces these two calls by a stack allocation, reducing the
time prom_write() spends in metric_family_get_metric() to 42%.
write_prometheus plugin: New plugin for exposing metrics to Prometheus.
Merge branch 'collectd-5.6'
Merge branch 'collectd-5.5' into collectd-5.6
Merge remote-tracking branch 'github/pr/2026' into collectd-5.5
apcups plugin: Skip metrics not reported by the UPS.
Fixes: #2025
Fixes: #2025
write_kafka plugin: Fix support for librdkafka 0.9.0.
Use rd_kafka_set_logger() only when rd_kafka_conf_set_log_cb() is not
available:
write_kafka.c: In function 'kafka_handle':
write_kafka.c:119:6: error: 'rd_kafka_set_logger' is deprecated (declared at /usr/local/include/librdkafka/rdkafka.h:2400) [-Werror=deprecated-declarations]
rd_kafka_set_logger(ctx->kafka, kafka_log);
^
Fixes: #2029
Use rd_kafka_set_logger() only when rd_kafka_conf_set_log_cb() is not
available:
write_kafka.c: In function 'kafka_handle':
write_kafka.c:119:6: error: 'rd_kafka_set_logger' is deprecated (declared at /usr/local/include/librdkafka/rdkafka.h:2400) [-Werror=deprecated-declarations]
rd_kafka_set_logger(ctx->kafka, kafka_log);
^
Fixes: #2029
Merge remote-tracking branch 'github/pr/2027' into collectd-5.5
modbus plugin: Avoid sizeof(struct sockaddr).
The previous version failed on FreeBSD with:
modbus.c: In function 'mb_read_data':
modbus.c:476:21: error: storage size of 'sockaddr' isn't known
struct sockaddr sockaddr;
^
The previous version failed on FreeBSD with:
modbus.c: In function 'mb_read_data':
modbus.c:476:21: error: storage size of 'sockaddr' isn't known
struct sockaddr sockaddr;
^
src/write_riemann_threshold.h: Various fixes.
* Add license header. Simply copied src/write_riemann_threadhold.c's license.
* Make header self-contained. "plugin.h" is needed for data_source_t and
value_list_t.
* Add names to the parameters and write documentation for the only exported
function.
* Add license header. Simply copied src/write_riemann_threadhold.c's license.
* Make header self-contained. "plugin.h" is needed for data_source_t and
value_list_t.
* Add names to the parameters and write documentation for the only exported
function.
write_riemann plugin: Fix order of includes.
The previous version failed on Solaris with:
In file included from ./daemon/collectd.h:31:0,
from write_riemann.c:36:
./config.h:1619:0: error: "_FILE_OFFSET_BITS" redefined [-Werror]
#define _FILE_OFFSET_BITS 64
^
The previous version failed on Solaris with:
In file included from ./daemon/collectd.h:31:0,
from write_riemann.c:36:
./config.h:1619:0: error: "_FILE_OFFSET_BITS" redefined [-Werror]
#define _FILE_OFFSET_BITS 64
^
Merge branch 'collectd-5.6'
Merge branch 'collectd-5.5' into collectd-5.6
src/daemon/utils_tail_match.c: Use match_value_reset().
configure.ac: make finding java deterministic
The sort order of the `find` command proves to be dependent on external
factors, which makes `./configure` pick different java versions on
different systems, making the whole build non-reproducible (see
https://reproducible-builds.org/ for more details).
Adding a call to `sort`, with the locale forced, fixes this issue.
Fixes: #1523
The sort order of the `find` command proves to be dependent on external
factors, which makes `./configure` pick different java versions on
different systems, making the whole build non-reproducible (see
https://reproducible-builds.org/ for more details).
Adding a call to `sort`, with the locale forced, fixes this issue.
Fixes: #1523
src/daemon/utils_match.c: Add GAUGE_PERSIST logic to default_callback().
src/daemon/utils_match.c: Improve readability of reset logic.
collectd.conf(5): Fix typos.
battery plugin: Fix type in a warning.
tail plugin: Implement the "GaugePersist" type.
zfs_arc: remove double metric
I accidentally added prefetch_metadata_misses in 61635f3 but we
already had that metric.
Fixes #1963
I accidentally added prefetch_metadata_misses in 61635f3 but we
already had that metric.
Fixes #1963
Merge remote-tracking branch 'github/pr/2012' into collectd-5.6
openvpn: Fixed openvpn_read() on empty configuration.
When plugin loaded without configuration, it starts to spam logs with message
'read-function of plugin `openvpn' failed'.
Issue: #1932
When plugin loaded without configuration, it starts to spam logs with message
'read-function of plugin `openvpn' failed'.
Issue: #1932
src/daemon/common.c: Rewrite check_capability() using cap_get_bound().
capget(2) is Linux specific and the use of the raw syscalls is
discouraged. Also, there have been interesting crashes on some systems.
Issue: #2009
capget(2) is Linux specific and the use of the raw syscalls is
discouraged. Also, there have been interesting crashes on some systems.
Issue: #2009
Merge branch 'pr/2004'
collectd.conf(5): Improve the "BlockDeviceFormat" and "BlockDeviceFormatBasename" sections.
virt plugin: Fix indentation and some whitespace.
virt plugin: Use the IS_TRUE() macro.
virt plugin: Add comment for <libgen.h> include.
virt.c modifications to bring it in accordance with "octo" comments
plugin virt, collectd.conf.in, collectd.conf.pod eddited to be according to comments from collectd members
write_kafka plugin: Reintroduce the "Key Random" setting.
Fixes: #1977
Fixes: #1977
Merge remote-tracking branch 'github/pr/2006'
Merge remote-tracking branch 'github/pr/2006'
src/daemon/common_test.c: Avoid nesting composite literals.
This crashed GCC 4.6 on Precise.
This crashed GCC 4.6 on Precise.
Merge remote-tracking branch 'github/pr/2001'
curl plugin: Don't use CDTIME_T_TO_DOUBLE() within a composite literal.
GCC 4.6 has a problem with the original code:
curl.c: In function 'cc_submit_response_time':
curl.c:644:26: internal compiler error: Segmentation fault
This is essentially a shot in the dark, trying to fix this issue.
GCC 4.6 has a problem with the original code:
curl.c: In function 'cc_submit_response_time':
curl.c:644:26: internal compiler error: Segmentation fault
This is essentially a shot in the dark, trying to fix this issue.
gps plugin: Replace busy loop with pthread_cond_timedwait().
Various: Simplify code using composite literals.
Merge branch 'collectd-5.6'
Merge pull request #2005 from rpv-tomsk/issue-1996
write_http: Fixed DS type check
write_http: Fixed DS type check
write_http: Fixed DS type check
Closes: #1996
Closes: #1996
fixed typo in the Man
Modified plugin virt.c
Added options:
BlockDeviceFormat
BlockDeviceFormatBasename
Added options:
BlockDeviceFormat
BlockDeviceFormatBasename
src/daemon/utils_time.h: Use composite literals in all macros.
This allows to take the address of all these macros. Unfortunately, this
means we require special macors for initializing static variables, but
fortunately this is not very commonly done.
This allows to take the address of all these macros. Unfortunately, this
means we require special macors for initializing static variables, but
fortunately this is not very commonly done.
src/daemon/utils_time.h: Return structs from CDTIME_T_TO_TIME{VAL,SPEC}.
Since these are macros use composite literals, you can even take the
address of these struct, which is very handy for calling nanosleep()
and friends.
Since these are macros use composite literals, you can even take the
address of these struct, which is very handy for calling nanosleep()
and friends.
src/daemon/utils_cache.c: Refactor uc_check_timeout().
Merge pull request #1997 from rpv-tomsk/issue-1995
powerdns plugin: Improved error reporting
powerdns plugin: Improved error reporting
powerdns plugin: Improved error reporting
Show socket path in log messages.
Closes: #1995
Show socket path in log messages.
Closes: #1995
Merge remote-tracking branch 'github/pr/1749'
Merge branch 'pr/1609'
nginx plugin: Add comment, fix indentation.
Add a comment reminding us to remove the "handled" metric in a later
major release. Also fixes mixes tab/space indenting.
Add a comment reminding us to remove the "handled" metric in a later
major release. Also fixes mixes tab/space indenting.
powerdns plugin: fix parsing of last key
I found this in my logs:
collectd[4678]: powerdns plugin: submit: Not found in lookup table: questions#012 = 98797645;
The octal #012 is '\n'. Add a space before the newline so the default
command is split into keys correctly.
Signed-off-by: Florian Forster <octo@collectd.org>
I found this in my logs:
collectd[4678]: powerdns plugin: submit: Not found in lookup table: questions#012 = 98797645;
The octal #012 is '\n'. Add a space before the newline so the default
command is split into keys correctly.
Signed-off-by: Florian Forster <octo@collectd.org>
utils_format_graphite: terminate buffer with \0
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
common.c: Use _LINUX_CAPABILITY_VERSION_3 in cap_header
While check_capability() function already requires
_LINUX_CAPABILITY_VERSION_3 via "#ifdef" since commit 448627953c we still
set the cap_header's version to deprecated _LINUX_CAPABILITY_VERSION. This
results in a warning like
> capability: warning: `collectd' uses 32-bit capabilities (legacy support in use)
from the kernel when a plugin (like iptables) calls our check_capability()
function.
With this commit we will set cap_header to kernel's current capability
version (_LINUX_CAPABILITY_VERSION_3), which is default since
kernel 2.6.26.
Signed-off-by: Florian Forster <octo@collectd.org>
While check_capability() function already requires
_LINUX_CAPABILITY_VERSION_3 via "#ifdef" since commit 448627953c we still
set the cap_header's version to deprecated _LINUX_CAPABILITY_VERSION. This
results in a warning like
> capability: warning: `collectd' uses 32-bit capabilities (legacy support in use)
from the kernel when a plugin (like iptables) calls our check_capability()
function.
With this commit we will set cap_header to kernel's current capability
version (_LINUX_CAPABILITY_VERSION_3), which is default since
kernel 2.6.26.
Signed-off-by: Florian Forster <octo@collectd.org>
Merge remote-tracking branch 'github/pr/1981'
Merge remote-tracking branch 'github/pr/1980'
bind: fix 2 typos spotted by Debian's lintian tool
authorative -> authoritative
dupliate -> duplicate
Despite this mistake is also found in the collectd-5.5 and 5.6 lines,
the fix is scheduled for 5.7.0 because it will change 2 VL's
type_instances, possibly breaking users' dashboards or alerting.
authorative -> authoritative
dupliate -> duplicate
Despite this mistake is also found in the collectd-5.5 and 5.6 lines,
the fix is scheduled for 5.7.0 because it will change 2 VL's
type_instances, possibly breaking users' dashboards or alerting.
Merge branch 'collectd-5.6'
Merge branch 'collectd-5.5' into collectd-5.6
fix one typo spotted by Debian's lintian tool
fix a couple of typos spotted by Debian's lintian tool
collectd.spec: increment changelog to mention 5.6.1
collectd.spec: add new intel_rdt plugin
processes plugin: Do not gather processes IO and context switch data when unneeded
Bump version number in redhat spec
processes plugin: Fix counters initialization / spikes
processes plugin generates spikes on (re)start. That is caused by
wrong counter logic: When collectd (re)started, monitored processes,
which was started before collectd, have non-zero values in
cpu_user/cpu_system/vmem_minflt/vmem_majflt, so `want_init` is false.
What produces spike.
At other hand, processes which are started between read cycles, should
be fully accounted without initialization. So, we must skip only first
cycle for these counters.
processes plugin generates spikes on (re)start. That is caused by
wrong counter logic: When collectd (re)started, monitored processes,
which was started before collectd, have non-zero values in
cpu_user/cpu_system/vmem_minflt/vmem_majflt, so `want_init` is false.
What produces spike.
At other hand, processes which are started between read cycles, should
be fully accounted without initialization. So, we must skip only first
cycle for these counters.