- $v{'type_instance'} = $val;
- $v{'values'} = [ $parts[5] * ($parts[6] - $parts[7]), $parts[5] * $parts[7] ];
- plugin_dispatch_values('df', \%v);
- }
+ @parts = split(/ +/, `$vzctl exec $veid cat /proc/loadavg`);
+ $v{'values'} = [ $parts[0], $parts[1], $parts[2] ];
+ plugin_dispatch_values(\%v);
+}
+
+sub processes_read {
+ my $veid = shift;
+ my $name = shift;
+ my ($key, $val, @lines);
+ my %v = _build_report_hash($name);
+
+ my $ps_states = { 'paging' => 0, 'blocked' => 0, 'zombies' => 0, 'stopped' => 0,
+ 'running' => 0, 'sleeping' => 0 };
+ my $state_map = { 'R' => 'running', 'S' => 'sleeping', 'D' => 'blocked',
+ 'Z' => 'zombies', 'T' => 'stopped', 'W' => 'paging' };
+
+ $v{'plugin'} = 'processes';
+ delete $v{'plugin_instance'};
+ $v{'type'} = 'ps_state';
+
+ @lines = map { (split)[2] } split(/\n/, `$vzctl exec $veid cat '/proc/[0-9]*/stat'`);
+ foreach $key (@lines) {
+ ++$ps_states->{$state_map->{$key}};
+ }