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. TracePath detects healthcheck endpoints at ingestion and only stores requests that fail.

How It Works

When a span arrives on the OTLP trace ingestion path, TracePath 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. 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.

Dashboard behaviour

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.

Why it is worth leaving on

A Kubernetes liveness probe every two seconds is about 1.3 million spans a month, per pod, carrying no information. Dropping them keeps them out of your ingest allowance and out of every endpoint list you read. Failures still land, so the probe is still a signal — just a quiet one.