# httpcheck

Source: https://www.pingtower.com/docs/addons/httpcheck/

Fetch a URL and time every stage of it separately, because a slow resolver and a slow server wake up different people.

## Parameters

| Parameter | Default | Meaning |
| --- | --- | --- |
| `url`<span class="req">REQUIRED</span> | | http or https. |
| `method` | `GET` | |
| `headers` | | Map of request headers. |
| `body` | | Request body, sent as-is. |
| `expect_status` | `200` | Any other status is **down**. |
| `body_matches` | | RE2 pattern the body must match, else **down**. |
| `max_ttfb` | | Time to first byte above this is **degraded**. |
| `follow_redirects` | `true` | |

## Measurements

| Key | Unit |
| --- | --- |
| `dns_ms`, `connect_ms`, `tls_ms`, `ttfb_ms`, `total_ms` | milliseconds, each stage on its own |
| `body_bytes` | bytes |

## Rules for it

```json
{"name":"slow-ttfb","match":{"tags":["addon:httpcheck"]},
 "conditions":[{"key":"ttfb_ms","op":"gte","value":500}]}
```

```json
{"name":"probe-down","match":{"tags":["addon:httpcheck"],"min_level":400},
 "fire_after":{"count":2,"window_minutes":5,"distinct_sources":true}}
```
