Putting You in Control of Your InfluxDB Cloud Spend
By
Al Sargent /
Use Cases, Product, Developer
Sep 01, 2020
Navigate to:
We recently changed the pricing of InfluxDB Cloud to let you control your cloud database spend so you spend only as much as you need to run your software and systems with no wasted budget.
If you just want a summary, check the InfluxDB Cloud pricing page. But if you’d like to nerd out on the changes we made, why we made them, and how to estimate your monthly spend on InfluxDB, then buckle up for a deep dive.
Our search for the right pricing metric
Before we talk about the changes we made, let’s look at how we arrived at our pricing for InfluxDB Cloud.
Our first principle is that we want to price fairly, based on how much value we deliver. That begs the question: what’s a good proxy for value delivered?
A second principle is that we want to put you in control of your spend. You’ll see below how we let you tune your cloud database usage through increased transparency.
Let’s address the first question: because InfluxDB is used across a wide range of use cases IoT, software monitoring, scientific research, user experience, and more we have to find a unit of value that’s common across all of them.
We can’t charge by “endpoints monitored” because that doesn’t work in the context of IoT: an oil rig or windmill will emit orders of magnitude more telemetry than a networked lightbulb.
Nor did it make sense to price based on database host size, since InfluxDB Cloud has a cloud-native architecture that defies any simplistic machine-based pricing. Here’s what we mean.
Some hosted databases run on one or two nodes, then slap “Cloud” on the product name even though they’re little more than their open-source code running on an EC2 instance.
That’s nothing like InfluxDB Cloud; it runs across hundreds of containers, each working to process data in a horizontally-scaled manner. Those containers are dynamically orchestrated with Kubernetes and Istio, continually starting up and shutting down as needed. They’re fronted by Kafka to stream in massive volumes of data. All these resources are multitenant, shared across multiple customer accounts. Because of this, InfluxDB Cloud is a cloud service that’s too complex to price by “machine size”.
<figcaption> InfluxDB Cloud: cloud-native architecture that runs on many machines not just one. Source.</figcaption>
How InfluxDB Cloud is priced
When you look across our hundreds of customers across dozens of industries, the one thing they have in common is data: how much time series data runs through InfluxDB, how often they access that data via queries, and how long they choose to retain it.
For this reason, InfluxDB Cloud pricing is based on data, which allows us to use a value metric that’s applicable to all our customers: as you store more data in InfluxDB Cloud, the more value you should be getting from it. We want to incent you to store as much time series data as needed to run your business no more, no less.
This thinking manifests in four vectors of usage, which cover any imaginable use case for InfluxDB and ensure fair pricing for everyone:
InfluxDB Cloud Pricing Vector | Definition |
---|---|
Data In | How much data you're bringing into InfluxDB |
Queries | How much you're querying in InfluxDB |
Storage | How much data you're storing |
Data Out | How much data you're pulling from InfluxDB |
Usage-based pricing vs per-server pricing
Pricing InfluxDB Cloud by usage lets you avoid the hassles of per-server pricing that some databases impose.
What’s per-server pricing? Per-server pricing is where you’re charged by the size of the machine your database runs on. Machines with small amounts of memory, CPU, and disk are cheaper, and those with more are more expensive. There are a few problems with this approach:
- Workload mapping: It's hard to map a particular workload profile to a specific machine size. For example, if you're monitoring 50,000 IoT devices or 5,000 containers, it's not immediately clear what size machine you need.
- Estimation penalties: If you overestimate your workloads, you waste precious budget. And if you underestimate, you set yourself up for a painful migration to a larger machine imagine being a retailer and having to do this in the middle of the holiday shopping season!
- No peak provisioning: Per-server pricing naively assumes that businesses don't have surge seasons: Cyber Monday for retail, tax season for investment and payroll websites, and so on. A machine that works fine for most of the year might be too small for your surge period.
To sum up, usage-based avoids the risk of getting locked into the wrong sized machine. Our cloud-native architecture seamlessly scales as your workload demands, so you pay only for what you actually use. Let’s explore how we do that.
Putting you in control of your spend
In contrast to inflexible per-server pricing, the above four pricing vectors provide you with multiple ways to fine-tune your budget spend to your usage and business cycles.
<figcaption> Credit: Alexey Ruban via Unsplash</figcaption>
For example, suppose you’re a retailer monitoring your applications during the Cyber 5 shopping days. During this time, you might collect server performance data and run alert checks more frequently than usual say, every 5 seconds since downtime can easily stretch into thousands of dollars per minute. This increases your Data In and Query spend a worthwhile investment to ensure that revenue continues uninterrupted.
When the holiday season is over and customer visits decline, you throttle back your data collection and alert check frequency perhaps once a minute. Your Data In and Query spend declines accordingly, in real time. You reduce cloud database spend to match reduced application revenue. (How great would it be if all your costs could be adjusted this easily?!)
You can easily track your consumption of all four of these pricing vectors on the InfluxDB Cloud usage page, which gives you full visibility into what’s driving your cloud database spend across all four vectors:
- Usage status: Overall usage for the current billing period, to see which vectors are driving your costs.
- Usage trends: Trend graphs for all pricing vectors, to see if usage is accelerating or slowing.
- Usage overages: Any recent rate limit overages related to Data In or Queries.
You can see these features in the screenshot below.
<figcaption> InfluxDB Cloud lets you determine exactly what is driving your spend</figcaption>
What's the price of InfluxDB Cloud?
Here’s a summary of InfluxDB Cloud monthly pricing before and after September 1:
InfluxDB Cloud Pricing Vector | Price before 9/1/20 | Price starting 9/1/20 |
---|---|---|
Data In | $0.0015/MB | $0.002/MB |
Queries | $0.0015 per query second | $0.01 per 100 query executions |
Storage | $0.0015/GB-hour | $0.002/GB-hour |
Data Out | No charge | $0.09/GB |
The main changes are in the second and fourth rows Queries and Data Out. We’ll walk through both changes. But first, let’s look at a simple example of how InfluxDB Cloud charges are calculated.
How to calculate InfluxDB Cloud charges
Now let’s get to the meat of the matter: How much does InfluxDB Cloud cost?
Let’s answer by way of example. Suppose your time series data profile looks like this we’ll use round numbers for simple math:
- Ingest one GB per month
- Store two GB of data before it's evicted
- 100,000 queries run per month across all InfluxDB Dashboards, Tasks, and Alerts
- One GB of query response data per month
In a 30-day month (with 720 hours), your InfluxDB Cloud charges would be $14.97, calculated as follows:
InfluxDB Cloud Pricing Vector | Price | Usage | Subtotal |
---|---|---|---|
Data In | $0.002/MB | 1000 MB | $2.00 |
Queries | $0.01/100 queries | 100,000 queries | $10.00 |
Storage | $0.002/GB-hour | 2 GB, stored all month | $2.88 |
Data Out | $0.09/GB | 1 GB | $0.09 |
Total | $14.97 |
With that out of the way, let’s dig into the two changes to our InfluxDB Cloud pricing, Query Count and Data Out.
Understanding Query Count pricing
InfluxDB Cloud is no longer priced by query duration, i.e., the total seconds that all queries took to run. Instead, we price InfluxDB Cloud by the number of queries. If you run 10,000 queries in a month, it’s the same price whether they take an average of 50ms each or one second each. This holds whether your queries are written in Flux or InfluxQL.
<figcaption> Credit: Crissy Jarvis via Unsplash</figcaption>
Why did we make this change? It was the right thing for our customers.
By pricing based on a simple query count, it’s now much easier to forecast your InfluxDB spend. And, by moving away from duration-based pricing, what you pay for a given query will be the same each time you run that query.
To estimate your queries, look at queries that run regularly, as that will dominate your spend. These include:
- InfluxDB Tasks, where each task execution is a query execution.
- InfluxDB Alerts, specifically the alert checks.
- InfluxDB Dashboards that are continually displayed, such as on a wall monitor. Note that each chart in a dashboard, when refreshed, counts as at least one query execution for billing purposes.
- Queries from InfluxDB client libraries and InfluxDB API.
Conversely, ad-hoc queries from the Influx query command, Influx REPL, and InfluxDB Data Explorer probably won’t drive a significant portion of your spend.
Understanding Data Out pricing
The other change is that we now charge for Data Out, albeit a small amount. Data Out refers to the amount of data transferred out of InfluxDB Cloud. This is referred to by most cloud providers as “Data Transfer”. Those of you familiar with cloud provider Data Transfer charges will recognize that our Data Out pricing is simply based on cost-recovery. You would incur the same charges directly from your cloud provider when transferring that same amount of data.
Going a step further, we’ve built mechanisms to reduce your Data Out charges when you use InfluxDB Data Explorer. Because it makes no sense to pull down a million datapoints if the InfluxDB UI can only display 1000 of them, Data Explorer now automatically aggregates your query results based on some function (min, max, mean). Not only does this make your queries snappier it reduces your Data Out charges.
Here’s how auto-aggregation looks in Data Explorer; you can read more in this post.
<figcaption> Auto-aggregation in InfluxDB Data Explorer throttles your Data Out usage</figcaption>
On the other hand, if you want to download ALL data points, without aggregation, use Script Editor, InfluxDB Client Libraries, or the InfluxDB command-line interface.
How to forecast your InfluxDB Cloud charges
<figcaption> Credit: Vishwarajsinh Rana via Unsplash</figcaption>
Here’s how to estimate your InfluxDB Cloud monthly usage and price:
- Sign up for the free tier of InfluxDB Cloud and send us data.
- Set up the InfluxDB Cloud Tasks, Alerts, Dashboards, and calls to our client libraries and API that will drive Query Count and Data Out.
- Run InfluxDB Cloud for whatever length of time you need to get a representative amount of data Storage. If your data volume is steady throughout the day, an hour should be enough. If it rises and falls over a 24-hour period, then that's the amount of time you need.
- Check your usage in InfluxDB Cloud, extrapolate to 30 days, then apply the price points above.
Is InfluxDB Cloud free?
Thus far we’ve been talking about what the price of InfluxDB Cloud is, but to clarify: InfluxDB Cloud also has a free tier that doesn’t expire. We provide this because we believe that free tiers provide the best experience for developers:
- Pacing: You can explore InfluxDB Cloud at your own pace, as your schedule allows, without having to worry about a time-limited trial. We understand that when you present new technologies to your team, you want to have enough time to prepare.
- Professional growth: For many developers, hobby projects are a key part of their professional growth, since they allow them to work with new technologies that aren't yet adopted by their employer. A free tier lets you try out InfluxDB for hobby projects.
- Sizing: You have enough time to set up realistic sizing experiments to forecast your spend.
When you create your InfluxDB Cloud account on InfluxData.com, you automatically start in our free tier. As you add data and increase the number of dashboards, tasks and buckets, you may exceed the free tier limits. At that point, you’ll be prompted for your credit card so that you can switch over to our monthly usage-based pricing plan for InfluxDB Cloud. (Some vendors call these a pay-as-you-go or PAYG plan).
The InfluxDB Cloud pricing page describes what both the free and usage-based pricing tiers provide.
How to pay less for InfluxDB Cloud
In addition to our usage-based pricing plan, we also provide an annual plan. Usage-based price points are listed above, while annual plans offer you an additional discount.
Annual plans also accommodate variations in usage that might occur due to an initial migration of data into InfluxDB, as well as the seasonality of your business cycle. They also have the added benefit of advance visibility into when an annual commit will be exceeded, versus being surprised at the end of the month due to exceeding a monthly budget.
To learn more about our annual plan, contact our sales team.
Focus on what matters
At InfluxData, we’re obsessed with making time series data easy to work with. That’s why “time to awesome” is our motto. This mantra works its way into everything we do. We strive to put the user experience first wherever you interface with our products and services including our pricing to take the hassle out of time series.
<figcaption> Credit: Tyler Lastovich via Unsplash</figcaption>
We hope that our new InfluxDB Cloud pricing provides the right balance of simplicity and control, so that you can focus on what really matters: building great software and systems that use time series data. But if you have further questions, be sure to contact us so we can get them answered.