---
title: Health
description: "The daemon's liveness answer. bootstrapped is the useful field."
---

The daemon's liveness answer. `bootstrapped` is the useful field.

## Properties

### availableBytes?

```ts
optional availableBytes?: number;
```

Bytes available to an unprivileged writer, or `null` when free space could not be
measured.

`null` is deliberately distinct from zero: unmeasurable is not full, and a monitor
that conflated them would page on a missing `statvfs`.

***

### bootstrapped

```ts
bootstrapped: boolean;
```

Whether the run hook has landed and the control API is open.

***

### busy

```ts
busy: boolean;
```

Whether any exec is still running.

For an orchestrator *outside* the VM deciding whether to keep it alive. The platform
measures idleness by inbound traffic through the endpoint proxy, which terminates
outside the guest, so an in-guest keepalive cannot reset the idle timer — polling this
from outside is both the traffic and the decision. An exec that exited and is awaiting
an ack is not busy.

***

### execs

```ts
execs: number;
```

How many execs are registered, in any phase. `busy: false` with a non-zero count is a
VM holding unacked output somebody still has to collect.

***

### hooks

```ts
hooks: HookObservation[];
```

Every lifecycle-hook invocation the daemon observed, oldest first, each with its
workload handler's outcome when the image carries one. The hook routes are
reachable over loopback from inside the guest, so a workload can add entries; the
earliest are the platform's.

***

### hooksDropped

```ts
hooksDropped: number;
```

How many hook invocations the daemon's log cap dropped.

***

### identityDegraded

```ts
identityDegraded: boolean;
```

Whether any startup identity repair step failed — a duplicate machine-id or boot\_id
still in place from the shared image.

***

### identityRepaired

```ts
identityRepaired: boolean;
```

False when identity repair was switched off by config. Separate from `degraded` so a
monitor can tell "opted out" from "nothing to do".

***

### identitySteps

```ts
identitySteps: IdentityStep[];
```

Each identity-repair step and its outcome. Empty until the run hook repairs this
VM's identity.

***

### imageEnvKeys?

```ts
optional imageEnvKeys?: number;
```

How many variables the daemon's image-environment snapshot holds, or `null` when it
holds none. `null` is also what a daemon built before `inheritImageEnv` reports, and
such a daemon ignores that option. The values are never reported.

***

### reserveBytes?

```ts
optional reserveBytes?: number;
```

Bytes that must stay free before a write is refused. Zero means the guard is off.

***

### underPressure?

```ts
optional underPressure?: boolean;
```

Whether a write would be refused right now. Precomputed by the daemon so every
consumer applies the same comparison the write path does.

***

### version

```ts
version: string;
```

The daemon's own version, distinct from the protocol version.

## Provenance

This page is generated from `bindings/microvms-js/index.d.ts` by TypeDoc 0.28.20 and typedoc-plugin-markdown 4.13.1, run from `site/scripts/gen-reference.mjs` on every `pnpm run sync`, so an edit made here is overwritten by the next run.

To change the page, change the doc comment in the binding's Rust source, then regenerate the declarations with `mise run dts`. `mise run dts:check` fails when the committed file no longer matches the source.