A local instrument for measuring the height of your AWS cloud bill.
Ceilometer is a small self-hosted dashboard that talks to the AWS Cost Explorer API using your local AWS profiles, caches responses, and renders the results in a browser. No data leaves your machine.
- Node.js 18+ (uses
node --watchand nativefetch) - One or more AWS profiles configured in
~/.aws/configor~/.aws/credentials - The profile(s) must have permission to call
ce:Get*(Cost Explorer)
npm installnpm start # node server.js
npm run dev # node --watch server.jsThen open http://localhost:3456.
| Variable | Default | Description |
|---|---|---|
AWS_PROFILE |
default |
Default profile used when the UI doesn't specify one |
PORT |
3456 |
HTTP port the server listens on |
If a request fails with a credentials/SSO error, the server response includes a hint such as aws sso login --profile <profile>.
All endpoints accept profile, start, end, and (where relevant) linkedAccount as query parameters. Responses are cached for 5 minutes per parameter set.
| Endpoint | Purpose |
|---|---|
GET /api/config |
Default profile and discovered profile list |
GET /api/accounts |
Linked accounts visible to the profile in the time range |
GET /api/summary |
Gross, net, credits, and amortized totals |
GET /api/daily |
Daily cost grouped by service |
GET /api/by-dimension |
Generic grouping by SERVICE / LINKED_ACCOUNT / REGION / etc. |
GET /api/sp-coverage |
Savings Plans coverage by service |
GET /api/sp-utilization |
Savings Plans utilization |
server.js Express server + Cost Explorer client
public/ Static frontend (index.html, app.js, styles.css)