@visulima/health-check
Version:
A library built to provide support for defining service health for node services. It allows you to register async health checks for your dependencies and the service itself, provides a health endpoint that exposes their status, and health metrics.
63 lines (52 loc) • 2.15 kB
text/typescript
import { Options } from 'cacheable-lookup';
import { extendedPingOptions } from 'pingman';
import { IncomingMessage, ServerResponse } from 'node:http';
interface HealthReportEntry {
displayName: string;
health: {
healthy: boolean;
message?: string;
timestamp: string;
};
meta?: any;
}
type Checker = () => Promise<HealthReportEntry>;
type HealthReport = Record<string, HealthReportEntry>;
interface HealthCheck {
addChecker: (service: string, checker: Checker) => void;
getReport: () => Promise<{
healthy: boolean;
report: HealthReport;
}>;
isLive: () => Promise<boolean>;
servicesList: string[];
}
interface DnsOptions extends Options {
family?: "all" | 4 | 6;
hints?: number;
}
declare const dnsCheck: (host: string, expectedAddresses?: string[], options?: DnsOptions) => Checker;
declare const httpCheck: (host: RequestInfo | URL, options?: {
expected?: {
body?: string;
status?: number;
};
fetchOptions?: RequestInit;
}) => Checker;
declare const nodeEnvironmentCheck: (expectedEnvironment?: string) => Checker;
declare const pingCheck: (host: string, options?: extendedPingOptions) => Checker;
declare const _default$1: (healthCheck: HealthCheck, sendHeader?: boolean | undefined) => <Request extends IncomingMessage, Response extends ServerResponse>(_: Request, response: Response) => Promise<void>;
declare const _default: <Request extends IncomingMessage, Response extends ServerResponse>(healthCheck: HealthCheck) => (_request: Request, response: Response) => Promise<void>;
declare class Healthcheck implements HealthCheck {
private healthCheckers;
addChecker(service: string, checker: Checker): void;
getReport(): Promise<{
healthy: boolean;
report: HealthReport;
}>;
isLive(): Promise<boolean>;
get servicesList(): string[];
private invokeChecker;
}
export { type Checker, Healthcheck as HealthCheck, dnsCheck, _default$1 as healthCheckHandler, _default as healthReadyHandler, httpCheck, nodeEnvironmentCheck as nodeEnvCheck, pingCheck };
export = as healthReadyHandler;