Skip to Main Content

How-to surface your multi-cloud costs with SquaredUp

Sameer Mhaisekar

Developer Advocate, SquaredUp

The problem of cloud cost visibility

Working in the cloud is certainly convenient, but the convenience comes at a price. With more and more organizations transitioning to the cloud, and a rise in preference towards cloud-native applications, hosting most, if not all the components of your business in the cloud is becoming increasingly common. These components aren’t necessarily all hosted together either – many businesses are embracing multi-cloud, distributed deployments, to use the best of what different cloud platforms have to offer, and to avoid vendor lock-in.

This is all fun and games for the end users, but not for you if you’re in charge of tracking where all the money is going. While these cloud platforms have their own portals to see the respective spend, the real challenge begins when you try to combine and consolidate those costs and analyze them. Sure, there are some tools that work as unified cost portals, but they seldom do anything more than that, and are quite costly themselves. Hmm, so what to do?

Solution

I took this question and tried to answer it with SquaredUp. As we know, SquaredUp has the ability to query and connect to data from different data sources, using data mesh. So I started a little project of combining my cost data coming from multiple cloud platforms and viewing them all together.

Let’s consider Azure and AWS here since they’re the most popular.

Right off the bat, I see that both of them have native plugins in the product already. So that makes connecting to them much easier.

I’ll go ahead and add them one by one. Click the links below to learn how to do this.

Connect Azure

Connect AWS

Once you’ve done that, you’ll notice that both have a data stream for “Cost”. Excellent!

Our cost visibility goals

Now before we go any further, let’s take a step back and think about the end result we are aiming for. This is mine:

  1. I want a dashboard for my combined cloud costs , wherever they may be coming from. Obviously, I also want to display the cost for individual cloud platforms for further analysis.
  1. I also want to track this spend based on the specified budget against each cloud and/or service. If the spend crosses the budget, I need to know.
  1. Finally, I want a hierarchical view of how these things relate with one another.

Cool, I think that should be a good window into where I’m spending money. We can always add more things later.

To accommodate my first and third requirements, I’ll make use of workspaces.

Workspaces are where different teams can organize their data and knowledge across the tools they use. You can save an unlimited number of dashboards to each workspace. Workspaces have health states, so I can see which of my components are crossing budget and visualize that.

Visualizing Azure and AWS cost

Let’s start with our Azure costs. I went ahead and selected Azure data source, then the Cost data stream, selected the 4 subscriptions that I have access to, and fetched my usage metric. And voila, here’s the result:

A nice bar chart for all my usage cost of all my Azure resources.

Now I will do the same for AWS. The steps are very similar, with some minor changes in the terminology for each cloud.

And finally, here’s all of it in the same dashboard sitting side by side:

How to combine multi-cloud costs with SQL Analytics

To be able to see your costs from different cloud platforms in the same place is already very useful. However, I still haven’t shown you the cool part yet!

A benefit of using SquaredUp is the ability to combine two datasets together into one, and then manipulate it using something called “SQL Analytics”. So what I’ll do now is get Azure cost in one dataset, AWS cost in the other, and combine them together using a SQL query.

I’ll create a new tile, and enable SQL analytics on it.

Then I’ll go ahead and add the two cost datasets, one from each respective cloud.

Now that I have both datasets in two tables, I can write a SQL query to manipulate that data, combine it into one output, and display combined cost!

How cool is that?!

Each bar sums up cost incurred on a particular day from each cloud, and displays it separately with different colors. Here’s my full dashboard, displaying costs from respective clouds individually, as well as summed up (top 3 tiles):

Get notified when you cross your budget

For tracking my spend against a set budget, I’ve created the tile on the top right, which is monitoring and comparing the combined cost against a fixed number that I’ve set as my budget.

As you can see, since it’s crossed the budget of $990 that I’ve set, it is showing me an alert. I can now send this alert as a notification to a chosen email address.

Mapping cost breakdown across services

Now finally, the hierarchy. Like I said, I’m going to leverage the concept of workspaces for that. I’ve created a few workspaces with specific data for each cloud, and turned on monitoring for that against my budget. I then associated those workspaces with my “master” workspace. The result of that is this beautiful map:

Now that’s what I’m talking about! A beautiful, insightful, and precise breakdown of where my cost is going and which services and/or cloud platforms are crossing the budget.

Loving what you see? Sign up to SquaredUp and you’ll be able to achieve this and so much more.

We also have a host of out-of-box dashboards available. Visit the Dashboard Gallery to see our Azure cost monitoring dashboards in action, or our range of other use cases.

Happy observing!

Share this article to LinkedInShare this article on XShare this article to Facebook
Sameer Mhaisekar

Developer Advocate, SquaredUp