Health Probe Telemetry Filtering
Health Probe Telemetry Filtering
Successful platform probe traffic is filtered out of shared backend traces and logs to reduce observability spend without hiding real failures.
Filtered probe endpoints
Only these exact probe paths are suppressible:
/health/alive/api/health
Normalization rules:
- Query strings are ignored for matching.
- A trailing slash is treated as the same route.
- Matching is exact after normalization.
Examples that are filtered when they return 2xx or 3xx:
/health/health//health?check=readiness/alive/api/health
Examples that are not filtered:
/healthz/healthy/api/v1/auth/webhooks/health/api/v1/smsc/health- Any probe route returning
4xxor5xx - Any probe route where no response status code is available
Suppression rules
Telemetry is suppressed only when both conditions are true:
- The normalized request path matches one of the exact probe paths above.
- The response status code is explicitly in the
200-399range.
This means:
- Healthy readiness/liveness noise is dropped.
- Unhealthy probes such as
503 Service Unavailableare still visible. - Domain health endpoints used by operators or integrations remain visible.
Backend implementation points
Shared filtering is applied in two places:
- Tracing:
HealthCallFilterProcessorsuppresses only successful server spans for probe endpoints. - Logging: shared Serilog setup excludes only successful probe request logs when path and status code properties are present.
Frontend / portal behavior
Portal server entries keep /api/health as the first request-handling branch so probes return before React Start or proxy handling. We intentionally do not add broad browser-side ignoreUrls filtering for /api/health, because that would also hide failed health calls.
Verification queries
Use these checks after deployment.
Trace queries
Look for successful probes — the expected result is no data:
Code
Or, for older semantic convention tags:
Code
Look for failed probes — the expected result is data is still present:
Code
Log queries
Look for successful probe request logs — the expected result is no data:
Code
Look for failed probes — the expected result is data is still present:
Code
Look for domain health endpoints — the expected result is data is still present when called:
Code
Adjust field names to your backend if your log or trace store exposes equivalent properties such as
Path,http.target, orhttp.status_code.