DBMS Billing Integration
The DBMS billing integration outputs usage data to a database table for billing. The database table may be hosted on any suitable MySQL database server (although we would recommend that you do NOT use the Abiquo server's Database server).
- For basic install and configuration instructions, see DBMS Quickstart.
Create the 'target' Database, and User Account for access
On your target database server, ensure that you create a database schema to hold the billing data, and a user account to access it. The following MySQL SQL can be used to help you do that:
CREATE DATABASE abiquo_billing CHARACTER SET=utf8; CREATE USER 'bill'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON abiquo_billing.* TO 'bill'@'%';
You should adjust the follow values to suit your requirements:
- abiquo_billing
- bill
- password
Configure DBMS Connector behavior
The settings for controlling the behavior of the DBMS connector are described below.
Property | Default | Description |
---|---|---|
dbms_connection_url | Location of the the 'target' DBMS server (that will hold the generated billing data) e.g. dbms_connection_url=jdbc:mysql://127.0.0.1:3306/abiquo_billing | |
dbms_user | User for connecting to the 'target' DBMS server (that will hold the generated billing data) e.g. dbms_user=bill | |
dbms_password | User for connecting to the 'target' DBMS server (that will hold the generated billing data) e.g. dbms_password=mypassword | |
dbms_jdbc_driver | dbms_jdbc_driver | Driver for connecting to the 'target' DBMS server (that will hold the generated billing data). Currently only the default value of 'com.mysql.jdbc.Driver' is supported. |
table_name | abiquo_billing_data | The name of table in which the generated billing data is stored in the target database. Changing this setting after the billing integration has been run may cause a new table to be generated, however the new table will not contain any old/existing data. |
validate_table | true | If true, the Billing Integration will check that the DBMS table exists, and that it contains suitable database columns to hold the configured data. It is strongly recommended that the default value of "true" is used. |
mysql_ddl | true | If the DBMS connector determines that the target table does not exist, it will automatically try to create it. If this property is set to true, use MySQL-specific data defintion language (DDL) to create the table. The default value of 'true' is recommended for MySQL target databases. |
provider_mapping_name | This is the name of the billing attribute name (defined in the billing_account_mapping table) which the DBMS connector will obtain the Billing System customer ID from. | |
include_usage_costs | false | Include usage costs for a pricing template. When set to true, the DBMS connector will include additional costing columns in its output, with one additional column for each usage defined in the pricing template. Values that are not defined in the pricing templates are not covered by billing when including usage costs:
Values that have charging periods independent of the billing charge period are not covered by billing:
This is because the charging periods cannot be adjusted to the billing periods without risk of calculation error. |
datacenter | false | If Physical Datacenter Billing for grouping Abiquo Datacenters is enabled in the billing.properties file, it must also be enabled in the associated Billing Connector. If true, this property will include datacenter details in the connector output. The default value of this property is ‘false’. Note: If this value is enabled but Physical Datacenter Billing by Abiquo Datacenter is not enabled in billing.properties, then datacenter details will be recorded as ‘n/a’. |
start_period | true | Mandatory column. Timestamp of the start of the accounting period |
end_period | true | Timestamp of the end of the accounting period (exclusive) |
abiquo_type | true | The 'type' of the Abiquo ID (ENTERPRISE or VDC) |
abiquo_id | true | The Abiquo ID value |
bill_system_id | true | The Billing System's Customer ID, as defined in the 'billing_account_mapping' table |
start_period | true | This mandatory column appears in all reports and it is the timestamp of the start of the accounting period |
Other Columns | Set boolean values to false to exclude the following columns from the DBMS table. Do NOT change the column definitions after the billing integration has been run, since the table columns are fixed when the table is created. | |
end_period | true | If true, include the column containing the timestamp of the end of the accounting period (exclusive) |
abiquo_type | true | If true, include the column containing the 'type' of the Abiquo ID (ENTERPRISE or VDC) |
abiquo_id | true | If true, include the column containing the Abiquo ID value |
bill_system_id | true | If true, include the Billing System's Customer ID, as defined in the 'billing_account_mapping' table |
Configure connector properties to define billing output data
To include these columns in the usage data output file, in the {connector}.properties file set these properties to "true". Then configure any associated properties, such as name and display name.
By default all quantities are per accounting period, which by default is 1 hour. So for example, a 1 CPU VM running for the full 24 hours of a DAY Accounting period will consume a quantity of 24 CPUs.
Usage data columns | Default | Description |
---|---|---|
vm | false | If true, include fee per VM for the account period |
vm_on | false | If true, include fee per VM for the account period when the VM was ON |
vm_off | false | If true, include fee per VM for the account period when the VM was OFF |
cpu | true | If true, include amount of CPU for the account period |
cpu_on | false | If true, include amount of CPU for the account period when the VM was ON |
cpu_off | false | If true, include amount of CPU for the account period when the VM was OFF |
mem | true | If true, include amount of Memory for the account period (MB) |
mem_on | false | If true, include amount of Memory for the account period when the VM was ON |
mem_off | false | If true, include amount of Memory for the account period when the VM was OFF |
ip | true | If true, include amount of IPs used for the account period |
vlan | true | If true, include amount of VLANs used for the account period |
local_storage | true | If true, include amount of Local Storage used for the Account Period (GB) |
external_storage | true | If true, include amount of External Storage used for the account period (GB) |
ha | false | If true include if the VM is hosted on an Abiquo rack with high availability enabled |
reserved_server_cpu | false | If true, include amount of CPU in reserved servers that have been explicitly reserved for an Enterprise |
reserved_server_memory | false | If true, include amount of RAM in reserved servers that have been explicitly reserved for an Enterprise |
repository | false | If true, include the amount of Repository usage (GB) by the enterprise for VM Templates and Instances (conversions are not accounted) |
anti_affinity | false | If true, include if the Virtual machine is deployed in an anti-affinity layer to ensure it is deployed separately from other VMs in the same layer |
firewall | false | If true, include the number of firewalls |
loadbalancer | false | If true, include the number of load balancers |
hardwareprofile_usage | false | If true, include the amount for hardware profiles used |
hardwareprofile_onoff_usage | false | If true, include the amount for hardware profiles used when VMs are ON or OFF |
tiered_storage | false |
|
storage_tier_<n> | Define the order of the storage tier in the output file with a number <n> starting from 1 | |
storage_tier_<n>_name | The same case-sensitive name of the 'storage_tier_<n>_name' in the billing.properties file | |
storage_tier_<n>_display_name | Custom column heading | |
local_tier_storage | false |
|
local_tier_storage_<n> | Defines the order of the datastore tier in the output file with a number <n> starting from 1 | |
local_tier_storage_<n>_name | The same case-sensitive name as the value of the 'local_tier_storage_<n>_name' in the billing.properties file | |
storage_tier_<n>_display_name | Custom column heading | |
backup_usage | false | Process backup pricing per GB usage using the backup_policy_<n> and the backup_policy_<n>_code properties |
backup_policy_<n> | false | e.g. backup_policy_2=false |
backup_poliy_<n>_code | e.g. backup_policy_2_code=Backup 2 | |
draas_protection_usage | false | If true, process VMs with DRaaS protection |
cost_codes | false |
|
cost_code_<n> | Defines the order of the cost code in the output file with a cost code number <n> starting from 1 for the first cost code | |
cost_code_<n>_name | The same case-sensitive name as the 'cost_code_<n>_name' value in the billing.properties file. | |
cost_code_<n>_display_name | The customized display names can be values such as strings or account numbers, for example:
| |
hypervisors | false |
|
hypervisor_<n> | Defines the order of the hypervisor in the output file with a hypervisor number <n> starting from 1 for the first hypervisor | |
hypervisor_<n>_name | E.g. hypervisor_1_name=VMX_04 | |
hypervisor_<n>_display_name | hypervisor_1_display_name=VMWareESX | |
custom_<n> |
|
Example dbms.properties
This is a sample file only. Please see the dbms.properties file on your billing system to check property values.
Copyright © 2006-2022, Abiquo Holdings SL. All rights reserved