Florian Forster [Tue, 18 Aug 2009 19:38:01 +0000 (21:38 +0200)]
collectd.conf(5): Document the new `RandomTimeout' option.
Florian Forster [Tue, 18 Aug 2009 19:23:21 +0000 (21:23 +0200)]
rrdtool plugin: Optimize away the ‘random_timeout_mod’ variable.
Mariusz Gronczewski [Tue, 18 Aug 2009 19:18:06 +0000 (21:18 +0200)]
rrdtool plugin: Call rand(3) less often.
2009/8/18 Florian Forster <octo@verplant.org>:
> Hi Mariusz,
>
> On Mon, Aug 17, 2009 at 02:20:29AM +0200, Mariusz Gronczewski wrote:
>> i was thinking how to "spread out" writes to rrd files a bit, because
>> now its big spike every CacheTimeout or little smaller "square" on
>> graph if u use WritesPerSecond.
>
> in general I like your patch, thank you very much for posting it :)
> I have some doubts about calling rand() in such a busy place though,
> since getting random numbers is potentially costly. Also, rand(3) is not
> thread-safe, though I don't think that's really an issue for us.
Yeah good point, but that would be probably noticable on very slow
(like PIII 800 slow) machines with tons of rrd, and then machine would
run out of disk bandwidth first.
> Maybe a solution would be to add a ‘random_timeout’ member to the
> ‘rrd_cache_t’ struct, too. This member is then set when creating the
> entry and set again right after the values have been removed. That way
> rand(3) is only called once for each write instead of calling for every
> check.
Yeah, very good idea, i didnt thougth about that (well tbh. i didnt
looked much into "interiors" of rrdtool plugin). Ive implemented it in
attached patch, so far ive been testing it for about 1 hour and works
pretty well.
> As an interesting sidenote: With the above approach, the random write
> times are distributed “uniform”, i. e. every delay from 0 to max-1
> seconds has the same probability. With your code, I think the actual
> time a value is written follows a “normal” distribution (you know, that
> famous bell curve). So I'd expect the above approach to spread the value
> quicker.
Yup, exactly as u said, its much quicker like that.
Im wondering how config variable should be called, name
"RandomTimeout" dont mean anything useful ("random timeout of what?"),
maybe TimeoutSpread ? RandomizeTimeout ?
Mariusz Gronczewski [Mon, 17 Aug 2009 00:20:29 +0000 (02:20 +0200)]
Random write timeout for rrdtool plugin
Hi,
i was thinking how to "spread out" writes to rrd files a bit, because
now its big spike every CacheTimeout or little smaller "square" on
graph if u use WritesPerSecond. So ive written little patch which
"spreads out" writing by changing Cache timeout every time rrdtool
plugin finds data to save. Basically instead of moving data older than
CacheTimeout to write queue it moves it if its older than CacheTimeout
+- RandomTimeout. What it changes?
Without it, gathered data is "synchronised" with eachother, for
example (CacheTimeout = 600):
1.collectd starts
2. after 10 minutes, data from all plugins get "too old" and get
pushed into write queue and get saved
3. after another 10 minutes, same thing, all data "ages" at same time
and get saved in one big chunk
With it (RandomTimeout=300) it works like that
1. collectd starts
2. after 5 minutes some data (lets call it A) starts to go into write queue
3. after 10 minutes from start about 50% (on average) data is saved
(lets call it B)
4. finally, after 15 minutes, all "leftover" data gets saved (lets call it C)
5. next "cycle"
6. data A ages first (cos it was put to disk first) and like before,
some of it gets writen earlier, some of it gets written later)
7. after that data B ages and like before writes are spread over 10 mins
8. same with C
so first cycle (looking at i/o) looks like sinus, next 10 minute cycle
is same sinus but flattened a bit and so on (looks like fading sinus),
and after few cycles it gives pretty much same amount on writes per
sec, no ugly spikes.
Effect looks like that:
http://img24.imageshack.us/img24/7294/drrawcgi.png
(after few more h it will be more "smooth")
Regards
Mariusz
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Mon, 17 Aug 2009 06:32:55 +0000 (08:32 +0200)]
madwifi plugin: Signal an error in the read function when appropriate.
An error will be signaled to the daemon if querying all interfaces failed.
Querying an interface fails if all ioctls return an error.
Florian Forster [Sun, 16 Aug 2009 07:27:44 +0000 (09:27 +0200)]
madwifi plugin: Rename the antenna stats.
The first part of the type instance is already something like `ast_ant_rx' -
using `antenna%i' as the second part is therefore redundant. Thanks to Ondrej
for the pointer.
Florian Forster [Sun, 16 Aug 2009 07:21:05 +0000 (09:21 +0200)]
madwifi plugin: Unify ioctl error handling.
If an ioctl fails, a debug message is generated rather than an error message.
There are several types of interfaces manages by the madwifi driver, and not
all interfaces support all ioctls. Thanks to Ondrej for pointing this out.
Florian Forster [Sun, 16 Aug 2009 07:13:31 +0000 (09:13 +0200)]
madwifi plugin: Fix buffer handling around `readlink'.
readlink(2) doesn't null-terminate the buffer in any case. Thanks to Ondrej for
pointing this out.
Florian Forster [Thu, 13 Aug 2009 06:14:24 +0000 (08:14 +0200)]
Merge branch 'ff/genericjmx'
Florian Forster [Tue, 11 Aug 2009 14:44:22 +0000 (16:44 +0200)]
AUTHORS: Add Ondrej.
Florian Forster [Tue, 11 Aug 2009 14:29:28 +0000 (16:29 +0200)]
madwifi plugin: Add some assertions …
… to otherwise unchecked array indices.
Florian Forster [Tue, 11 Aug 2009 14:08:03 +0000 (16:08 +0200)]
madwifi plugin: Fix a few best practices.
Use `sstrncpy' and `ssnprintf' instead of the unsafe versions. Don't
specify array dimensions twice. Don't cast _Bool to int.
Florian Forster [Tue, 11 Aug 2009 11:24:04 +0000 (13:24 +0200)]
madwifi plugin: Rename the ‘DisableSysfs’ to ‘Source’.
Configurations like
DisableSysfs false
are confusing.
Ondrej Zajicek [Tue, 11 Aug 2009 09:44:28 +0000 (11:44 +0200)]
madwifi plugin: Plugin for detailed information from the MadWifi driver.
Hello
After some time i managed to make a new version of Madwifi plugin. The
main change is that it is possible to finely tune the set of monitored
statistics and just the most important statistics are monitored by
default. Also the number of new data types is reduced (by using type
instances).
Signed-off-by: Florian Forster <octo@verplant.org>
Florian Forster [Tue, 4 Aug 2009 11:08:56 +0000 (13:08 +0200)]
src/utils_cache.c: Don't tell the user about missing values.
This is bound to confuse users..
Florian Forster [Tue, 4 Aug 2009 11:02:57 +0000 (13:02 +0200)]
network plugin: Use the meta data to implement the `Forward' option.
Previously, a cache in the network plugin was used to keep track of
which values were received via the network in order to distinguish
between ``forwarded'' values and values that were received from
somewhere else.
The same cache was also used to avoid loops when forwarding packages by
keeping track of the highest timestamp that was sent by the plugin and
discard received data that was older or as old as that.
This information is not kept in the meta data of the global cache (what
is the last timestamp sent) and the meta data of the value list (was
this value list received via the network?). The cache that was
maintained in the network plugin has been removed.
Florian Forster [Tue, 4 Aug 2009 10:21:07 +0000 (12:21 +0200)]
src/utils_cache.[ch]: Make the `value_list_t *' const.
The struct is only needed to build the name (a string) anyway..
Florian Forster [Tue, 4 Aug 2009 09:05:02 +0000 (11:05 +0200)]
src/utils_cache.c: Free the meta data when removing a cache entry.
Florian Forster [Tue, 4 Aug 2009 08:54:17 +0000 (10:54 +0200)]
src/utils_cache.[ch]: Implement a meta-data interface for cached values.
This should make it possible to write stateful matches and similar nifty
stuff - at last \o/
Florian Forster [Tue, 4 Aug 2009 08:23:42 +0000 (10:23 +0200)]
src/common.h: Remove the `ds' argument from the `FORMAT_VL' macro.
Since `type' is now included in `value_list_t' the `data_set_t' is no
longer required.
Florian Forster [Tue, 4 Aug 2009 07:59:22 +0000 (09:59 +0200)]
src/collectd.conf.in: Fix the default class path of the java plugin.
Florian Forster [Mon, 3 Aug 2009 12:47:02 +0000 (14:47 +0200)]
contrib/GenericJMX.conf: Added a sample config file for the GenericJMX plugin.
Florian Forster [Mon, 3 Aug 2009 09:56:26 +0000 (11:56 +0200)]
java bindings: GenericJMX: Add support for more numeric classes.
Florian Forster [Sun, 2 Aug 2009 15:54:37 +0000 (17:54 +0200)]
java bindings: GenericJMX: Fix a couple of error messages.
Also renamed a variable to fit the naming schema.
Florian Forster [Sun, 2 Aug 2009 15:26:05 +0000 (17:26 +0200)]
java bindings: GenericJMX: Add support for "InstanceFrom".
This can be used to specify so called "properties" to include in the
plugin instance.
Florian Forster [Sun, 2 Aug 2009 14:50:22 +0000 (16:50 +0200)]
java bindings: GenericJMX: This first prototype version seems to do something.
Well, at least it's not throwing exceptions like mad..
Florian Forster [Sun, 2 Aug 2009 10:21:49 +0000 (12:21 +0200)]
java bindings: JMXMemory: Remove an annoying folding.
Florian Forster [Sun, 2 Aug 2009 10:18:30 +0000 (12:18 +0200)]
java bindings: Add first take at a `GenericJMX' plugin.
Florian Forster [Sun, 2 Aug 2009 10:17:05 +0000 (12:17 +0200)]
src/collectd.conf.in: java plugin: Use @prefix@ when building the example class path.
Florian Forster [Sun, 2 Aug 2009 10:16:42 +0000 (12:16 +0200)]
java bindings: DataSource: Add `DERIVE' and `ABSOLUTE'.
Florian Forster [Thu, 30 Jul 2009 07:05:08 +0000 (09:05 +0200)]
df plugin, AUTHORS: Add Paul.
Florian Forster [Thu, 30 Jul 2009 06:28:01 +0000 (08:28 +0200)]
df plugin: Fix some "best practices" that have been changed.
Paul Sadauskas [Wed, 29 Jul 2009 03:38:03 +0000 (21:38 -0600)]
Add option to collectd.conf
Paul Sadauskas [Thu, 30 Jul 2009 06:31:58 +0000 (08:31 +0200)]
collectd.conf(5): Add new config option.
Paul Sadauskas [Tue, 28 Jul 2009 19:15:56 +0000 (13:15 -0600)]
df plugin: Add option to report by mountpoint or devicename
Florian Forster [Wed, 22 Jul 2009 13:57:47 +0000 (15:57 +0200)]
match_empty_counter plugin: Match for zero counter values.
Florian Forster [Wed, 22 Jul 2009 07:55:21 +0000 (09:55 +0200)]
src/utils_cache.[ch]: Add uc_get_history[_by_name].
These two new functions can be used to get historical data of values in
the cache. This can be used to calculate floating averages, hysteresis
and a shipload of other aggregation and consolidation functions.
The current implementation is probably not yet perfect:
- If not enough values are available to satisfy the request, the buffer
will be enlarged and NaNs will be returned in the newly allocated
cells. The caller has no way to recognize this case.
- If a value is missing, no NaNs will be added to the cache. It's
unclear if this was desirable.
- The returned values are reversed, i. e. val[0] will be the newest
value, val[n-1] will be the oldest. Here, too, I'm unsure which way
is easier to comprehend / use. I went for this implementation because
it was easier to write.
Florian Forster [Sun, 19 Jul 2009 15:39:06 +0000 (17:39 +0200)]
Merge branch 'collectd-4.7'
Florian Forster [Sun, 19 Jul 2009 15:38:08 +0000 (17:38 +0200)]
ChangeLog: Fix a typo.
Florian Forster [Sun, 19 Jul 2009 11:04:20 +0000 (13:04 +0200)]
Bumped version to 4.7.2; Updated ChangeLog.
Florian Forster [Sun, 19 Jul 2009 11:00:20 +0000 (13:00 +0200)]
Merge branch 'collectd-4.6' into collectd-4.7
Conflicts:
ChangeLog
version-gen.sh
Florian Forster [Sat, 18 Jul 2009 14:36:44 +0000 (16:36 +0200)]
Bumped version to 4.6.4; Updated ChangeLog.
Florian Forster [Wed, 15 Jul 2009 09:11:12 +0000 (11:11 +0200)]
Merge branch 'collectd-4.7'
Florian Forster [Wed, 15 Jul 2009 09:10:19 +0000 (11:10 +0200)]
Merge branch 'collectd-4.6' into collectd-4.7
Conflicts:
src/memcached.c
Florian Forster [Wed, 15 Jul 2009 08:09:48 +0000 (10:09 +0200)]
src/configfile.c: Warn if an unexpected block is found.
If the `snmp' plugin isn't loaded (but a configuration exists), no
warning is printed because there are only blocks in the SNMP
configuration..
Florian Forster [Sun, 12 Jul 2009 09:03:07 +0000 (11:03 +0200)]
build.sh, version-gen.sh: Remove bashisms.
Thanks to Peter Bray for pointing them out.
Florian Forster [Sat, 11 Jul 2009 12:59:55 +0000 (14:59 +0200)]
src/collectd.conf.in: Fix a typo in tokyotyrant's sample config.
Florian Forster [Sat, 11 Jul 2009 12:59:21 +0000 (14:59 +0200)]
Merge branch 'ps/tokyotyrant'
Florian Forster [Sat, 11 Jul 2009 12:57:19 +0000 (14:57 +0200)]
collectd.conf(5): Improved markup of the tokyotyrant documentation.
Florian Forster [Sat, 11 Jul 2009 12:32:25 +0000 (14:32 +0200)]
.gitignore: Update the file.
The pattern `Makefile.in' will match `src/Makefile.in' and others,
because the pattern does not contain a match.
`/configure' will only match the configure script in the base directory
due to special syntax.
`.libs/' matches only directories named `.libs', special syntax again.
For more information see the `gitignore(5)' manual page. The syntax used
corresponds to Git 1.6.
Florian Forster [Wed, 8 Jul 2009 16:09:46 +0000 (18:09 +0200)]
tokyotyrant plugin: Lookup service names (port names) and minor fixes.
Florian Forster [Wed, 8 Jul 2009 12:07:49 +0000 (14:07 +0200)]
Build system: Improve detection of the tokyotyrant library.
Florian Forster [Wed, 8 Jul 2009 09:55:33 +0000 (11:55 +0200)]
src/utils_cache.c: `ce' *is* written to in `c_avl_remove'.
Therefore we should definitely free it.
Matthew Sporleder [Wed, 8 Jul 2009 09:00:02 +0000 (11:00 +0200)]
src/collectd.conf.in: Fix a typo.
Florian Forster [Wed, 8 Jul 2009 08:51:28 +0000 (10:51 +0200)]
src/utils_cache.c: uc_check_timeout: Don't free a `ce' from the previous iteration.
This may habe been a cause of the reported assertion failure, too.
Paul Sadauskas [Wed, 8 Jul 2009 08:49:23 +0000 (10:49 +0200)]
src/utils_cache.c: Add a missing `continue'.
tokkee on IRC & I think we found a bug with utils_cache.c. The uc_check_timeout
function is missing a continue after the "uninteresting" service check, that
causes a key to be null.
This probably caused an assertion failure in cache_compare as reported by
Mariusz.
Florian Forster [Tue, 7 Jul 2009 17:11:57 +0000 (19:11 +0200)]
tokyotyrant plugin: Make DB handle `static'.
Paul Sadauskas [Tue, 7 Jul 2009 16:42:30 +0000 (18:42 +0200)]
.gitignore: Add some *.o files.
Paul Sadauskas [Mon, 6 Jul 2009 20:15:29 +0000 (14:15 -0600)]
tokyotyrant plugin: Don't need to pass the db handle around, its global.
Paul Sadauskas [Mon, 6 Jul 2009 20:02:46 +0000 (14:02 -0600)]
tokyotyrant plugin: Only connect once.
Paul Sadauskas [Mon, 6 Jul 2009 19:50:49 +0000 (13:50 -0600)]
tokyotyrant plugin: Handle port config param as a string
Paul Sadauskas [Mon, 6 Jul 2009 18:22:22 +0000 (12:22 -0600)]
Add some documentation for tokyotyrant to the collectd.conf manpage
Florian Forster [Mon, 6 Jul 2009 20:31:28 +0000 (22:31 +0200)]
cpu plugin: Fix a typo.
Florian Forster [Mon, 6 Jul 2009 16:57:54 +0000 (18:57 +0200)]
src/utils_threshold.c: Change the percentage code so it works with the DataSource option.
The percentage code used to *always* check the first data source. With this
patch, the code honors the `DataSource' option again, checking only the
configured data sources if applicable.
Florian Forster [Mon, 6 Jul 2009 16:24:20 +0000 (18:24 +0200)]
collectd.conf(5): Document the new `Percentage' option.
Florian Forster [Mon, 6 Jul 2009 16:16:30 +0000 (18:16 +0200)]
src/utils_threshold.c: Fix a typo.
Florian Forster [Mon, 6 Jul 2009 16:15:47 +0000 (18:15 +0200)]
src/utils_threshold.c: Add a percent sign to the minimum value, too.
Andrés J. Díaz [Mon, 6 Jul 2009 15:53:03 +0000 (17:53 +0200)]
src/utils_threshold.c: Percentage support in thresholds
Hi all!
I attach a patch to add percentage support in thresholds, like this example:
<Threshold>
<Type df>
WarningMax 90
Percentage true
</Type>
</Threshold>
The percentage option works like collectd-nagios, that is, calculate the
percentage of the value of the first DS over the total. For df plugin,
for example,
calculate the percentage of the "used" DS.
Bugs and suggestions are welcome :)
Enjoy!
Regards,
Andres
Florian Forster [Mon, 6 Jul 2009 14:51:55 +0000 (16:51 +0200)]
Update README and add Paul to the AUTHORS file.
Paul Sadauskas [Sat, 20 Jun 2009 21:38:28 +0000 (15:38 -0600)]
Fix a bug with recording of port
Port was getting written to plugin_instance as "1978.00000", because
apparently that's the value returned by the config.
Paul Sadauskas [Sat, 20 Jun 2009 20:50:36 +0000 (14:50 -0600)]
Changes suggested by Sebastian Harl.
* Separate Host and Port in config, report Host as hostname, and Port as
plugin instance.
* Submit before closing connection.
* Else-case in config, in case of invalid config params.
* Flounder around at using pkg-config in configure.in
* Remove forward declarations.
* Include plugin in config summary.
Paul Sadauskas [Thu, 18 Jun 2009 19:39:11 +0000 (13:39 -0600)]
Plugin for monitoring TokyoTyrant
This plugin monitors the record count and file size of the configured
tokyocabinet server.
TokyoTyrant: http://tokyocabinet.sourceforge.net/tyrantdoc/
Amit Gupta [Mon, 6 Jul 2009 11:07:00 +0000 (13:07 +0200)]
memcached plugin: Pass `ai_hints' to `getaddrinfo'.
Florian Forster [Mon, 6 Jul 2009 11:45:41 +0000 (13:45 +0200)]
Merge branch 'collectd-4.7'
Florian Forster [Mon, 6 Jul 2009 11:45:32 +0000 (13:45 +0200)]
Merge branch 'collectd-4.6' into collectd-4.7
Sebastian Harl [Mon, 22 Jun 2009 18:24:20 +0000 (20:24 +0200)]
bindings/java/Makefile.am: Fully support $DESTDIR.
Sebastian Harl [Sat, 6 Jun 2009 20:13:03 +0000 (22:13 +0200)]
src/Makefile: Link the ping plugin against libm.
The plugin now uses sqrt() which is provided by the math lib.
Sebastian Harl [Mon, 22 Jun 2009 14:02:24 +0000 (16:02 +0200)]
collectd2html.pl: Added --recursive command line option.
This option may be used to recursively scan the specified directory for RRD
files. This way, the script works reasonably well with collectd 4.
Thanks to 'ABL <abl@xxx.lt>' for providing an initial patch in Debian bug
#482185.
Ivan Shmakov [Wed, 21 May 2008 10:40:04 +0000 (17:40 +0700)]
collectd2html.pl: Allow for --imgformat to be passed to rrdtool.
This was reported as Debian bug #482185.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Florian Forster [Wed, 1 Jul 2009 14:59:56 +0000 (16:59 +0200)]
rrdcached plugin: Fix a typo.
Florian Forster [Wed, 1 Jul 2009 14:59:28 +0000 (16:59 +0200)]
network plugin: Cast data sources to their respective types.
Florian Forster [Wed, 1 Jul 2009 14:58:52 +0000 (16:58 +0200)]
Various plugins: Fix formatstring errors.
Florian Forster [Wed, 1 Jul 2009 14:56:56 +0000 (16:56 +0200)]
perl plugin: Improve handling of DERIVE and ABSOLUTE data source types.
Florian Forster [Wed, 1 Jul 2009 14:56:33 +0000 (16:56 +0200)]
java plugin: Improve handling of DERIVE and ABSOLUTE data source types.
Florian Forster [Wed, 1 Jul 2009 14:55:38 +0000 (16:55 +0200)]
csv plugin: Improve handling of DERIVE and ABSOLUTE data source types.
Florian Forster [Wed, 1 Jul 2009 14:10:26 +0000 (16:10 +0200)]
collectd-perl(5): Add the DERIVE and ABSOLUTE data source types.
Florian Forster [Wed, 1 Jul 2009 13:14:27 +0000 (15:14 +0200)]
gmond plugin: Add the DERIVE and ABSOLUTE data source types.
Florian Forster [Wed, 1 Jul 2009 12:54:55 +0000 (14:54 +0200)]
couchdb plugin: Add the DERIVE and ABSOLUTE data source types.
Florian Forster [Wed, 1 Jul 2009 12:54:13 +0000 (14:54 +0200)]
src/utils_cmd_putval.c: Use `parse_values'.
Florian Forster [Wed, 1 Jul 2009 12:53:50 +0000 (14:53 +0200)]
snmp plugin: Use `parse_value' instead of using a separate function here.
Florian Forster [Wed, 1 Jul 2009 09:18:52 +0000 (11:18 +0200)]
src/plugin.c: Introduce the `DS_TYPE_TO_STRING' macro.
Florian Forster [Wed, 1 Jul 2009 12:50:24 +0000 (14:50 +0200)]
src/common.c: Rewrite `parse_value'.
Florian Forster [Wed, 1 Jul 2009 09:01:58 +0000 (11:01 +0200)]
src/utils_cache.c: Add the DERIVE and ABSOLUTE data source types.
Florian Forster [Wed, 1 Jul 2009 09:00:32 +0000 (11:00 +0200)]
src/plugin.h: Use `int64_t' for `derive_t' and `uint64_t' for `absolute_t'.
Florian Forster [Wed, 1 Jul 2009 08:22:42 +0000 (10:22 +0200)]
network plugin: Add the DERIVE and ABSOLUTE data source types.
Florian Forster [Wed, 1 Jul 2009 13:39:11 +0000 (15:39 +0200)]
gmond plugin: Use `strtoull' to parse counter values.
Instead of `strtoll'.
Florian Forster [Wed, 1 Jul 2009 12:56:17 +0000 (14:56 +0200)]
src/common.c: More reliable error reporting in `parse_values'.
Mariusz Gronczewski [Wed, 1 Jul 2009 07:14:29 +0000 (09:14 +0200)]
Introduce the DERIVE and ABSOLUTE data source types.
Hi,
i've updated my patch to 4.7.0, most of "data input" plugins (curl, java, exec,
perl, tail, couchdb) should work with derive. In case of couchdb and curl, if u
use absolute DS you can only "Set", no "Inc" or "Add" coz obviously that
wouldn't make much sense with it. Other plugins can be "enabled" globally to
use derive by changing "COUNTER" to "DERIVE" in types.db but that way is ugly
(but makes sense in some cases, like when u have lot of tunnels or ppp
interfaces) and either needs converting or recreating rrd files.
Regards
Mariusz
---
Hi,
ive been running my patch with 4.7.1, found a minor bug, but after repairing
that i didnt had any problems with it on my servers, im including patch
(against 4.7.1 from webpage),
Regards,
XANi
Florian Forster [Sat, 27 Jun 2009 11:19:53 +0000 (13:19 +0200)]
configure.in: Add -rpath to JAVA_LDFLAGS.
Florian Forster [Sat, 27 Jun 2009 10:53:34 +0000 (12:53 +0200)]
src/plugin.[ch]: Add meta data to value_list_t.