UNPKG

2.14 kBTypeScriptView Raw
1/// <reference types="node" />
2export declare const HEALTH_CHECK_GROUP = "inceptum:health";
3export declare function RegisterAsHealthCheck(target: any): void;
4export declare enum HealthCheckStatus {
5 OK = "OK",
6 NOT_READY = "NOT_READY",
7 WARNING = "WARNING",
8 CRITICAL = "CRITICAL",
9 STOPPING = "STOPPING",
10}
11export declare enum HealthCheckType {
12 CONTEXT = 0,
13 DEPENDENCY = 1,
14 GROUP = 2,
15}
16export declare class HealthCheckResult {
17 status: HealthCheckStatus;
18 message: string;
19 data: any;
20 timestamp: number;
21 constructor(status: HealthCheckStatus, message: string, timestamp?: number, data?: any);
22 static getInitialResult(): HealthCheckResult;
23 static staleResult(healthCheck: HealthCheck, lastResult: HealthCheckResult): HealthCheckResult;
24}
25export declare abstract class HealthCheck {
26 checkName: string;
27 sleepMillis: number;
28 staleNumFails: number;
29 private runImmediately;
30 started: boolean;
31 lastResult: HealthCheckResult;
32 timer: NodeJS.Timer;
33 checkRunning: boolean;
34 constructor(checkName: string, sleepMillis?: number, staleNumFails?: number, runImmediately?: boolean);
35 abstract getType(): HealthCheckType;
36 getCheckName(): string;
37 getSleepMillis(): number;
38 start(): void;
39 runCheck(): Promise<void>;
40 doStart(): void;
41 stop(): void;
42 doStop(): void;
43 isStarted(): boolean;
44 abstract doCheck(): Promise<HealthCheckResult>;
45 getLastResult(): HealthCheckResult;
46}
47export declare class HealthCheckGroup extends HealthCheck {
48 groupKey: string;
49 healthChecks: Map<string, HealthCheck>;
50 constructor(groupName: string);
51 addCheck(healthCheck: HealthCheck, asName?: string): void;
52 addCheckAs(healthCheck: HealthCheck, asName: string): void;
53 doStart(): void;
54 doStop(): void;
55 doCheck(): Promise<HealthCheckResult>;
56 getLastResult(): HealthCheckResult;
57 /**
58 * Ignore dependencies CRITICAL status. It is not considered
59 * to be part of App's health.
60 */
61 protected ignoreHealthCheckStatus(hc: HealthCheck, status: HealthCheckStatus): boolean;
62 getType(): HealthCheckType;
63}