# `Hyper.Node.Budget.Supervisor`
[🔗](https://github.com/harmont-dev/hyper/blob/main/lib/hyper/node/budget/supervisor.ex#L1)

Per-node supervisor for the budget subsystem. Runs once per BEAM node and owns
both sides of the budget plus the cluster advertisement:

  * `Hyper.Node.Budget.Hard` - hard memory/disk accounting from VM specs.
  * `Sys.Mon` - real-time soft-metric monitors (CPU/disk/net) backing
    `Hyper.Node.Budget.Soft`.
  * `Hyper.Node.Budget.Advertiser` - publishes `NodeState` into
    `Hyper.Cluster.Budget` on start, on each allocation, and on a periodic
    heartbeat.

All three are independent (`:one_for_one`): a crash in any child does not
restart the others.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

```elixir
@spec start_link(keyword()) :: Supervisor.on_start()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
