# defaults.healthcheck

> How Guv decides a new deployment is healthy before moving traffic.

How Guv decides a new deployment is healthy before moving traffic. A string is shorthand for an HTTP path.

- **Type:** string or object
- **Since:** manifest v1

**Accepted forms**

- string
- object: the full form, with the fields below

## Example

```yaml
defaults:
  healthcheck: /healthz
```

```yaml
defaults:
  healthcheck:
    path: /healthz
    timeout: 10s
```

## Fields

### type

`defaults.healthcheck.type`

HTTP GET expecting 2xx/3xx, or a TCP connect.

- **Type:** `http`, `tcp`
- **Default:** `http`
- **Since:** manifest v1

```yaml
defaults:
  healthcheck:
    type: http
```

### path

`defaults.healthcheck.path`

Path for HTTP checks.

- **Type:** string
- **Default:** `/`
- **Pattern:** `^/`
- **Since:** manifest v1

```yaml
defaults:
  healthcheck:
    path: /healthz
```

### port

`defaults.healthcheck.port`

Port to check; defaults to the service port.

- **Type:** integer
- **Range:** 1 to 65535
- **Since:** manifest v1

```yaml
defaults:
  healthcheck:
    port: 3000
```

### timeout

`defaults.healthcheck.timeout`

Per-check timeout (up to 60s).

- **Type:** [duration](/docs/manifest/#duration)
- **Since:** manifest v1

```yaml
defaults:
  healthcheck:
    timeout: 10s
```

### interval

`defaults.healthcheck.interval`

Time between checks.

- **Type:** [duration](/docs/manifest/#duration)
- **Since:** manifest v1

```yaml
defaults:
  healthcheck:
    interval: 10s
```

### start_timeout

`defaults.healthcheck.start_timeout`

How long a new deployment has to become healthy (up to 15m).

- **Type:** [duration](/docs/manifest/#duration)
- **Since:** manifest v1

```yaml
defaults:
  healthcheck:
    start_timeout: 5m
```

## See also

- [defaults](/docs/manifest/defaults/): all fields of `defaults`
- [guv.yaml reference](/docs/manifest/)
