Get project app utilisation
GEThttps://api.instacloud.com/projects/{projectId}/utilisation
Token scope: account · org · project — read-only tokens allowed.
Per-app actual-vs-allocated compute utilisation over a window (default current cycle)
Quantities, not costs: the actual-consumption meters are collected at $0, so a cost-based ratio would read 0% for every app. utilisation is null when nothing was allocated in the window, which is not the same as 0% — the collector may simply not have run.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
from | query | integer | no | unix seconds (default current cycle start) |
to | query | integer | no | unix seconds (default current cycle end) |
projectId | path | string | yes |
Responses
200
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
from | integer | no | |
to | integer | no | |
apps | object[] | no | |
apps.app | string | no | |
apps.resourceId | string | no | |
apps.cpu | object | no | |
apps.cpu.allocated | number | null | no | the ceiling that was billed, in `unit`. NULL means no allocation was recorded in this window — not that nothing was allocated. |
apps.cpu.actual | number | null | no | what the app actually consumed, same unit. NULL means not measured in this window — not zero. |
apps.cpu.unit | string | no | |
apps.cpu.utilisation | number | null | no | actual / allocated; null when either side is unknown |
apps.cpu.suspect | boolean | no | actual exceeds allocation, which is physically impossible — the stored rows are wrong. Excluded from totals. |
apps.cpu.unmetered | boolean | no | the app exists but the collector produced no rows at all for it in this window — neither allocation nor reading. Worse than an absent reading: nothing bounds how much of the fleet is missing. |
apps.ram | object | no | |
apps.ram.allocated | number | null | no | the ceiling that was billed, in `unit`. NULL means no allocation was recorded in this window — not that nothing was allocated. |
apps.ram.actual | number | null | no | what the app actually consumed, same unit. NULL means not measured in this window — not zero. |
apps.ram.unit | string | no | |
apps.ram.utilisation | number | null | no | actual / allocated; null when either side is unknown |
apps.ram.suspect | boolean | no | actual exceeds allocation, which is physically impossible — the stored rows are wrong. Excluded from totals. |
apps.ram.unmetered | boolean | no | the app exists but the collector produced no rows at all for it in this window — neither allocation nor reading. Worse than an absent reading: nothing bounds how much of the fleet is missing. |
total | object | no | |
total.cpu | object | no | |
total.cpu.allocated | number | null | no | the ceiling that was billed, in `unit`. NULL means no allocation was recorded in this window — not that nothing was allocated. |
total.cpu.actual | number | null | no | what the app actually consumed, same unit. NULL means not measured in this window — not zero. |
total.cpu.unit | string | no | |
total.cpu.utilisation | number | null | no | actual / allocated; null when either side is unknown |
total.cpu.suspect | boolean | no | actual exceeds allocation, which is physically impossible — the stored rows are wrong. Excluded from totals. |
total.cpu.unmetered | boolean | no | the app exists but the collector produced no rows at all for it in this window — neither allocation nor reading. Worse than an absent reading: nothing bounds how much of the fleet is missing. |
total.ram | object | no | |
total.ram.allocated | number | null | no | the ceiling that was billed, in `unit`. NULL means no allocation was recorded in this window — not that nothing was allocated. |
total.ram.actual | number | null | no | what the app actually consumed, same unit. NULL means not measured in this window — not zero. |
total.ram.unit | string | no | |
total.ram.utilisation | number | null | no | actual / allocated; null when either side is unknown |
total.ram.suspect | boolean | no | actual exceeds allocation, which is physically impossible — the stored rows are wrong. Excluded from totals. |
total.ram.unmetered | boolean | no | the app exists but the collector produced no rows at all for it in this window — neither allocation nor reading. Worse than an absent reading: nothing bounds how much of the fleet is missing. |
total.cpuUnmeasuredApps | integer | no | apps excluded from the cpu ratio for lack of a reading |
total.ramUnmeasuredApps | integer | no | apps excluded from the ram ratio for lack of a reading |
total.cpuSuspectApps | integer | no | apps excluded because actual exceeded allocation — impossible, so the stored rows are wrong |
total.ramSuspectApps | integer | no | apps excluded because actual exceeded allocation — impossible, so the stored rows are wrong |
total.cpuUnmeteredApps | integer | no | apps with no cpu metering rows at all — the ratio was computed over a smaller fleet than the real one |
total.ramUnmeteredApps | integer | no | apps with no ram metering rows at all — the ratio was computed over a smaller fleet than the real one |
403
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
error | string | yes |