Skip to main content

App insights, requests, CPU, memory and cost per day

The Insights tab shows how much traffic an app serves and what it uses and costs: requests per day split by status class, the data sent back, average CPU and memory for this month and today, the cost so far this month, a forecast for this month and next, and daily charts for the last 31 days. The same numbers come from cloider app usage and the REST API. CPU and memory are the figures an app is billed on, so this page also explains how they are measured. Requests and data out are shown only and never billed.

At a glance​

Card or chartShows
Requests (Today)Requests to the app's domains so far today
Requests (This Month)Requests since the first of the month
Server Errors (This Month)The share of this month's requests answered with a 5xx status, and how many
Data Out (This Month)Bytes sent back to clients since the first of the month
RequestsRequests per day, stacked by 2xx, 3xx, 4xx and 5xx, last 31 days
Data OutBytes sent back per day, last 31 days
Avg. Usage (This Month)Average CPU in cores and memory in GB over the days of this month
Avg. Usage (Today)Average CPU and memory so far today
Cost to Date (This Month)What the app has cost since the first of the month
Cost ForecastThe expected cost for This Month and Next Month at the current usage
CPU UsageAverage cores per day, last 31 days
Memory UsageAverage GB per day, last 31 days
CostCost per day, last 31 days

Usage is sampled every minute while the app runs. A new app shows Usage is sampled every minute while the app runs, and shows here once the first samples are in. until its first samples arrive.

The Insights tab of the blog app with average CPU and memory cards, cost to date, cost forecast, and daily CPU, memory and cost bar charts
Insights: averages, cost and 31 days of daily usage.

How are requests counted?​

Requests are counted where they enter Cloider, at the ingress in front of every app domain: the subdomain the app was created with and any custom domain or target pointing at it. Every request is counted, including the ones the app never sees, such as the 503 a client gets while the app is down or restarting.

  • Requests is the total. The chart splits it by status class: 2xx success, 3xx redirect, 4xx client error and 5xx server error. WebSocket upgrades (101) are in the total only.
  • Data Out is the size of the responses sent back, headers included, in binary units (1 KB = 1024 bytes).
  • Counts are added every minute to the current day, in UTC.
  • Days from before requests were counted show no bar.

How is usage measured?​

Each sample reads the CPU and memory of the app's container. The terminal that the dashboard's Terminal tab opens isn't counted, only your app.

  • CPU is in cores: 0.25 cores is a quarter of one CPU core on average.
  • Memory is in GB.
  • Samples are averaged over time, so a short spike barely moves a daily average.
  • A paused app has no container, so its samples are zero and it costs nothing for compute.

Cost is calculated from the same averages: the larger of the CPU cores used and the memory used converted to cores at a fixed ratio, times the compute rate, times the time the app ran. The rate is on the pricing page, and the billing model explains how daily costs become an invoice.

Read an app's usage​

  1. Open the app.
  2. Go to the Insights tab.

For every resource of the account at once, open Usage in the sidebar.

Use insights to size and save​

  • 5xx share goes up: the app is failing requests. Check the logs around the days it rose.
  • Memory climbs day after day: the app probably leaks memory. Check the logs and restart it by saving the Environment tab, then fix the leak.
  • High CPU at idle: look for busy loops, aggressive polling or a development server running in production (for example npm run dev instead of npm start).
  • An app nobody uses: pause it. A paused app costs nothing for compute and keeps its configuration.

For live numbers rather than daily averages, look inside the container, if its image has ps:

cloider app exec blog -- ps aux

Next steps​

Frequently asked questions

How many requests does my app get per day?

The app's Insights tab shows requests per day for the last 31 days, split into 2xx, 3xx, 4xx and 5xx, with today's and this month's totals and the data sent back. They are counted at the ingress for every domain of the app, and are not billed.

Where can I see how much CPU and memory my app uses?

On the app's Insights tab in the dashboard: average CPU in cores and memory in GB for this month and today, and daily charts for the last 31 days. cloider app usage <app> -o json returns the same figures.

How often is app usage measured?

Usage is sampled every minute while the app runs, and averaged per day. A paused app has no running container, so it records zero usage.

Does the web terminal count towards my app's usage?

No. Only the app's own container is measured and billed. The terminal that the dashboard opens runs separately and isn't counted.

How is the cost forecast calculated?

The forecast projects the app's current usage over the rest of this month and over next month, at the current rates. It changes as the app's usage changes.