...
This detailed diagram shows the basic architecture of the Accounting system.
Triggers and stored procedures
...
Field Name | Field Type | Description |
---|---|---|
idVMAccountingEvent | BIGINT | ID event unique |
idVM | INTEGER | ID of virtual machine owning the resource |
idEnterprise | INTEGER | ID of Enterprise resource owner |
idVirtualDataCenter | INTEGER | ID of Virtual Datacenter facility owner |
idVirtualApp | INTEGER | ID Virtual App resource owner |
cpu | INTEGER | 'cores' units |
ram | INTEGER | Memory, in megabytes (MB) |
hd | BIGINT | Local storage, in bytes (B) |
startTime | TIMESTAMP | When a resource was created |
stopTime | TIMESTAMP | When a resources was destroyed |
consolidated | TINYINT | Flag for processed or not |
costCode | TINYINT | Cost code assigned for pricing purposes |
hypervisorType | VARCHAR | The type of hypervisor hosting the virtual machine |
idDataCenter | INTEGER | ID of Datacenter |
VirtualMachine-haHosted | INTEGER | Flag for hosted on HA-enabled PM or not |
...
(haEnabled) | ||
antiAffinity | INTEGER | For VMs in an anti-affinity layer |
idHardwareProfile | INTEGER | ID of hardware profile |
Table accounting_event_pm
...
Field Name | Field Type | Description |
idPMAccountingEvent | BIGINT | Unique column identifier for the accounting event |
idPhysicalMachine | INT | ID of the physical machine, as defined in the kinton.physicalmachine table. NOTE: Use the kinton_accounting ABQ_PM_ID_TO_NAME(id) function to obtain the machine name associated with the ID |
idEnterprise | INT | ID of the ENTERPRISE, as defined in the kinton.enterprise table. NOTE: Use the kinton_accounting ABQ_ENT_ID_TO_NAME(id) function to obtain the machine name associated with the ID |
cpu | INT | The number of physical CPUs in the machine |
ram | INT | The physical machine’s RAM (in MB) |
startTime | TIMESTAMP | The time at which the machine reservation started |
stopTime | TIMESTAMP | The time at which the reservation finished. This value is NULL if the reservation is still active |
idDataCenter | INT | ID of the physical datacenter, as defined in the kinton.datacenter table. NOTE: Use the kinton_accounting ABQ_DC_ID_TO_NAME(id) function to obtain the datacenter name associated with the ID |
consolidated | TINYINT | Indicates whether this row has been consoliated with other rows. Currently this value is always 0 |
version_c | INT | Software controlled data version |
Table accounting_event_repository
This table contains details of the repository usage. There is one row for each VM Template and Instance stored in the repository. Persistent VM templates are not included in this table, because they are stored as external volumes and charged separately.
Field Name | Field Type | Description |
idRepoAccountingEvent | BIGINT | Unique column identifier for the accounting event |
idImage | INT | ID of the repository image, as defined in the kinton.virtualimage table. NOTE: Use the kinton_accounting ABQ_IMG_ID_TO_NAME(id) function to obtain the image name associated with the ID |
idEnterprise | INT | ID of the ENTERPRISE, as defined in the kinton.enterprise table. NOTE: Use the kinton_accounting ABQ_ENT_ID_TO_NAME(id) function to obtain the machine name associated with the ID |
idImageTypeName | INT | The ID of the image type name in the generic accounting name table, use the kinton_accounting ABQ_OBJECT_ID_TO_NAME (id) function to retrieve the actual type name. Names are one of: INSTANCE, TEMPLATE, INSTANCE-CONVERSION, TEMPLATE-CONVERSION |
idImageFormatName | INT | The ID of the image format name in the generic accounting name table, use the kinton_accounting ABQ_OBJECT_ID_TO_NAME (id) function to retrieve the actual format name. Names are: VMDK_FLAT, RAW, etc. see the wiki API reference for further details |
imageSize | BIGINT | Physical Size of the repository image, in bytes |
idRepository | INT | The ID of the image repository as defined in the kinton.repository table |
idRepositoryName | INT | The ID of the repository name in the generic accounting name table, use the kinton_accounting ABQ_OBJECT_ID_TO_NAME (id) function to retrieve the actual repository name. THIS FIELD WAS DEPRECATED IN ABIQUO 3.4 |
startTime | TIMESTAMP | The time at which the image was created in the repository |
stopTime | TIMESTAMP | The time at which the image was deleted from the repository. This value is NULL if the image still exists. |
idDataCenter | INT | ID of the physical datacenter, as defined in the kinton.datacenter table. NOTE: Use the kinton_accounting ABQ_DC_ID_TO_NAME(id) function to obtain the datacenter name associated with the ID. |
consolidated | TINYINT | Indicates whether this row has been consoliated with other rows. Currently this value is always 0. |
version_c | INT | Software controlled data version. |
List of accounting event tables
The accounting event tables include the following.
- backup
- ds_storage
- firewall
- ips
- loadbalancer
- pm
- protect
- repository
- storage
- vlan
- vm
- vm_off
- vm_on
accounting_event_detail table
...
The following rows are returned from ACCOUNT_PERIOD_USAGE_VW view:
Field Name | Field Type | Description |
---|
idVM
INTEGER
ID virtual machine owning the resource
idEnterprise
INTEGER
ID Enterprise resource owner
idVirtualDataCenter
INTEGER
ID Virtual Datacenter owner
idVirtualApp
INTEGER
ID Virtual App resource owner
enterpriseName
VARCHAR
Company Name resource owner
virtualDataCenter
VARCHAR
Virtual Datacenter name resource owner
virtualApp
VARCHAR
Virtual App Name resource owner
virtualmachine
VARCHAR
starttime | TIMESTAMP | Start of the time slice |
endTime | TIMESTAMP | End of the time slice |
idAccountingResourceType | TINYINT | Resource type posted: virtualmachine-vcpu, virtualmachine-vram, virtualmachine-vhd, ExternalStorage, IPAddress, VLAN, VirtualMachine-hypervisorType |
resourceType | VARCHAR | Resource type (text) |
resourceUnits
Resource units to account for
resourceName | VARCHAR | Resource Name to account for. A new resource type 'VirtualMachine-hypervisorType' is now recorded for each VM. The Hypervisor Type is recorded in this 'resourceName' column. |
resourceUnits | BIGINT | Resource units to account for |
idEnterprise | INTEGER | ID Enterprise resource owner |
idVirtualDataCenter | INTEGER | ID Virtual Datacenter owner |
idVirtualApp | INTEGER | ID Virtual App resource owner |
idVirtualMachine | INTEGER | ID virtual machine owning the resource |
enterpriseName | VARCHAR | Company Name resource owner |
virtualDataCenter | VARCHAR | Virtual Datacenter name resource owner |
virtualApp | VARCHAR | Virtual App Name resource owner |
virtualmachine | VARCHAR | Virtual Machine Name resource owner |
costCode | VARCHAR | Cost code of Virtual Image. Only valid when the idAccountingResourceType is 1 (virtualmachine-vcpu) |
idStorageTier | INTEGER | Code associated with this storage resource's QoS/Tier level. Only valid for the 'External Storage' resource type |
costCodeName | varchar(255) | Name of cost code |
storageTierName | varchar(40) | Name of storage tier |
idDataCenter | int(11) | ID of datacenter |
dataCenterName | varchar(255) | Name of datacenter |
idHardwareProfile | int(11) | ID of hardware profile |
idAccountingEvent | bigint(20) | ID of accounting event |
hypervisorType | varchar(255) | Hypervisor type (includes public cloud provider type) |
region | varchar(255) | Public cloud region |
internal_provider_id | varchar(255) | |
account_id | varchar(255) |
Every hour, the status of each resource implemented in the system is recorded, which can generate a large number of rows. Abiquo recommends that the table is periodically purged of resource information which is no longer required.
...
Parameter Name | idAccountingResourceType |
VirtualMachine-vcpu | 1 |
VirtualMachine-vram | 2 |
VirtualMachine-vhd | 3 |
ExternalStorage | 4 |
IPAddress | 5 |
VLAN | 6 |
VirtualMachine-hypervisorType | 7 |
VirtualMachine-haHosted | 8 |
ReservedPhysicalMachine-cpu | 9 |
ReservedPhysicalMachine-ram | 10 |
RepositoryStorage | 11 |
VirtualMachine-antiAffinity | 12 |
VirtualMachine-tierhd | 13 |
backup_usage/backup_policy | 14 |
vm_usage_on/vm_on - cpu_usage_on/cpu_on | 15 |
vm_usage_off/vm_off - cpu_usage_off/cpu_off | 16 |
memory_usage_on/memory_on | 17 |
memory_usage_off/memory_off | 18 |
firewall_usage/firewall | 19 |
loadbalancer_usage/loadbalancer | 20 |
draas_protection_usage/draas_protection | 25 |
Resource owners
Abiquo records resource ownership at the following levels:
...