Updated Pricing for Polar Signals Cloud

Making Polar Signals Pricing more predictable and transparent

April 9, 2025

Starting with the subscription charges in May 2025, the Polar Signals pricing structure is changing, to make pricing of Polar Signals Cloud more predictable and transparent for our customers.

tl;dr going forward Polar Signals will be charging $50 per 100 Million samples, instead of $50 per 10 GB of data.

The problem

Since our launch in October 2023, Polar Signals Cloud pricing has been based on the mount of Bytes of profiling data sent within a billing cycle in units of 10 GB each costing $50. Initially this seemed like a great fit, the more servers the product is deployed on, the more value customers are getting out of the product, so incentives seemed to align.

However, we quickly realized that there were major issues with this approach. To understand this a bit better let's have a quick look at what profiling data looks like. Fundamentally, profiling data is made up of the combination of a stacktrace and a value (this is a bit simplified, but these are the important parts). So when we for example have a python process it might look something like this:

{
  "stacktrace": ["main", "myfunction1", "myfunction2", "myfunction3"],
  "value": 256
}

Note: Payloads are actually Apache Arrow or Protobuf, not JSON, this respresentation was just chosen for demonstration purposes.

However, the problem starts to arise when we compare this to a Rust program, which doesn't communicate the function names, but just the program counters, that are then resolved to function names on the server side. So that looks something like this:

{
  "stacktrace": [0xc001, 0xf00d, 0xdeadbeef, 0x0ff1ce],
  "value": 256
}

This means, that the same information is represented in much fewer bytes simply because a customer chose to write their software in Rust, rather than in Python.

Bottom line, it meant that customers who use interpreted, or just-in-time compiled languages had significantly higher bills, effectively because of an implementation detail. When we were just starting out, we were able to fix this temporarily by engaging with our customers and adjust through discounts. However, over time we learned of several cases where customers who signed up for a trial via our self-serve platform did not end up subscribing even though they were willing to spend money on the problem, just understandably not 3x their entire cloud bill. Some of those we were able to save by engaging with potential customers, but we eventually realized that the pricing wasn't working the way we had structured it.

Not just the language choice but also the amount of metadata users attached to samples in the form of labels could have a significant impact.

The solution

Starting with subscriptions billed in the month of May of 2025, we will be charging $50 per 100 Million samples, instead of per 10 GB of data. This makes bills much more predictable, since it no longer depends on the length of strings and function names, simply because of a customer's choice of programming language.

What's next

In our ever evolving journey of making billing as transparent and understandable for our customers, we're already working on improvements to our billing page, for example, we're working on allowing users to break down the number of samples sent by arbitrary dimensions, whether it's the type of profiling data, the Kubernetes namespace, or whatever other dimension would be useful for customers to explore and understand their spend better.

In the coming weeks the in-product billing page is going to be updated to reflect the new data used for billing. If you would like to understand today already how this is going to impact your bill, feel free to reach out to sales@polarsignals.com or on your dedicated customer Slack-Connect channel.

Discuss:
Sign up for the latest Polar Signals news