gpt4 book ai didi

python - Collectd - Perl/Python 插件 - 注册功能不起作用

转载 作者:行者123 更新时间:2023-11-28 18:28:05 35 4
gpt4 key购买 nike

想问一下Collectd的插件Perl和Python及其注册功能。

我尝试在 Perl(以及 Python)中编写插件代码,设置读写函数,然后将它们注册到 Collectd(plugin_register 函数)中。在所有情况下它都不起作用。每次,日志都会显示:

Found a configuration for the "my_plugin" plugin, but the plugin isn't loaded or didn't register a configuration callback. severity=warning

我在 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 配置在 collectd.conf 文件中(从您的情况来看,这似乎并不重要)日志文件)。

将你的 foobar.pm 模块放在 /path/to/perl/plugins/Collectd/Plugins/FoorBar.pm 匹配它您指定的路径...(匹配插件名称和插件 pm 文件的大小写)。

LoadPlugin perl
# ...
<Plugin perl>
IncludeDir "/path/to/perl/plugins"
BaseName "Collectd::Plugins"
EnableDebugger ""
LoadPlugin "FooBar"

<Plugin FooBar>
Foo "Bar"
</Plugin>
</Plugin>

关于python - Collectd - Perl/Python 插件 - 注册功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39768848/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com