Dashboards are a great tool for visualizing trends and keeping disparate data digestible. In this post, we are going to break down Cloudability Widgets and show how anyone can become a power user and surface any cloud data their organization needs.
The amount of data contained in cloud vendor billing files such as Amazon’s Detailed Billing Report with Resources and Tags and the flexibility of a platform like Cloudability can appear daunting to the neophyte, and at times harrowing even for the seasoned analytics professional. When we connect with our customers to work through these situations it can often be helpful to take a step back and think about what the actual question is; surfacing cost by month? Reservation coverage by account and instance type? CPU elasticity by hour for each environment? Knowing the data values (i.e. Metrics) you need to break down and the data qualifiers (i.e. Dimensions) you need to understand will keep your query concise and Widget easy to understand. Focus on the question you need to answer and you’ll be ready to create a few layers and socialize the perfect Widget.
As an example, let’s surface the Unblended Rate by Instance Type and Compute Usage Type, as we want to know how much we are paying for each instance across on-demand, spot, and reservations. The data value, or Metric, in this question, is Unblended Rate so you will need to select this for the y-axis measure:
The primary data qualifier, or Dimension, in this question, is Instance Type so you will need to select this for your first x-axis measure:
The final data qualifier, or again Dimension, in this question, is whether the instance was running on-demand, spot, or reserved, so you will need to group the data by Compute Usage Type:
I’ve found that adding filters at this point can be advantageous as it will reduce the query and typically give us the exact data picture we need, from the first preview. In this example, a common set of filters could be to limit the data just to EC2 and direct compute transaction costs. ‘Product Name_equals_Amazon Elastic Compute Cloud’ and ‘Transaction Type_equals_Usage’ filters will help distill the Widget down to just the data we’re looking for:
I am personally a fan of bar charts so am going to pick that option, as it should present this data in a very easy to understand format. Note you can also choose to stack the bar chart:
Hit the ‘Preview’ button and your perfect Widget will appear!
But wait, what’s that? There's more data here than you need? Adding filters for ‘Compute Usage Type_equals_Heavy Usage’ ‘Compute Usage Type_equals_Box Usage’ and ‘Compute Usage Type_equals_Spot Usage’ should clean the Widget up nicely.
Alternatively, let's say you need more data in this Widget - perhaps the usage hours associated with each instance and usage type. Adding a Layer to the Widget will allow you to present these datasets together - but be sure to keep accurate or consistent filters on each Layer!
Layers largely function as independent reports in Widgets. However, you should immediately notice that the primary x-axis measure is fixed. This is necessary in order to plot a consistent graph. Otherwise, there would be conflicting x-axes and all kinds of wonkiness.
As a best practice, I’ll start by updating the filters to make sure I have the right dataset in this Layer:
And then update the data value, or Metric, which in this case is Usage Hours:
Group by Compute Usage Type, to be able to see our usage hours per instance type, by on-demand, spot, and reserved coverage:
Before hitting save it is recommended that you title the Widget and to add a series name to each layer, in order to differentiate the data you are plotting on the y-axes (rate and hours in our example). Selecting the ‘Preview’ button one more time will allow any last-minute changes before adding the Widget to your Dashboard. I switched the Unblended Rate Layer in our Widget to display as a line graph and Usage Hours to a bar chart as it better visualizes the data, in my opinion at least!
Congratulations, you are now a Cloudability Dashboard power user!