1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
use v5.14;
use warnings;
use Test2::V0;
plan skip_all => "Not for this OS" unless $^O eq "linux";
use Net::Prometheus::ProcessCollector::linux;
sub _find_metric
{
my ( $name, @samples ) = @_;
( grep { $_->fullname eq $name } @samples )[0];
}
{
my $collector = Net::Prometheus::ProcessCollector::linux->new;
ok( defined $collector, '$collector is defined' );
my @samples = $collector->collect;
ok( scalar @samples, '$collector->collect gave some samples' );
my $metric = _find_metric( "process_cpu_seconds_total", @samples );
ok( $metric, 'found process_cpu_seconds_total' );
my $sample = $metric->samples->[0];
is( $sample->varname, "process_cpu_seconds_total", 'sample varname' );
is( $sample->labels, [], 'sample labels' );
ok( $sample->value > 0, 'sample value above zero' );
}
# overridden names
{
my $collector = Net::Prometheus::ProcessCollector::linux->new(
prefix => "prefix_process",
labels => [ label => "value" ],
);
my @samples = $collector->collect;
my $metric = _find_metric( "prefix_process_cpu_seconds_total", @samples );
ok( $metric, 'found process_cpu_seconds_total' );
my $sample = $metric->samples->[0];
is( $sample->labels, [ label => "value" ], 'sample labels' );
}
done_testing;
|