Monti Insights - Finding Hidden Secrets in Your Meteor App

We keep a huge amount of data about your application as metrics. Even though they are metrics, you can use them to identify patterns in your app. You can use Monti Insights to play around with those metrics and find hidden secrets.

Monti Insights - CPU Usage vs Active Sessions

Monti Insights can find relationships in your application and make predictions based on those relationships. Thus, you can use it as a capacity planning tool. There are many things you can do with those relationships.

Watch the following video. It's an overview of how to use Monti Insights. After you’ve seen it, I'll show you what kind of insights you can derive.

Finding Relationships

In this guide, I’ll use data from a production Meteor web app.

First, we will try to find some relationships between metrics in that app. Let's begin.

What is responsible for the CPU utilized by the app?

Monti Insights - Active Sessions vs CPU Usage

For the above, we will try to relate active sessions and average CPU usage. And there is a very strong relationship (see the correlation coefficient value, which is very close to 1).

Next, look at the slope of the line. We can see that CPU usage is increasing with the number of active sessions. You can also try to relate sub rate and created observers with CPU usage. By doing so you will see some other relations also.

What we can derive from the above relationship?

With this information, we now know that active session, sub rate and some other factors are responsible for the CPU usage directly. If we can reduce the sub rate somehow, that’ll reduce the CPU usage. Likewise, we can take decisions based on the derived information.

Likewise, you can get answers for questions like these as well:

Capacity Planning

Another useful aspect of Monti Insights is that it can be used for capacity planning. Let me show you how.

First, let's try to relate CPU usage and RAM.

Monti Insights - CPU Usage vs RAM

Those two also have a strong relationship. This app is hosted on modulus.io and I know from experience that 6% CPU is the maximum this app can reach. (That’s because modulus.io gives us a shared VM and its CPU usage is capped at ~6%.)

So, now let's try to make some predictions. Based on the above, even if our app uses the maximum CPU, it will only need 227 MB of RAM. But one instance of modulus has 396 MB of RAM. Hence, we know that we need more CPU rather than more RAM. Maybe we can move into another cloud that offers more CPU.

Now, let's try to do the capacity planning. Try to relate active sessions and CPU usage.

Monti Insights - Predictions

Based on this, we can only have 232 active sessions inside one instance. So, we can predict how many instances we need to handle a given load.


These use cases are just a few uses of Monti Insights. Now you can mix and match all kinds of metric and discover hidden secrets about your app.