Configuration

The collector reads a single YAML file at startup. A minimal example:

targets:
  - name: api-primary
    url: https://api.example.com/health
    interval: 30s
    timeout: 5s
  - name: api-eu
    url: https://eu.api.example.com/health
    interval: 60s

output:
  format: json
  path: /var/log/geodev/results.log

Fields

targets is a list of endpoints to probe. Each entry needs a name and a url; interval and timeout fall back to sensible defaults when omitted.

output controls where results are written. Only json lines are supported right now; a Prometheus exporter is on the list but not scheduled.

Timing breakdown

Each result line includes dns_ms, connect_ms, tls_ms, ttfb_ms, and total_ms. These map directly onto the phases you'd see inspecting a request by hand, just captured on a schedule instead of once.

Running it

There's no installer. Download the binary for your platform, place the config next to it (or point -config at a path), and run it under whatever process supervisor you already use. It exits non-zero on a malformed config and logs probe failures to stderr.