# This code is executed after loading the plugin to register it with collectd.
plugin_register (TYPE_LOG, 'myplugin', 'my_log');
plugin_register (TYPE_NOTIF, 'myplugin', 'my_notify');
-plugin_register (TYPE_DATASET, 'myplugin', $dataset);
+plugin_register (TYPE_DATASET, 'mytype', $dataset);
plugin_register (TYPE_INIT, 'myplugin', 'my_init');
plugin_register (TYPE_READ, 'myplugin', 'my_read');
plugin_register (TYPE_WRITE, 'myplugin', 'my_write');
# do the magic to read the data:
# the number of values has to match the number of data sources defined in
- # the registered data set
+ # the registered data set. The type used here (in this example:
+ # "mytype") must be defined in the types.db, see types.db(5) for
+ # details, or registered as "TYPE_DATASET".
$vl->{'values'} = [ rand(65535) ];
$vl->{'plugin'} = 'myplugin';
+ $vl->{'type'} = 'mytype';
# any other elements are optional
# dispatch the values to collectd which passes them on to all registered
- # write functions - the first argument is used to lookup the data set
- # definition (it is strongly recommended to use a type defined in the
- # types.db file)
- plugin_dispatch_values ('myplugin', $vl);
+ # write functions
+ plugin_dispatch_values ($vl);
# A false return value indicates an error and the plugin will be skipped
# for an increasing amount of time.
if (key_fields_num != value_fields_num)
{
ERROR ("protocols plugin: Number of fields in keys and values lines "
- "dont match: %i vs %i.",
+ "don't match: %i vs %i.",
key_fields_num, value_fields_num);
break;
}
print_to_socket (fh, "%i Value%s found\n",
(int) number, (number == 1) ? "" : "s");
for (i = 0; i < number; i++)
+ {
print_to_socket (fh, "%u %s\n", (unsigned int) times[i], names[i]);
+ sfree(names[i]);
+ }
+ sfree(names);
+ sfree(times);
+
return (0);
} /* int handle_listval */