src/daemon/common_test.c: Avoid nesting composite literals.
This crashed GCC 4.6 on Precise.
This crashed GCC 4.6 on Precise.
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.
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.
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.
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.
processes plugin: Remove unused fields from structures
Fields cpu_user, cpu_system, vmem_minflt, vmem_majflt are always equal to zero for new entries (which are passed to ps_list_add()).
Values of these fields are not used in `procstat_t` entries too. So, that can be safely removed.
Fields cpu_user, cpu_system, vmem_minflt, vmem_majflt are always equal to zero for new entries (which are passed to ps_list_add()).
Values of these fields are not used in `procstat_t` entries too. So, that can be safely removed.
nginx plugin: Report failed connections
Merge remote-tracking branch 'github/pr/1958' into collectd-5.5
Bump version to 5.6.1; Update ChangeLog.
Merge branch 'collectd-5.5' into collectd-5.6
Merge remote-tracking branch 'github/pr/1961' into collectd-5.5
Merge branch 'pr/1970'
intel_rdt plugin: Filter through clang-format.
intel_rdt plugin: Include "collectd.h" as first header.
rdtmon: Rename 'rdtmon' plugin to 'intel_rdt'.
Change-Id: Id23eb96fd37e6d4fc5fdf7e7ed58d9e74a33cca0
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
Change-Id: Id23eb96fd37e6d4fc5fdf7e7ed58d9e74a33cca0
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
Merge remote-tracking branch 'github/pr/1973'
Merge branch 'pr/1975'
memcached plugin: Clarify documentation and a comment.
rdtmon: Addressed PR comments
1. use size_t type for all arrays and indexes
2. change malloc()/memset() to calloc()
3. fix minor code style issues
4. add range validation of core id values
5. use 'bytes' type for LLC value
6. add 'memory_bandwidth' type for MBM values
Change-Id: I5e577dcda19bc9799e7b79f9d0334c6f21b60f0d
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
1. use size_t type for all arrays and indexes
2. change malloc()/memset() to calloc()
3. fix minor code style issues
4. add range validation of core id values
5. use 'bytes' type for LLC value
6. add 'memory_bandwidth' type for MBM values
Change-Id: I5e577dcda19bc9799e7b79f9d0334c6f21b60f0d
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
write_graphite: remove linking against libyajl (#1976)
write_graphite doesn't have anything to do with json. This seems to have
been accidentally added in 30c1111.
Fixes https://bugs.debian.org/839771
write_graphite doesn't have anything to do with json. This seems to have
been accidentally added in 30c1111.
Fixes https://bugs.debian.org/839771
memcached: Added Address option
CONTRIBUTING.md: Note that plugins must be added to README.
README: Move mqtt and grpc to the right section.
README: Improve build requirements.
docs/BUILD.java.md: Move java build instructions out of README.
docs/BUILD.dpdkstat.md: Move dpdkstat build instructions out of README.
collectd.spec: the dpdk is actually called dpdkstat...
collectd.spec: add dpdk plugin
grpc plugin: Fix compile error.
Weirdly, this only surfaces when building with CFLAGS="-O0 -g".
In file included from ./daemon/common.h:33:0,
from grpc.cc:44:
grpc.cc: In member function 'virtual grpc::Status CollectdImpl::PutValues(grpc::ServerContext*, grpc::ServerReader<collectd::PutValuesRequest>*, collectd::PutValuesResponse*)':
./daemon/plugin.h:113:56: sorry, unimplemented: non-trivial designated initializers not supported
#define VALUE_LIST_INIT { .values = NULL, .meta = NULL }
^
grpc.cc:294:22: note: in expansion of macro 'VALUE_LIST_INIT'
value_list_t vl = VALUE_LIST_INIT;
^
Weirdly, this only surfaces when building with CFLAGS="-O0 -g".
In file included from ./daemon/common.h:33:0,
from grpc.cc:44:
grpc.cc: In member function 'virtual grpc::Status CollectdImpl::PutValues(grpc::ServerContext*, grpc::ServerReader<collectd::PutValuesRequest>*, collectd::PutValuesResponse*)':
./daemon/plugin.h:113:56: sorry, unimplemented: non-trivial designated initializers not supported
#define VALUE_LIST_INIT { .values = NULL, .meta = NULL }
^
grpc.cc:294:22: note: in expansion of macro 'VALUE_LIST_INIT'
value_list_t vl = VALUE_LIST_INIT;
^
rdtmon: Fix formatting of collectd pod file.
Change-Id: I94d5e7c877bd99a5da8e725efef0bd700f339016
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
Change-Id: I94d5e7c877bd99a5da8e725efef0bd700f339016
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
rdtmon: Implement RDT monitoring plugin
The rdtmon plugin collects information provided by monitoring features of
Intel Resource Director Technology (Intel(R) RDT) like Cache Monitoring
Technology (CMT), Memory Bandwidth Monitoring (MBM).
Change-Id: Ie45344c1035c522fcd918a1dd2427a2da2e173bb
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
The rdtmon plugin collects information provided by monitoring features of
Intel Resource Director Technology (Intel(R) RDT) like Cache Monitoring
Technology (CMT), Memory Bandwidth Monitoring (MBM).
Change-Id: Ie45344c1035c522fcd918a1dd2427a2da2e173bb
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
CONTRIBUTING.md: Fix typos.
Merge branch 'collectd-5.6'
src/daemon/utils_cache.h: Improve documentation for uc_iterator_get_next().
src/daemon/plugin.[ch]: Make the user_data_t* const.
That is, user_data_t* passed to register_* functions. The actual callbacks
are still getting a user_data_t* since they, in theory, would be able to
modify the pointer stored in .data.
Issue: #1954
That is, user_data_t* passed to register_* functions. The actual callbacks
are still getting a user_data_t* since they, in theory, would be able to
modify the pointer stored in .data.
Issue: #1954
src/daemons/plugin.c: Don't modify user_data_t* in plugin_register_flush().
Fixes: #1954
Fixes: #1954
Revert "write_graphite: remove #ifndefs"
This reverts commit de80d27fe7023c2e377674b4cc341e539388b98e.
Fixes: #1953
This reverts commit de80d27fe7023c2e377674b4cc341e539388b98e.
Fixes: #1953
write_http plugin: Don't register a flush callback unconditionally.
Fixes: #1955
Fixes: #1955
Merge remote-tracking branch 'github/pr/1962'
Merge remote-tracking branch 'github/pr/1956'
Merge remote-tracking branch 'github/pr/1952'
cpu: Fix cpu aggregation on AIX change codeing style
cpu: Fix cpu aggregation on AIX
dpdkstat: Changed log severity to Error
add missing ;
Ability to run in tainted mode for spamassasin plugin.
Use readdir() instead of the deprecated readdir_r().
Cf. https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html
Cf. https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html
Declare loop variable in the loop expression.
valgrind.FreeBSD.suppress: Suppress bogus invalid read in all call chains.
Link libcmds (used for testing) against -lm.
FreeBSD requires this for isfinite().
FreeBSD requires this for isfinite().
command parser: Add support for parser options.
These can be used to tune the parser behavior. For now, there's an option to
specify the default hostname in an identifier.
These can be used to tune the parser behavior. For now, there's an option to
specify the default hostname in an identifier.
parse_identifier: Make hostname optional, if a default has been specified.
utils_cmds_test: Add various unit tests for the command parser.
command parser: Set command type to UNKNOWN upon failure.
PUTVAL command: Fix memory leaks and duplicate frees.
LISTVAL command: Add missing cmd_destroy_listval().
command parser: Add support for the GETVAL command.
Implement the generic interface for GETVAL and switch the GETVAL
implementation to use the generic interface.
Implement the generic interface for GETVAL and switch the GETVAL
implementation to use the generic interface.
command parser: Add support for the LISTVAL command.
Implement the generic interface for LISTVAL and switch the LISTVAL
implementation to use the generic interface.
Implement the generic interface for LISTVAL and switch the LISTVAL
implementation to use the generic interface.
command parser: Add support for the FLUSH command.
That is, implement the generic interface for FLUSH and switch the FLUSH
implementation to use the generic interface.
That is, implement the generic interface for FLUSH and switch the FLUSH
implementation to use the generic interface.
plugin.h: Introduce the identifier_t type with pointer fields.
This serves two purposes:
- Allow field values of arbitrary length.
- Reuse the identifier in other places.
Renamed identifier_t from utils_vl_lookup to lookup_identifier_t.
This serves two purposes:
- Allow field values of arbitrary length.
- Reuse the identifier in other places.
Renamed identifier_t from utils_vl_lookup to lookup_identifier_t.
command parser: Add a vector-based interface.
The new interface expects a parsed list of fields. Parsing of input buffers
is now done centrally in the generic code and the existing parser is a
wrapper around this and the new vector-based parser. The actual command
parsers (PUTVAL for now) receive the parsed list of fields.
As a side-effect, this changes the parser behavior a little:
- "foo=a string with spaces or \\ special characters" is now valid syntax
for specifying options in addition to foo="value with spaces, etc.".
- foo= is now a valid option even without quotes around the empty value.
The new interface expects a parsed list of fields. Parsing of input buffers
is now done centrally in the generic code and the existing parser is a
wrapper around this and the new vector-based parser. The actual command
parsers (PUTVAL for now) receive the parsed list of fields.
As a side-effect, this changes the parser behavior a little:
- "foo=a string with spaces or \\ special characters" is now valid syntax
for specifying options in addition to foo="value with spaces, etc.".
- foo= is now a valid option even without quotes around the empty value.
Add a generic interface for parsing the text protocol.
Implement it for PUTVAL for now.
The text protocol is used in multiple places and the parser will avoid code
duplication in client programs which can, instead, use it to generate the
respective requests.
Use the 'cmd_' prefix for public functions related to command handling.
Implement it for PUTVAL for now.
The text protocol is used in multiple places and the parser will avoid code
duplication in client programs which can, instead, use it to generate the
respective requests.
Use the 'cmd_' prefix for public functions related to command handling.
README: Document gRPC's client (sender) support.
gRPC plugin: Add Florian to copyright holders.
RRDCacheD plugin: Improve various RRD-related error messages.
RRDCacheD plugin: Try to reconnect upon failed operations.
The RRD client library does not provide means to check the status of a
connection and there's no way to detect that the connection is broken after,
for example, the daemon restarted. To work around that, try to reconnect if
any client operation fails.
Reported via https://bugs.debian.org/657877
The RRD client library does not provide means to check the status of a
connection and there's no way to detect that the connection is broken after,
for example, the daemon restarted. To work around that, try to reconnect if
any client operation fails.
Reported via https://bugs.debian.org/657877
commom: Fixed AIX doesn't have MSG_DONTWAIT
dpdkstat: Fixed issue with unused var when configured w/o debug
Signed-off-by: Taras Chornyi <tarasx.chornyi@intel.com>
Signed-off-by: Taras Chornyi <tarasx.chornyi@intel.com>
Merge remote-tracking branch 'github/pr/631'
Tree wide: Don't set vl.host to hostname_g in plugin code.
Issue: #1951
Issue: #1951
src/daemon/plugin.c: Don't copy values twice.
A copy of the values was made in plugin_dispatch_values_internal(). This
code predates the "write queue", which means that each value list (and
its values) are copied anyway and vl->values will always point to heap
memory.
A copy of the values was made in plugin_dispatch_values_internal(). This
code predates the "write queue", which means that each value list (and
its values) are copied anyway and vl->values will always point to heap
memory.
src/daemon/plugin.c: Initialize vl->host in plugin_value_list_clone().
Issue: #1951
Issue: #1951
Merge branch 'pr/1649'
dpkgstat plugin: Filter through clang-format.
Merge branch 'collectd-5.4' into collectd-5.5
dpdkstat: Fixed issue with incorrect argc calculation
Changed log messages to use PRIuN defines
Change-Id: I1433fbd6443c3d0a956c04670f93615042b40577
Signed-off-by: Taras Chornyi <tarasx.chornyi@intel.com>
Changed log messages to use PRIuN defines
Change-Id: I1433fbd6443c3d0a956c04670f93615042b40577
Signed-off-by: Taras Chornyi <tarasx.chornyi@intel.com>
Merge remote-tracking branch 'github/pr/1942'
Merge remote-tracking branch 'github/pr/1939'
Update email address
hddtemp: Improve robustness of test
Don't rely on signedness of buffer_size.
Don't rely on signedness of buffer_size.
hddtemp: Lift 1024-byte response limit
Dynamically scale the response buffer, up to a maximum of 1 MB.
Dynamically scale the response buffer, up to a maximum of 1 MB.
hddtemp: Lift 32-device limit
Instead of building an array of fields and then walking it, split into
fields as we go.
Instead of building an array of fields and then walking it, split into
fields as we go.