Я хотел бы спросить о плагинах Collectd Perl и Python и их регистрационных функциях.Collectd - плагин Perl/Python - функции регистрации не работают
Я попытался подключить плагин в Perl (а также в Python), настроить функции чтения и записи и после этого зарегистрировать их в функции Collectd (plugin_register). Во всех случаях он не работал. Каждый раз, журналы показывают:
Найдено конфигурацию для «my_plugin» плагин, но плагин не загружен или не зарегистрировать конфигурации обратного вызова. серьезность = предупреждение
Я загружаю свой плагин в perl.conf.
Ниже приведен пример плагина, который находится непосредственно из документации Collectd.perl. Такой плагин, как и мой плагин, имеет тот же результат.
package Collectd::Plugins::FooBar;
use strict;
use warnings;
use Collectd qw(:all);
sub foobar_read
{
my $vl = { plugin => 'foobar', type => 'gauge' };
$vl->{'values'} = [ rand(42) ];
plugin_dispatch_values ($vl);
return 1;
}
sub foobar_write
{
my ($type, $ds, $vl) = @_;
for (my $i = 0; $i < scalar (@$ds); ++$i) {
print "$vl->{'plugin'} ($vl->{'type'}): $vl->{'values'}->[$i]\n";
}
return 1;
}
sub foobar_match
{
my ($ds, $vl, $meta, $user_data) = @_;
if (matches($ds, $vl)) {
return FC_MATCH_MATCHES;
} else {
return FC_MATCH_NO_MATCH;
}
}
plugin_register (TYPE_READ, "foobar", "foobar_read");
plugin_register (TYPE_WRITE, "foobar", "foobar_write");
fc_register (FC_MATCH, "foobar", "foobar_match");
Я использую команду 'LoadPlugin name_of_my_plugin'. Потому что это мой собственный плагин, поэтому мне нужно каким-то образом зарегистрировать функции/метод, но я не был успешным в этом, несмотря на инструкции по документации. – Martin
Работает ли он сейчас? – blackpen
Несчастливо нет. С плагином DBI и базой данных Postgres он заканчивается в этом журнале: 'dbi plugin: cdbi_connect_database: dbi_driver_open_r (Pg) не удалось. severity = err' – Martin