Learn
Healthchecks

Healthchecks

Healthcheck endpoints get hit constantly: Kubernetes probes every few seconds, load balancer target checks, uptime monitors. Storing every successful probe wastes events on traffic that carries no information. Traceway detects healthcheck endpoints at ingestion and only stores requests that fail.

How It Works

When a request arrives, Traceway checks three things:

  1. The method is GET or HEAD
  2. The path matches a known healthcheck pattern (built-in or custom)
  3. The response status is below 400

If all three are true, the request is dropped before it is written to the database. Its child spans are dropped with it. Requests with status 400 or higher are always stored, so a failing healthcheck still shows up in your endpoints list and can trigger alerts.

Exceptions are never dropped. If a healthcheck request returns 200 but captures an exception, both the exception and its trace are kept so the error remains fully inspectable.

Built-In Paths

Path matching is case-insensitive and ignores trailing slashes. The built-in list covers the common conventions:

PatternUsed by
/health, /healthcheck, /health-check, /health_checkGeneral convention, ASP.NET Core
/healthz, /livez, /readyzKubernetes probes
/live, /ready, /aliveContainer orchestrators, lightship
/ping, /status, /heartbeatLoad balancers, uptime monitors
/upRails 7.1+, Laravel 11+
/htDjango (django-health-check)
/actuator/health and sub-pathsSpring Boot Actuator
any path ending in /healthCatches prefixed variants like /api/health

Custom Paths

If your healthcheck lives somewhere else, add custom paths in the project settings. Each entry is one path, with optional wildcards:

PatternMatches
/internal/probeExactly /internal/probe
/checks/*Any path starting with /checks/
*/livenessAny path ending in /liveness

Configuration

The feature is enabled by default for every project you create in the dashboard or through the API. Projects seeded by embedded mode's WithDefaultProject start with it off, so turn it on there if you want probe traffic filtered. To change it, open the project switcher, edit the project, and use the Drop healthy healthcheck requests toggle. The same form accepts custom paths (one per line) and shows the full built-in list.

Turning the toggle off stores all healthcheck traffic again. The setting takes effect immediately, no restart required.

Dashboard Behavior

Endpoints detected as healthchecks show a Healthcheck badge in the endpoints list and on the endpoint detail page. Because only failures are stored, the request count and error rate for these endpoints reflect failures only. A healthcheck endpoint showing a 100% error rate means "every stored request failed", which is expected, since healthy requests are not stored at all.

Dropped requests are counted in the traceway.ingest.healthchecks_dropped self-monitoring metric, tagged with the ingestion signal (native or traces), so you can verify the filter is working.