Am 17.04.2013 14:17, schrieb Dietmar Maurer:
>> Nowhere ;-) how about just return the counter values for the correct tap 
>> device
>> through API?
>>
>> So it is basically:
>> 1.) a wrapper from netX to correct tap
>> 2.) query tap counter inout / output values
>> 3.) allow to query this through API
>>
>> So it is at least possible to implement traffic account in external 
>> software. You
>> jsut have to query the API every X seconds and detect resets yourself. It 
>> acts
>> than basically like SNMP traffic counters in switches.
> 
> sounds reasonable.

Then let's go this way. It's much simpler than adding RRD.

So the question is should this be a completely new call or do you want
to add a new hash key to  sub vmstatus { ?

this could be

    my $netdev = PVE::ProcFSTools::read_proc_net_dev();
    foreach my $dev (keys %$netdev) {
        next if $dev !~ m/^tap([1-9]\d*)i/;
        my $vmid = $1;
        my $d = $res->{$vmid};
        next if !$d;

        $d->{netout} += $netdev->{$dev}->{receive};
        $d->{netin} += $netdev->{$dev}->{transmit};
    }

converted to:

    my $netdev = PVE::ProcFSTools::read_proc_net_dev();
    foreach my $dev (keys %$netdev) {
        next if $dev !~ m/^tap([1-9]\d*)i(\d+)/;
        my $vmid = $1;
        my $netid = $2;
        my $d = $res->{$vmid};
        next if !$d;

        $d->{netout} += $netdev->{$dev}->{receive};
        $d->{netin} += $netdev->{$dev}->{transmit};
        $d->{traffic}{'net'.$netid}{netout} = $netdev->{$dev}{receive};
        $d->{traffic}{'net'.$netid}{netin} = $netdev->{$dev}{transmit};
    }


Stefan
_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to