1 Collecting per-lease data

To collect per-lease data, you first have to specify the new type of data (or ``stat'') you will be collecting in your probe's constructor. This is done using the create_lease_stat method in AccountingDataCollection (which is stored in an accounting attribute in all probes). For example, let's assume you want to keep track of an admittedly silly statistic: whether the lease's identifier is odd or even. You could create a stat called Odd or even?:

from haizea.core.accounting import AccountingProbe

class MyProbe(AccountingProbe):
    
    def __init__(self, accounting):
        AccountingProbe.__init__(self, accounting)
        self.accounting.create_lease_stat("Odd or even?")

To set the value of this stat, you must use the set_lease_stat method in AccountingDataCollection. For this stat, it would make sense to call this method from the at_lease_request method in the probe:

def at_lease_request(self, lease):
    if lease.id \% 2 == 1:
        value = "odd"
    else:
        value = "even"
    self.accounting.set_lease_stat("Odd or even?", lease.id, value)

If you run Haizea with this probe, and then use haizea-convert-data to print the per-lease data collected by the probes, there will be an additional column titled Odd or even? in the generated CSV file.

Borja Sotomayor 2009-12-17