我正在尝试在普罗米修斯量规上添加标签。使用set方法可以很好地工作,但似乎我无法正确使用set_function方法。
结果是我只是在使用set_function方法的地方看不到量规。
结果(清理后)如下:
# HELP Test Test help
# TYPE Test gauge
期望第三行显示“ Test {color =“ red”} 123“
Pastebin输入代码。
#!/usr/bin/env perl
use Net::Prometheus;
my $client = Net::Prometheus->new;
$client->new_gauge(name => "Test", help => "Test help", labels => [qw/color/])->set_function('red', sub { return 123 });
print $client->render;
不确定我是在做错什么还是错误?
普罗米修斯new_gauge->new_function()
方法
设置
$ gauge-> set([@label_values],$ value)
$ child-> set($ value)设置仪表的当前值。
如果仪表已定义了任何标签,则必须给出它们的值 首先。
设置功能
$ gauge-> set_function([@label_values],$ func)
$ child-> set_function($ func)设置返回值的回调函数 量规。如果量规已贴标签,则每个标签组合 需要自己的功能。
被调用时,该函数将不传递任何参数,并且是预期的 返回单个值
答案 0 :(得分:3)
我不确定这是否是Net::Prometheus的预期方法,但是创建一个量规,设置一个值然后设置一个功能对我来说是可行的:
my $c = Net::Prometheus->new;
my $g = $c->new_gauge(name=>'Test',help=>'help',labels=>['color']);
$g->set('red',1);
$g->set_function('red',sub { warn 'Getter called'; 123 });
print $c->render
此输出
Getter called at ...
# HELP Test help
# TYPE Test gauge
Test{color="red"} 123
我认为文档对此可能会更清楚。
此问题已在0.06 release中解决。