Chargeback

 

AppFormix Chargeback calculates a cost for use of compute, network, and storage resources. The price of each resource is configurable by an administrator. Chargeback relies on two concepts of organization: project and departments.

ProjectA project is a collection of instances. A project is a technical organizational unit, often defined by a cloud management system. For example, in OpenStack, a project (formerly called tenant) is the means by which users share a quota of resource allocation and a collection of virtual machines, virtual networks, and storage volumes.
DepartmentA department is a business organizational unit defined in AppFormix because the technical organization provided by project may not map directly to business groups in an organization. An administrator can assign the cost accrued by a project to one or more departments, on a percentage basis.

AppFormix generates monthly invoices for each department. A monthly invoice shows total cost charged to a department. The total cost is the sum of a department's share of the cost of each project. In the AppFormix Dashboard, a user may view a monthly invoice that displays detailed breakdown of cost based on compute, network, storage, and other resources. Figure 1 shows resource consumption by department.

Figure 1: Resource by Consumption Department Report
Resource by Consumption
Department Report

In addition to monthly invoices, the month-to-date cost and projected cost for the current month are displayed in the Cost Manager tab of the Chargeback page. Figure 2 shows an example of the Cost Manager tab details.

Figure 2: Cost Manager Chargeback Details
Cost Manager Chargeback Details

See the following topics for information about configuring chargeback costs.

Configure Departmental Shared Costs

The costs accrued by a project may be charged to one or more departments. When multiple departments share the financial cost of a project, an administrator can split the cost of a project among multiple departments.

To configure the percentage of project cost, select Settings > Chargeback > Departments. The Departments table displays each department, as shown in Figure 4. Click a department name to show or hide the department details that display the percentage of per-project cost that will be charged to the department.

There is a default department called Unallocated Costs which accrues costs for any project that has not been assigned to any department. Figure 3 shows the default department unallocated costs.

Figure 3: Default Department Unallocated Costs
Default Department Unallocated
Costs

To add a new department:

  1. Click Add Department and type a name for the new department.
  2. Click Add.

    The new department appears in the Department table.

To configure the list of projects assigned to a department:

  1. Select the pencil icon to edit a department.

    A department configuration box appears following the Departments table, as shown in Figure 4.

    Figure 4: Configure Projects Assigned to Departments
    Configure Projects
Assigned to Departments
    Project columnLists each project for which the department accrues cost.
    Ownership (%) columnIndicates the percentage of a project's cost that is assigned to the department being configured. The ownership percentage value can be edited.
    Unallocated (%) columnIndicates the percent of a project's cost that is not allocated to any department.
  2. To add a project to the table, select the project in the Select Project drop-down list and click Add.
  3. After editing the department configuration, click Configure to save changes.
  4. (Optional) To cancel changes without saving, click the x icon in the Edit column of the Departments table.

Configure Rates Charged by Using the Rate Card

The rate charged for resources is configured in the rate card. Figure 5 shows the resource hourly rate card per flavor by active, suspended, or allocated rates.

Figure 5: Resource Hourly Rate Card per Flavor by Active, Suspended, or Allocated Rates
Resource Hourly Rate
Card per Flavor by Active, Suspended, or Allocated Rates

To configure the rate charged for resources:

  1. Select Settings > Chargeback > Rate Card.
  2. Select a tab for a resource type to display and configure the rate card for that resource. The descriptions of the tabs are as follows:
    CurrentShows the current rate card and the date that the rate went into effect.
    HistoryShows previous rate cards for a resource type, organized as a list by the effective date of the past rate card.
    New Rate CardAllows you to configure a new rate card for a resource.
    Effective DateShows the month and year when the new rate card will start being used. The effective date must be later than the currently configured rate card.
  3. Select Save to save your changes.

Configure Compute Costs

Compute cost is charged by the hour that an instance is in one of the following states: active, suspended, or allocated. The compute cost is based on the amount of compute resources (CPU, memory, local storage) that have been allocated (statically) for an instance on a host. The hourly rate is configured for each flavor type.

Instance states are defined as follows:

ActiveAn instance is running on a compute host. Corresponding OpenStack state is Active.
SuspendedAn instance has been paused or suspended. Runtime state of such an instance has been preserved in memory or on disk. Compute resources assigned to such an instance are still allocated on a compute host. Corresponding OpenStack states are Paused, Suspended.
AllocatedAn instance is stopped or shut off. Runtime state of such an instance has not been preserved, but its disk image is still present on a compute host. The compute resources assigned to such an instance are still allocated on a compute host. Corresponding OpenStack states are Shutoff, Stopped.

To configure compute costs:

  1. Select Settings > Chargeback > Rate Card.
  2. Select the Compute tab to display and configure the price for each flavor type and instance states.

    The Current tab displays the rate card that is active. Select the New Rate Card tab to configure a new rate card. Figure 6 shows the Compute tab with the active rates.

Figure 6: Compute Cost Current Tab
Compute Cost Current Tab

Configure Network Resource Costs

Network resources that can be charged are virtual networks, virtual subnets, floating IP addresses, and data transfers. To configure network resource prices, select the Network tab.

Virtual Network

A virtual network allocated to a project is charged on an hourly basis, as shown in Figure 7.

Figure 7: Virtual Network Rate Card with Allocated Hourly Rate
Virtual Network Rate
Card with Allocated Hourly Rate

Virtual Network Subnet

A virtual network subnet allocated to a project is charged on an hourly basis. Figure 8 shows an example.

Figure 8: Virtual Network Subnet Rate Card with Allocated Hourly Rate
Virtual Network
Subnet Rate Card with Allocated Hourly Rate

Floating IP Addresses

Each floating IP address is charged on a hourly basis for allocation of the IP address. The rate is expressed as cost per hour ($/hour) per IP address. Figure 9 shows an example of an allocated rate for each floating IP address.

Figure 9: Floating IP Address Rate Card with Allocated Hourly Rate
Floating IP Address
Rate Card with Allocated Hourly Rate

Network Data Transfer

Network data transfer cost is calculated according to a progressive, tiered pricing model on a per instance basis. Charges are calculated in units of gigabyte of data transmitted by an instance (egress bytes). Data transfer amount is always rounded up to the next whole gigabyte. There is no charge for data received by an instance (ingress bytes).

An administrator creates price tiers by clicking Add Tier. See Figure 10. The first tier starts from 0 GB. Each subsequent tier starts on the first gigabyte after the previous tier, and ends at a user-specified byte count. The final rate tier applies to all data transfer amounts that exceed the second-to-last tier. Figure 10 shows a network data transfer rate card with allocated rates by gigabyte ranges.

Figure 10: Data Transfer Rate Card with Allocated Monthly Rates by Gigabyte Ranges
Data Transfer Rate Card
with Allocated Monthly Rates by Gigabyte Ranges

Example: Network Data Transfer

In Figure 10, three tiers are configured: 0-100 GB, 100-1000 GB, and 1000+ GB. Suppose an instance transmits 399.4 GB of data during a billing period. The data transfer cost is calculated for 400 GB of data as follows: 100 GB * $0.50/GB + 300 GB * $0.30/GB = $140.

Configure Storage Costs

Storage cost is calculated using a progressive, tiered pricing model on a per project basis. Storage cost is charged to a project hourly for the total volume storage allocated by a project. If a project allocates a 500 GB volume, but consumes only 100 GB in that volume, then the project is charged for the entire 500 GB allocation. Figure 11 shows the Storage tab.

A rate card may be configured for each storage type. The storage types are discovered by AppFormix from the cloud management system (such as, Cinder in OpenStack). Figure 11 shows a storage rate card with allocated rates by gigabyte ranges.

Figure 11: Storage Rate Card with Allocated Monthly Rates by Gigabyte Ranges
Storage Rate Card with Allocated
Monthly Rates by Gigabyte Ranges

To configure storage prices:

  1. Select Settings > Chargeback > Rate Card, then select the Storage tab.
  2. Select the Storage Type for which the rate card applies.
  3. Click +Add Tier to add a new storage tier.

    Specify the end size in gigabytes and the cost per gigabyte in the tier.

  4. Click Save to save the rate card.

Example: Storage

Consider a rate card in which three tiers are configured: 0-10 GB, 10-100 GB, and 100+ GB. Suppose a project allocates a 25 GB volume for 10 hours, and subsequently allocates an additional 200 GB volume for 20 hours.

For each of the first 10 hours, the project is charged for 25 GB, calculated as follows:

For each of the next 20 hours, the project is charged for 225 GB, calculated as follows:

In total, for the 30 hours, the project is charged: $8.50 * 10 + $43.50 * 20 = $955.

Configure OS License Rates

Each instance can be charged an OS license cost to use a particular OS image to boot the instance. The OS license cost is assigned to each disk image that might be used to create an instance. AppFormix discovers the list of images from the cloud management system, such as Glance in OpenStack.

OS license cost can be charged both on a hourly basis and as a one-time cost. The Allocated Rate is a cost per hour that is accounted for each hour that an instance is provisioned with a particular image. The One-Time Cost is charged each time that an instance is created that uses a particular image. Figure 12 shows an OS license rate card with allocated hourly rates and one-time cost per image used.

Figure 12: OS License Rate Card with Allocated Hourly Rates and One-Time Cost per Image Used
OS License Rate Card with
Allocated Hourly Rates and One-Time Cost per Image Used