write_prometheus: plug a small leak
Found by scan-build
Found by scan-build
Merge branch 'collectd-5.6' into collectd-5.7
Merge remote-tracking branch 'github/pr/2081' into collectd-5.7
smart plugin: Refactor, demote warnings to debug.
Fixes: #2062
Fixes: #2062
src/utils_cmd_*.[ch]: Remove unused and redundant includes.
src/Makefile.am: Fix linking with libcmds.la.
Issue: #2067
Issue: #2067
dpdkstats: fix detection of local libdpdk
- Fix typo.
Change-Id: I7cfb6dff4e1c2728650cd1d44aaaa36169880809
Signed-off-by: Mytnyk, VolodymyrX <volodymyrx.mytnyk@intel.com>
- Fix typo.
Change-Id: I7cfb6dff4e1c2728650cd1d44aaaa36169880809
Signed-off-by: Mytnyk, VolodymyrX <volodymyrx.mytnyk@intel.com>
write_kafka plugin: Use 32bit random number when formatting a random key.
Previously, negative numbers would be truncated to "ffffffff" by the
buffer length on architectures where longs are 64 bit.
Fixes: #2074
Previously, negative numbers would be truncated to "ffffffff" by the
buffer length on architectures where longs are 64 bit.
Fixes: #2074
src/daemon/utils_random.[ch]: Implement cdrand_u().
Merge pull request #2069 from octo/issue/2067
src/Makefile.am: Fix dependencies for the "tail" and "match" utilities.
src/Makefile.am: Fix dependencies for the "tail" and "match" utilities.
src/Makefile.am: Fix dependencies for the "tail" and "match" utilities.
Since being pulled out of the core daemon, the daemon no longer provides
all the required symbols for these shared objects. The "tail", "match"
and "tail_match" utils need to be compiled in explicitly. Also, we need
to link with the liblatency.la convenience library for the
"Distribution" handling in the "match" util.
Issue: #2067
Since being pulled out of the core daemon, the daemon no longer provides
all the required symbols for these shared objects. The "tail", "match"
and "tail_match" utils need to be compiled in explicitly. Also, we need
to link with the liblatency.la convenience library for the
"Distribution" handling in the "match" util.
Issue: #2067
Bump version to 5.6.1; Update ChangeLog.
Merge pull request #2064 from rubenk/fix-make-distcheck
Fix make distcheck
Fix make distcheck
Collected podtypo
Merge branch 'collectd-5.6' into collectd-5.7
Conflicts:
contrib/redhat/collectd.spec
Conflicts:
contrib/redhat/collectd.spec
collectd.spec: also disable write_redis on EL6
This plugin also depends on the hiredis library, which was retired from
EPEL6.
This plugin also depends on the hiredis library, which was retired from
EPEL6.
Merge branch 'collectd-5.5' into collectd-5.6
Conflicts:
contrib/redhat/collectd.spec
Conflicts:
contrib/redhat/collectd.spec
collectd.spec: disable redis plugin on EL6
hiredis has been retired from EPEL6
hiredis has been retired from EPEL6
collectd.spec: disable redis plugin on EL6
Even more renormalization.
Merge branch 'collectd-5.6'
More reformatting.
No idea why the previous round missed these files.
No idea why the previous round missed these files.
Merge branch 'collectd-5.6'
Tree wide: Reformat with clang-format.
Tree wide: Reformat with clang-format.
Merge branch 'collectd-5.5' into collectd-5.6
Bump version to 5.5.3; Update ChangeLog.
Merge branch 'pr/2056'
collectd.conf(5): Improve documentation of the turbostat plugin.
Updated to actually honor the boolean and clarified documentation per request
collectd.conf(5): Add missing blank line.
src/utils_latency_config.c: Avoid nested compound literals.
So GCC 4.6 doesn't crash.
So GCC 4.6 doesn't crash.
src/daemon/utils_match.[ch]: Rename UTILS_MATCH_CF_GAUGE_LATENCY to UTILS_MATCH_CF_GAUGE_DIST.
tail plugin: Rename DSType from Latency to Distribution.
This is a more flexible naming owing to the fact that percentiles and other
distribution parameters are interesting for a variety of metrics, not just
latencies.
The config handling is now completely in src/utils_latency_config.c so
that other plugins, such as the cURL plugin, can easily reuse the module
with consistent config handling.
This is a more flexible naming owing to the fact that percentiles and other
distribution parameters are interesting for a variety of metrics, not just
latencies.
The config handling is now completely in src/utils_latency_config.c so
that other plugins, such as the cURL plugin, can easily reuse the module
with consistent config handling.
src/utils_latency{,_config}.[ch]: Reformat new code with clang-format.
collectd.conf(5): Update the "LatencyRate" option.
src/utils_latency.[ch]: get_rate(): Make lower bound exclusive.
This has a bunch of benefits:
* You can easily iterate over a range of latencies without counting
latencies twice. This was previously tricky because both borders were
considered to be inclusive.
* When lower equals upper, the returned value is now zero.
Previously, it was a value very close to zero, but not zero. The exact
value depended on the bucket width, an information not easily
available to the caller.
This has a bunch of benefits:
* You can easily iterate over a range of latencies without counting
latencies twice. This was previously tricky because both borders were
considered to be inclusive.
* When lower equals upper, the returned value is now zero.
Previously, it was a value very close to zero, but not zero. The exact
value depended on the bucket width, an information not easily
available to the caller.
src/utils_latency.[ch]: Remove latency_counter_get_start_time().
src/utils_latency.[ch]: Improve accuracy, update unit test.
DSType latency: Improved after PR code review
+ 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.
Add config boolean for logical CPU naming for turbostat plugin
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'
Fix Lua header detection
checking lua.h usability... yes
checking lua.h presence... no
configure: WARNING: lua.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lua.h: proceeding with the compiler's result
checking for lua.h... yes
checking lauxlib.h usability... yes
checking lauxlib.h presence... no
configure: WARNING: lauxlib.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lauxlib.h: proceeding with the compiler's result
checking for lauxlib.h... yes
checking lualib.h usability... yes
checking lualib.h presence... no
configure: WARNING: lualib.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lualib.h: proceeding with the compiler's result
checking for lualib.h... yes
AC_CHECK_HEADERS uses the preprocessor directly, which doesn't use
CFLAGS. Fixes detection of the lua-5.1 compat libs on Fedora Rawhide.
checking lua.h usability... yes
checking lua.h presence... no
configure: WARNING: lua.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lua.h: proceeding with the compiler's result
checking for lua.h... yes
checking lauxlib.h usability... yes
checking lauxlib.h presence... no
configure: WARNING: lauxlib.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lauxlib.h: proceeding with the compiler's result
checking for lauxlib.h... yes
checking lualib.h usability... yes
checking lualib.h presence... no
configure: WARNING: lualib.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lualib.h: proceeding with the compiler's result
checking for lualib.h... yes
AC_CHECK_HEADERS uses the preprocessor directly, which doesn't use
CFLAGS. Fixes detection of the lua-5.1 compat libs on Fedora Rawhide.
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).
contrib/README: sort items
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.
collectd-tg: Fix sleep interval.
nanosleep() was called with the current time, meaning that it would
block for years. This correctly subtracts "now" from the metric's time
and only sleeps for the duration between the two.
nanosleep() was called with the current time, meaning that it would
block for years. This correctly subtracts "now" from the metric's time
and only sleeps for the duration between the two.
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