Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

There are two types of accounting parameters:

  1. Resource parameters to enable or disable the accounting of resource usage in Abiquo

  2. Configuration parameters to change the configuration of accounting

This page describes the configuration parameters and how to change them.

...

You can set these configuration parameters in the kinton_accounting.accounting_parameters table.

Name

Default

value

Description

AccountingEnabled

1

Controls if the accounting functionality is active or not.

0 or no parameter means do not calculate rows to add into the accounting_event_detail table. A non-zero value means that the accounting process is active.

DeleteRegEventsUseSPParam

0

Controls if DeleteOldRegisteredEvents uses its parameter value instead of DeleteRegEventsDeleteHours to control the age of data in accounting_event master tables.
Default value is 0, using DeleteRegEventsDeleteHours as record maximum age.

DeleteRegEventsDeleteHours

26280

This controls the number of hours worth of 'old' data that should be held in the accounting_event_... tables.

When DeleteOldRegisteredEvents is run, it will remove any rows from the tables which are inactive and older than the specified number of hours.

The default value of 26280 hours means that data is held for approximately 3 years by default (three years of 365 days).

AccountPeriodSize

HOUR

Controls the size of the aggregated account period of the accounting_event_detail table.

It may be one of the following values: HOUR, DAY, WEEK, MONTH. If the value is bad or missing, the default value is used.

AccountPeriodGranularity

HOUR

Controls the granularity of an accounting period, i.e. how many resource units are recorded. For example:

  • if account period = DAY and granularity = HOUR, then for a single CPU VM, Abiquo would record 24 resource units for the period;

  • if account period = DAY and granularity = DAY, then Abiquo would record 1 resource unit.

Possible values are HOUR, DAY, WEEK and MONTH. If the value is bad or missing, the default value is used.

MaximumPeriodsToFirstInit

1

This parameter is only used when accounting_event_detail is empty. It determines how many previous accounting periods will be used to populate the accounting initially.

The default value is 1, which means that accounting data will be generated from the last period.

However, for existing installations this value can be adjusted to ensure that accounting is generated for any previous number of hours, days, weeks, or months, depending on the account period size.

The minimum number of periods is 1, and the maximum is 720. Values outside of this range will use the default value of 1.

MaximumPeriodsToProcess

24

This parameters controls how many periods will be processed in each call to the UpdateAccounting stored procedure.

This setting ensures a degree of quality of service for the DBMS, minimizing the resource impact of recovering missed accounting data.

The default value is 24, which would process 1 day of accounting data, assuming the default settings for other parameters.

The minimum number of periods to process is 1, and the maximum is 720 - if a value outside of this range is supplied, then the default value of 24 is used.

Consolidation-time-sensitivity-secs

30

Abiquo registers an accounting event with the desired values for each configuration change.

The accounting consolidation process will apply the maximum values found in a period, even if they were only registered for a short time, for example, because of an error.

This parameter will make the consolidation process ignore all accounting events that were only active for a small user-defined amount of time.The default value is 30 seconds, which should be enough to skip short events

Change the accounting period

To change the accounting period or other accounting parameters in an existing system, do these steps: 

  1. Backup the accounting_event_detail table.

  2. Delete the existing content of the accounting_event_detail table.

  3. Change the accounting parameters to the desired values. Set MaximumPeriodsToFirstInit to ensure old data is accounted correctly.

  4. Monitor the content of accounting_event_detail to ensure the generated data meets your needs. If not, then repeat from step 2.

Set the account period size

...

You can set the accounting period size parameter in the accounting_parameters table.

Parameter

Default value

Possible values

Description

AccountPeriodSize

HOUR

HOUR

DAY

WEEK

MONTH

Controls the size of the aggregated account period of the accounting_event_detail table.

If the value is bad or missing, the default value of 1 hour is used.


For example, to change the accounting period to a day.

Code Block
UPDATE accounting_parameters SET paramValue="DAY" WHERE paramName="AccountPeriodSize";

...

The minimum period of usage is always determined by the accounting period:

  • If accounting period = DAY and granularity = HOUR, then for a single CPU VM, Abiquo would record 24 resource units for a day record. So this could represent a charge for 24 hours of vCPU usage.

  • If accounting period = DAY and granularity = DAY, then Abiquo will record 1 resource unit. So this could represent a charge for 1 day of vCPU usage.

You can set the granularity parameter in the accounting_parameters table.


Default value

Possible values

Description

AccountPeriodGranularity

HOUR

HOUR

DAY

WEEK

MONTH

Granularity of the resource units within an accounting period.

If the value is bad or missing, the default value is used.

The granularity must be smaller than the accounting period and the accounting period must be divisible by the granularity.

The following table shows compatible periods and granularities. Abiquo uses calendar months, so week granularity is not compatible with month.

 




Period

Hour

Day

Week

Month

Granularity

 

 

 




Hour

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

Day

 


(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

Week

 

 

(tick)

 

Month

 

 

 

(tick)



(tick)


Month




(tick)


For example, to set the accounting period granularity to day.

...

Code Block
UPDATE accounting_parameters SET paramValue="DAY" WHERE paramName="AccountPeriodGranularity";

Check the updated value by using the select command.

Change how often accounting deletes old records

...

It is also possible to use the stored procedure parameter as maximum record age by enabling the DeleteRegEventsUseSPParam parameter in accounting parameters, but it is not recommended to use this method.

For example, to keep the keep the data for 2 years instead of the default of 3 years.

Code Block
UPDATE accounting_parameters SET paramValue="17520" WHERE paramName="DeleteRegEventsDeleteHours";

...