Sebastian Harl [Wed, 8 Jun 2016 22:37:58 +0000 (00:37 +0200)]
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.
Sebastian Harl [Wed, 8 Jun 2016 22:36:18 +0000 (00:36 +0200)]
parse_identifier: Make hostname optional, if a default has been specified.
Sebastian Harl [Sun, 5 Jun 2016 19:43:56 +0000 (21:43 +0200)]
utils_cmds_test: Add various unit tests for the command parser.
Sebastian Harl [Sun, 5 Jun 2016 19:41:39 +0000 (21:41 +0200)]
command parser: Set command type to UNKNOWN upon failure.
Sebastian Harl [Sun, 5 Jun 2016 19:40:57 +0000 (21:40 +0200)]
PUTVAL command: Fix memory leaks and duplicate frees.
Sebastian Harl [Sun, 5 Jun 2016 19:40:13 +0000 (21:40 +0200)]
LISTVAL command: Add missing cmd_destroy_listval().
Sebastian Harl [Sun, 5 Jun 2016 16:39:36 +0000 (18:39 +0200)]
command parser: Add support for the GETVAL command.
Implement the generic interface for GETVAL and switch the GETVAL
implementation to use the generic interface.
Sebastian Harl [Sun, 5 Jun 2016 16:08:47 +0000 (18:08 +0200)]
command parser: Add support for the LISTVAL command.
Implement the generic interface for LISTVAL and switch the LISTVAL
implementation to use the generic interface.
Sebastian Harl [Sun, 5 Jun 2016 15:50:58 +0000 (17:50 +0200)]
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.
Sebastian Harl [Sun, 5 Jun 2016 14:44:39 +0000 (16:44 +0200)]
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.
Sebastian Harl [Sun, 5 Jun 2016 13:23:41 +0000 (15:23 +0200)]
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.
Sebastian Harl [Sun, 5 Jun 2016 11:59:49 +0000 (13:59 +0200)]
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.
Sebastian Harl [Sat, 24 Sep 2016 11:28:59 +0000 (13:28 +0200)]
README: Document gRPC's client (sender) support.
Sebastian Harl [Sat, 24 Sep 2016 11:27:53 +0000 (13:27 +0200)]
gRPC plugin: Add Florian to copyright holders.
Florian Forster [Wed, 21 Sep 2016 13:25:07 +0000 (15:25 +0200)]
Merge remote-tracking branch 'github/pr/631'
Florian Forster [Wed, 21 Sep 2016 06:48:56 +0000 (08:48 +0200)]
Merge branch 'pr/1649'
Florian Forster [Wed, 21 Sep 2016 06:48:12 +0000 (08:48 +0200)]
dpkgstat plugin: Filter through clang-format.
Taras Chornyi [Mon, 19 Sep 2016 16:47:04 +0000 (17:47 +0100)]
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>
Florian Forster [Mon, 19 Sep 2016 14:14:42 +0000 (16:14 +0200)]
Merge remote-tracking branch 'github/pr/1942'
Florian Forster [Mon, 19 Sep 2016 14:13:08 +0000 (16:13 +0200)]
Merge remote-tracking branch 'github/pr/1939'
Benjamin Gilbert [Mon, 19 Sep 2016 06:42:52 +0000 (01:42 -0500)]
Update email address
Benjamin Gilbert [Wed, 11 Mar 2015 04:28:36 +0000 (00:28 -0400)]
hddtemp: Improve robustness of test
Don't rely on signedness of buffer_size.
Benjamin Gilbert [Tue, 3 Jun 2014 20:15:24 +0000 (16:15 -0400)]
hddtemp: Lift 1024-byte response limit
Dynamically scale the response buffer, up to a maximum of 1 MB.
Benjamin Gilbert [Tue, 3 Jun 2014 14:32:41 +0000 (10:32 -0400)]
hddtemp: Lift 32-device limit
Instead of building an array of fields and then walking it, split into
fields as we go.
Taras Chornyi [Mon, 19 Sep 2016 05:35:59 +0000 (08:35 +0300)]
dpdkstat: Addressed PR comments
1) Added missing option description
2) Replaced strerror with sstrerror
3) Do not return from helper code
4) Use generic collectd Interval implementation
5) Removed "\n" from log messages
Signed-off-by: Taras Chornyi <tarasx.chornyi@intel.com>
Rinigus [Sun, 18 Sep 2016 18:11:04 +0000 (21:11 +0300)]
parse_value_file: adding strstripnewline back
Rinigus [Sat, 17 Sep 2016 10:07:26 +0000 (13:07 +0300)]
use fgets in parse_value_file, fixes #1941
Igor Peshansky [Sat, 17 Sep 2016 02:56:16 +0000 (22:56 -0400)]
src/daemon/utils_time.c: Fix invalid strcpy position in format_rfc3339().
Igor Peshansky [Fri, 16 Sep 2016 16:03:35 +0000 (12:03 -0400)]
Plug a leak in Target:Set.
Florian Forster [Fri, 16 Sep 2016 08:50:34 +0000 (10:50 +0200)]
Merge branch 'pr/1918'
Florian Forster [Fri, 16 Sep 2016 07:37:57 +0000 (09:37 +0200)]
src/daemon/utils_time.c: Pass "struct tm *" to format_zone().
This is a partial revert of
e2cb258c7b6ce456f4119fd1454c85b479fa3e2d:
strptime() does not look the local timezone up itself but gets the
information from the "struct tm". If that is initialized with {0}, it
will always return the "+0000" time zone.
Pavel Rochnyack [Fri, 16 Sep 2016 02:58:44 +0000 (08:58 +0600)]
perl plugin: Renamed and documented "RegisterLegacyFlush" option.
Pavel Rochnyack [Thu, 11 Aug 2016 11:19:25 +0000 (17:19 +0600)]
perl plugin: Added 'flush' fallback
Pavel Rochnyack [Thu, 11 Aug 2016 10:01:52 +0000 (16:01 +0600)]
perl plugin: Changed pluginname form to allow single perl plugin flush. (Part 2, fixed _plugin_unregister_generic() function to match _plugin_register_generic_userdata().)
Pavel Rochnyack [Sat, 14 May 2016 21:51:36 +0000 (03:51 +0600)]
perl plugin: Fixed Collectd::plugin_call_all function name im DEBUG()/ERROR()
Pavel Rochnyack [Sat, 14 May 2016 21:42:28 +0000 (03:42 +0600)]
perl plugin: Mark thread as running to avoid deadlock moved from perl_shutdown() to c_ithread_destroy()
Pavel Rochnyack [Sat, 14 May 2016 17:14:30 +0000 (23:14 +0600)]
perl plugin: Changed pluginname form to allow single perl plugin flush.
Pavel Rochnyack [Sat, 14 May 2016 11:23:48 +0000 (17:23 +0600)]
perl plugin: Register perl plugins with use of 'userdata'.
Igor Peshansky [Thu, 15 Sep 2016 19:30:15 +0000 (15:30 -0400)]
Address more review comments:
- Repurpose rfc3339()/rfc3339nano() to return time in zulu format.
- Add formatted time examples to function comments.
- Clean up helper functions and add variable iniitalization.
Igor Peshansky [Thu, 15 Sep 2016 17:45:04 +0000 (13:45 -0400)]
Force use of local time in the postgresql plugin.
Update postgresql docs to reflect reality.
Igor Peshansky [Thu, 15 Sep 2016 15:08:44 +0000 (11:08 -0400)]
Address review comments:
- Repurpose rfc3339/rfc3339nano to use UTC.
- Add rfc3339_local/rfc3339nano_local for local time.
- Factor out common bits; saner helper functions.
- Update comments.
Florian Forster [Thu, 15 Sep 2016 08:10:30 +0000 (10:10 +0200)]
Merge branch 'pr/1792'
Florian Forster [Thu, 15 Sep 2016 06:59:16 +0000 (08:59 +0200)]
src/daemon/common.[ch]: Reimplement strjoin().
This new implementation truncates fields rather than aborting when there
is more space in the output buffer. Since strjoin() is mostly used to
fill plugin and type instances, which are otherwise usually filled with
sstrncpy(), i.e. also truncate the string rather than erroring out.
The unit test has also been rewritten to test the new functionality.
The new functions have been formatted with clang-format.
Fixes: #1792
Florian Forster [Wed, 14 Sep 2016 18:24:39 +0000 (20:24 +0200)]
hugepages plugin: Add "g_" prefix to global variables.
Florian Forster [Wed, 14 Sep 2016 18:24:13 +0000 (20:24 +0200)]
hugepages plugin: Add myself to the list of authors.
Florian Forster [Tue, 13 Sep 2016 05:25:54 +0000 (07:25 +0200)]
hugepages plugin: Remove an unused variable.
Florian Forster [Mon, 5 Sep 2016 11:21:45 +0000 (13:21 +0200)]
hugepages plugin: Implement the "ValuesPages", "ValuesBytes" and "ValuesPercentage" options.
Florian Forster [Mon, 5 Sep 2016 09:59:46 +0000 (11:59 +0200)]
hugepages plugin: Use the "complex" config callback.
Florian Forster [Mon, 5 Sep 2016 09:56:04 +0000 (11:56 +0200)]
hugepages plugin: Parse page size from the directory name.
Florian Forster [Mon, 5 Sep 2016 09:22:39 +0000 (11:22 +0200)]
hugepages plugin: Refactor the read_hugepage_entry() function.
* Move static variables into the "entry_info" struct.
* Turn flag into an actual flag, rather than a counter.
* Close "fh" as soon as possible.
* Return early if flags != HP_HAVE_ALL.
* Remove dead code (d_name *always* contains a dash).
Florian Forster [Mon, 5 Sep 2016 08:35:22 +0000 (10:35 +0200)]
hugepages plugin: Don't use pathconf(_PC_NAME_MAX).
Since we allocate the buffer on the stack, this doesn't make sense:
Best case, the returned value is the same as the PATH_MAX define. Worst
case, the returned value is larger and we create a stack overflow.
Florian Forster [Mon, 5 Sep 2016 08:26:50 +0000 (10:26 +0200)]
hugepages plugin: Run clang-format.
Florian Forster [Wed, 14 Sep 2016 11:59:05 +0000 (13:59 +0200)]
Merge remote-tracking branch 'github/pr/1931'
Florian Forster [Wed, 14 Sep 2016 06:21:47 +0000 (08:21 +0200)]
Tree wide: Unify initialization of multi-value value lists.
Use struct initializers to initialize the array like so:
value_t values[] = {
/* ... */
};
Then initialize the value_list_t with:
vl.values = values;
vl.values_len = STATIC_ARRAY_SIZE (values);
Florian Forster [Wed, 14 Sep 2016 06:58:51 +0000 (08:58 +0200)]
contrib/examples/myplugin.c: Use a compound literal in the example plugin, too.
Florian Forster [Wed, 14 Sep 2016 06:19:41 +0000 (08:19 +0200)]
Tree wide: Use compound literals when dealing with value_t.
Florian Forster [Tue, 13 Sep 2016 20:27:34 +0000 (22:27 +0200)]
Merge branch 'collectd-5.6'
Conflicts:
src/collectd.conf.in
Florian Forster [Tue, 13 Sep 2016 20:26:31 +0000 (22:26 +0200)]
Merge branch 'collectd-5.5' into collectd-5.6
Florian Forster [Tue, 13 Sep 2016 19:42:07 +0000 (21:42 +0200)]
Merge remote-tracking branch 'github/pr/1930'
Florian Forster [Tue, 13 Sep 2016 18:52:58 +0000 (20:52 +0200)]
regex match: snprintf → ssnprintf
ssnprintf() ensures null termination, which is especially important when using "%s" in the format.
Igor Peshansky [Tue, 13 Sep 2016 18:17:32 +0000 (14:17 -0400)]
Address review comments:
- Fix match bug.
- Use sfree everywhere.
- Better variable names.
Florian Forster [Tue, 13 Sep 2016 08:50:40 +0000 (10:50 +0200)]
Merge remote-tracking branch 'github/pr/1929'
Florian Forster [Tue, 13 Sep 2016 08:44:46 +0000 (10:44 +0200)]
curl_json plugin: Skip unexpected non-map values.
Assume, for example, the config `Key "*/foo"`. This config expects JSON
in the form:
{
"bar": {
"foo": 1337
}
}
If the available JSON is instead:
{
"error_code": 0,
"bar": {
"foo": 1337
}
}
the code will take a look at the zero associated with "error_code" and
determine that a map (with key "foo") is expected instead. Previously
the code would continue, eventually calling `cj_get_type()` which
expects that `key->type` is a valid pointer, resulting in a segmentation
fault.
This patch does three things to ensure that this segmentation fault does
not happen again:
1. `cj_get_type()` checks its argument to make sure it is valid before
dereferencing any pointers.
2. In case a non-map is found when a map is expected, the code will
return instead of limping on.
3. After calling `cj_cb_inc_array_index()`, which may update the key,
make sure that it actually did and that key is valid now.
Fixes: #1896
Igor Peshansky [Mon, 12 Sep 2016 22:53:31 +0000 (18:53 -0400)]
Document MetaData.
Igor Peshansky [Mon, 12 Sep 2016 21:56:47 +0000 (17:56 -0400)]
Allow Match:Regex to match metadata.
Florian Forster [Mon, 12 Sep 2016 19:05:39 +0000 (21:05 +0200)]
Merge remote-tracking branch 'github/pr/1922'
John Conroy [Wed, 13 Jul 2016 21:03:11 +0000 (17:03 -0400)]
Truncate strjoin arguments if > DATA_MAX_NAME_LEN
If strjoin() runs out of buffer space when joining strings, use the
remainder of available space rather than skipping additional strings
Reworked return() to avoid extra strlen() call
Florian Forster [Mon, 12 Sep 2016 18:22:35 +0000 (20:22 +0200)]
Merge remote-tracking branch 'github/pr/1915'
Florian Forster [Mon, 12 Sep 2016 18:19:57 +0000 (20:19 +0200)]
src/utils_format_graphite.c: Re-insert blank line.
Igor Peshansky [Mon, 12 Sep 2016 17:07:52 +0000 (13:07 -0400)]
Address more review comments:
- Locking fixes,
- Leak fixes.
Michael Leinartas [Mon, 12 Sep 2016 17:20:16 +0000 (12:20 -0500)]
Improve if statement readability with braces
Michael Leinartas [Mon, 12 Sep 2016 15:20:34 +0000 (10:20 -0500)]
Update collectd.conf manpage and address style issues
Taras Chornyi [Mon, 12 Sep 2016 15:18:40 +0000 (16:18 +0100)]
dpdkstats: Added errors and filter_result types.
Map flow and mac related counters.
Minor types fixes.
Change-Id: Ib35ce61eb3dd1d602cf901e4bab677f9f65398a3
Signed-off-by: Taras Chornyi <tarasx.chornyi@intel.com>
Florian Forster [Mon, 12 Sep 2016 13:56:28 +0000 (15:56 +0200)]
Merge remote-tracking branch 'github/pr/1927'
Florian Forster [Mon, 12 Sep 2016 12:16:00 +0000 (14:16 +0200)]
collectd.conf(5): Document the semantics of the "TypesDB" option in more detail.
Fixed: #1241
Florian Forster [Mon, 12 Sep 2016 09:49:52 +0000 (11:49 +0200)]
contrib/migrate-4-5.px: Don't convert "ps_code" and "ps_data" to derive.
Fixes: #1687
Michael Leinartas [Thu, 8 Sep 2016 19:00:35 +0000 (14:00 -0500)]
Add missing option to write_graphite example
Signed-off-by: Florian Forster <octo@collectd.org>
Florian Forster [Mon, 12 Sep 2016 07:33:47 +0000 (09:33 +0200)]
varnish plugin: Fix syntax error.
Florian Forster [Mon, 12 Sep 2016 07:26:26 +0000 (09:26 +0200)]
turbostat plugin: Use parse_value_file().
Florian Forster [Mon, 12 Sep 2016 07:20:18 +0000 (09:20 +0200)]
thermal plugin: Use parse_value_file().
Florian Forster [Mon, 12 Sep 2016 07:06:20 +0000 (09:06 +0200)]
entropy plugin: Use parse_value_file().
Florian Forster [Mon, 12 Sep 2016 07:02:26 +0000 (09:02 +0200)]
cpufreq plugin: Use parse_value_file().
Florian Forster [Mon, 12 Sep 2016 06:47:16 +0000 (08:47 +0200)]
conntrack plugin: Use parse_value_file().
Florian Forster [Mon, 12 Sep 2016 06:34:09 +0000 (08:34 +0200)]
battery plugin: Replace getvalue() with parse_value_file().
Florian Forster [Fri, 9 Sep 2016 14:50:06 +0000 (16:50 +0200)]
src/daemon/common.[ch]: Implement parse_value_file().
Fixes: #1914
Florian Forster [Mon, 12 Sep 2016 05:58:29 +0000 (07:58 +0200)]
Merge remote-tracking branch 'github/pr/1920'
Florian Forster [Mon, 12 Sep 2016 05:56:26 +0000 (07:56 +0200)]
Merge remote-tracking branch 'github/pr/1924'
Florian Forster [Mon, 12 Sep 2016 05:53:01 +0000 (07:53 +0200)]
Merge remote-tracking branch 'github/pr/1923'
Florian Forster [Mon, 12 Sep 2016 05:51:47 +0000 (07:51 +0200)]
battery plugin: Reimplement sysfs_file_to_buffer() using read_file_contents().
Igor Peshansky [Sun, 11 Sep 2016 22:54:48 +0000 (18:54 -0400)]
Address review comments:
- Add meta_data_as_string,
- Use utility function.
- Leak fixes.
- Minor optimization.
Igor Peshansky [Mon, 12 Sep 2016 01:04:17 +0000 (21:04 -0400)]
Address review comments:
- Use a global to allow config-less operation.
- Use utility function.
Igor Peshansky [Sun, 11 Sep 2016 23:39:58 +0000 (19:39 -0400)]
Address review comments:
- Code simplifications,
- Leak fixes,
- ERROR -> WARNING.
Florian Forster [Sun, 11 Sep 2016 19:35:34 +0000 (21:35 +0200)]
Tree wide: Don't document the user_data_t holds user data.
Florian Forster [Sun, 11 Sep 2016 19:21:56 +0000 (21:21 +0200)]
Tree wide: Use user_data_t compound literal where appropriate.
Florian Forster [Sun, 11 Sep 2016 18:31:31 +0000 (20:31 +0200)]
apache plugin: End statements with semi-colons.
If only I knew why this wasn't considered a syntax error …
Florian Forster [Sun, 11 Sep 2016 08:01:10 +0000 (10:01 +0200)]
Bump version to 5.6.0; Update ChangeLog.
Igor Peshansky [Fri, 9 Sep 2016 17:30:15 +0000 (13:30 -0400)]
Document Plugin:WriteLog configuration.
Igor Peshansky [Thu, 8 Sep 2016 15:39:50 +0000 (11:39 -0400)]
Add optional configuration to write_log; allow writing JSON.
Igor Peshansky [Tue, 6 Sep 2016 19:41:52 +0000 (15:41 -0400)]
Document MetaData and DeleteMetaData.
Igor Peshansky [Fri, 2 Sep 2016 21:47:23 +0000 (17:47 -0400)]
Allow replacing within and deleting metadata keys.