cloudstack metering working with the usage data metering working with the usage data tariq iqbal...

32
CloudStack Metering Working with the Usage Data Tariq Iqbal Senior Consultant [email protected] Twitter: @TariqIqbal_ @ShapeBlue

Upload: vuanh

Post on 12-Apr-2018

230 views

Category:

Documents


3 download

TRANSCRIPT

CloudStack MeteringWorking with the Usage Data

Tariq Iqbal

Senior Consultant

[email protected]

Twitter: @TariqIqbal_ @ShapeBlue

@ShapeBlue #CloudStack #CCCNA14

Involved with CloudStack before donation to Apache

Built and deployed CloudStack / CloudPlatform based clouds for Enterprises and Service Providers globally - SunGard, Ascenty

Specialise in integrating CloudStack with Business Support and Operational Support systems, which include:

CloudPortals (including Payment Gateways, Fraud Control solutions)

CRM/ERP Systems – SAPB/1, Salesforce.com

Monitoring Solutions – Nagios, Splunk, Zenoss

Ticketing Systems – ServiceDesk, Email

About Me

@ShapeBlue #CloudStack #CCCNA14

“ShapeBlue are expert builders of public & private clouds. They are the leading global independent CloudStack / CloudPlatform

integrator & consultancy”

“First to offer professional 24x7x365 support of Apache CloudStack and now CSForge”

“ShapeBlue is absolutely one of the top experts on deploying CloudStack. Great company and very deep skill set”

About ShapeBlue

@ShapeBlue #CloudStack #CCCNA14

CloudStack Usage

CloudStack Configuration

Usage Data Generation

Usage Data Access

Customer Use Cases

Overview

@ShapeBlue #CloudStack #CCCNA14

Organisations need to be able to meter their cloud's consumption to:

Monetize the cloud offerings by charging for usage

Report on the cloud’s resource usage for monitoring/capacity planning

Majority of organisations already have existing BSS/OSS and just need access to the usage data

Organisations tend to have different billing criteria/charging models and require access to usage data for their specific needs

Usage Requirements

@ShapeBlue #CloudStack #CCCNA14

CloudStack does not offer any native usage monitoring or billing/chargeback capability

Root Admin can view currentSystem Capacity

Domain Admin and Users can view VM statistics

Usage in CloudStack today

@ShapeBlue #CloudStack #CCCNA14

CloudStack includes a Usage Server:

Optional Component

Separately installed service called ‘cloudstack-usage’

Runs once a day (Default)

Creates aggregated usage records for the various resources consumed in CloudStack

The usage records are stored in a separate database called ‘cloud_usage’

Usage Server

@ShapeBlue #CloudStack #CCCNA14

Usage Server Configuration

@ShapeBlue #CloudStack #CCCNA14

Usage Server Configuration Examples

@ShapeBlue #CloudStack #CCCNA14

As CloudStack resources are created, consumed and destroyed, appropriate Event records are created in cloud.usage_events

There are 110 different events. Full list in the Programmer Guide

Network usage is the only exception which doesn't use Events

CloudStack Events

@ShapeBlue #CloudStack #CCCNA14

1) CloudStack events are logged into cloud.usage_event table

2) The cloudstack_usage job gets a list of the latest usage events

3) Inserts these events into cloud_usage.usage_events table

4) Parses cloud_usage.usage_event and populates Helper tables

5) Helper table data used to populate cloud_usage.cloud_usage

table with aggregation range wise data

Usage Record Generation

@ShapeBlue #CloudStack #CCCNA14

Usage Types

@ShapeBlue #CloudStack #CCCNA14

Usage Types

API: http://<HOSTIP>:8096/client/api?command=listUsageTypes

@ShapeBlue #CloudStack #CCCNA14

Usage Records show the amount of resources consumed by guest instances.

The 8 Usage Record formats are:

Allocated & Running VMs

Network Usage

IP Address

Disk Volume

Template, ISO and Snapshot

Load Balancer or Port Forwarding

Network Offering

VPN User

Details of the Usage Record formats can be found in the Developers Guide

Usage Records

@ShapeBlue #CloudStack #CCCNA14

VM Usage Record Format

@ShapeBlue #CloudStack #CCCNA14

To Create, Start, Stop and Restart a VM:

Usage Record Example

@ShapeBlue #CloudStack #CCCNA14

Accessing Usage Data

CloudStack Usage Data

@ShapeBlue #CloudStack #CCCNA14

The usage records can be accessed through the CloudStack API

This is best done using the authentication port 8080 and requires both the API Key and Secret Key and for the API request to be signed

CloudStack provides the following Root Admin API calls and responds with XML and JSON responses:

listUsageTypes – lists available Usage Types

listUsageRecords - provides Usage records for a date range

generateUsageRecords - asynchronous usage record generation

CloudStack API

@ShapeBlue #CloudStack #CCCNA14

The base API request is:http://<HOST>:<8080>/client/api?command=listUsageRecords&startdate=yyyy-MM-dd&enddate=yyyy-MM-dd&signature

Optional request parameters:

ListUsageRecords API

@ShapeBlue #CloudStack #CCCNA14

<listusagerecordsresponse><count>1</count><usagerecord>

<account>user5</account><accountid>10004</accountid><domainid>1</domainid><zoneid>1</zoneid><description>i-3-4-WC running time (Service Offering: 1) (Template: 3)</description><usage>2.95288 Hrs</usage><usagetype>1</usagetype><rawusage>2.95288</rawusage><virtualmachineid>4</virtualmachineid><name>i-3-4-WC</name><offeringid>1</offeringid><templateid>3</templateid><usageid>245554</usageid><type>XenServer</type><startdate>2009-09-15T00:00:00-0700</startdate><enddate>2009-09-18T16:14:26-0700</enddate>

</usagerecord>

</listusagerecordsresponse>

ListUsageRecords Response

@ShapeBlue #CloudStack #CCCNA14

CloudMonkey is a CLI tool for CloudStack and can be used as an interactive shell or from within a shell script to call the API

It can output the Usage Data in both JSON and Tabular form to a file or pipe it to another application for further processing

Filtering can be used to limit the result set

It supports argument passing and shell automation

The host, port, apikey and secretkey can be configured on setup

CloudMonkey CLI

@ShapeBlue #CloudStack #CCCNA14

CloudMonkey list usagerecordsThe command to retrieve Usage Records is:

cloudmonkey list usagerecords domainid=7ded1404-d7fc-11e2-a70f-080027cfaf0b startdate=2013-06-01 enddate=2013-06-23 accountid=2

@ShapeBlue #CloudStack #CCCNA14

The usage records can be also accessed by directly querying the cloud_usage.cloud_usage MySQL table in CloudStack

Usage Data can be exported in a CSV format from a SELECT query

The SQL query can become complex if the ID fields in the data need to be de-referenced

Typically multiple passes of the query results may be required to extract the required information

SQL

@ShapeBlue #CloudStack #CCCNA14

CloudStack 4.1 started publishing events onto a message queue Uses RabbitMQ as the message broker, but likely to work with other AMQP-

based brokers Use case: A third-party cloud usage solution can subscribe to CloudStack

events and generate usage data which can be consumed by their billing software

Great blog from Chip Childers on configuring a CloudStack management server to publish events, and some sample code that prints each event to the console as they are received

http://www.chipchilders.com/blog/2013/7/16/tapping-into-apache-cloudstack-events-via-amqp.html

http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.1.0/html/Admin_Guide/events.html

CloudStack Message Queue

@ShapeBlue #CloudStack #CCCNA14

Once you are able to access the Usage Data, you will need to design the mapping between the fields in the CloudStack Usage Data and the fields of the target system

Considerations:

Do you actually need all the Usage Data for all Resources?

Any UUID values of the CloudStack resources should also be imported into the target system for reference purposes

Will you need to synchronise accounts and resources in CloudStackwith the target system?

Mediation

@ShapeBlue #CloudStack #CCCNA14

Customer Use Cases

CloudStack Usage Data

@ShapeBlue #CloudStack #CCCNA14

MS Excel can be used to analyse CloudStack Usage Records

The usage records are imported from the cloud_usage table into MS Excel via an MySQL ODBC connection

Either PivotTables or reports can be used to present the data

This is convenient and

great for integration

testing between CloudStack

and external systems

MS Excel

@ShapeBlue #CloudStack #CCCNA14

Citrix CloudPortal Business Manager tightly integrates with the cloud_usage database on CloudStack/CloudPlatform

The Usage Data is cross referenced against the utility pricing and subscription pricing in CPBM

Scheduled Billing and Invoicing jobs generate the invoices in XML or PDF based on the

users billing cycle

Citrix CloudPortal

@ShapeBlue #CloudStack #CCCNA14

Splunk> is an operational intelligence tool that was initially used for collecting and indexing infrastructure logs

We then connected splunk> to the CloudStack Usage database and automated the collection and indexing of Usage Data

Setup feature-rich dashboards

and the capability to drill down into

the Usage Data for BI reporting

Splunk>

@ShapeBlue #CloudStack #CCCNA14

Provides usage visibility, cost control and IT billing for Private and Hybrid Clouds

Dashboard Integrated in the CloudStack UI

Pricing, Alerting, Reporting, Capacity Mgmt

Amysta consolidates public cloud expenses

e.g. AWS and private cloud consumption in

one dashboard view

Amysta

@ShapeBlue #CloudStack #CCCNA14

Slides: www.slideshare.net/shapeblue

Blogs: www.shapeblue.com/blogs

CloudStack Programmer Guide, API Documentation & Wiki:http://cloudstack.apache.org/

CloudStack Mailing Lists (Users, Development, Marketing):http://cloudstack.apache.org/mailing-lists.html

CloudMonkey:https://cwiki.apache.org/CLOUDSTACK/cloudstack+cloudmonkey+cli

How to Use MS Excel to Analyze CloudStack Usage Records:http://support.citrix.com/article/CTX132030

Further Information

Working with CloudStack Usage Data

Tariq Iqbal

Senior Consultant

[email protected]

Twitter: @TariqIqbal_ @ShapeBlue