Default implementation of IHealthService.
Manages indicator registration and aggregation for health checks.
M90b: selected indicators run CONCURRENTLY, each raced against a
runtime-owned deadline (indicatorTimeoutMs, default 5,000). Sequential
awaiting multiplied outage latency — a 2-second outage across six
dependency indicators took 12+ seconds, the measured X29-2 /health —
and one never-settling indicator left the whole endpoint pending
forever. A timeout is recorded as { status: 'down', data: { reason: 'timeout' } }, a rejection as { status: 'down', data: { reason: 'error' } } with the thrown value never serialized into the report;
each indicator's latency is measured individually; and checks is
assembled in registration order so the report's shape is stable even
though execution is not.
check(): Promise<HealthReport>
{@inheritDoc IHealthService.check}
checkLive(): Promise<HealthReport>
{@inheritDoc IHealthService.checkLive}
Only runs the "self" indicator.
checkReady(): Promise<HealthReport>
{@inheritDoc IHealthService.checkReady}
Runs all indicators except "self".
registerIndicator(name: string,indicator: HealthIndicatorFn): void
{@inheritDoc IHealthService.registerIndicator}