#! /usr/bin/perl use strict ; use warnings ; package Probe::Dockr ; use base 'Probe' ; sub ITEMS { [ { name => 'dockr_cnt' , kind => 'int' , args => [ 1 ] } ] } ; sub main { my $self = shift ; my $itms = shift ; # items to probe : [ item, ... ] my $clnt = shift ; # main::CLIENT my $prog = '/usr/bin/docker' ; my ( $err, $xit, $sig, @lines ) = Probe::Util::run_prog ( $prog, qw(ps -q) ) ; if ( $err ) { $_ -> perr ( $err ) for @$itms ; } else { for my $item ( @$itms ) { my $name = $item -> name ; my $arg0 = $item -> args -> [ 0 ] ; my $cnt = scalar @lines ; my $val ; if ( $name eq 'dockr_cnt' ) { $val = abs ( $cnt - $arg0 ) ; OBB::TT ( ' item %s lines %s', $name, $val ) ; } $item -> set_val ( $val ) ; } } } 1 ;