@iota-big3/sdk-production
Version:
Production readiness tools and utilities for SDK
95 lines • 2.19 kB
TypeScript
/**
* Health Check System
* Comprehensive health monitoring for production systems
*/
import { EventEmitter } from 'events';
export interface HealthCheckConfig {
interval?: number;
timeout?: number;
retries?: number;
thresholds?: {
healthy?: number;
degraded?: number;
};
}
export interface HealthCheck {
name: string;
check: () => Promise<HealthStatus>;
critical?: boolean;
timeout?: number;
}
export interface HealthStatus {
status: 'healthy' | 'degraded' | 'unhealthy';
message?: string;
details?: any;
responseTime?: number;
}
export interface SystemHealth {
status: 'healthy' | 'degraded' | 'unhealthy';
timestamp: Date;
checks: Record<string, HealthStatus>;
version: string;
uptime: number;
}
export declare class HealthCheckSystem extends EventEmitter {
private config;
private checks;
private lastResults;
private checkInterval?;
private startTime;
constructor(config?: HealthCheckConfig);
/**
* Register a health check
*/
register(): void;
/**
* Start health check monitoring
*/
start(): void;
/**
* Stop health check monitoring
*/
stop(): void;
/**
* Run all health checks
*/
private runChecks;
/**
* Execute a single health check with retries
*/
private executeCheck;
/**
* Get current system health
*/
getSystemHealth(): SystemHealth;
/**
* Express middleware for health endpoint
*/
expressMiddleware(): (req: any, res: any) => Promise<void>;
}
/**
* Common health checks
*/
export declare const CommonHealthChecks: {
/**
* Database health check
*/
database(knex: any): HealthCheck;
/**
* Redis health check
*/
redis(client: any): HealthCheck;
/**
* Memory health check
*/
memory(maxHeapMB?: number): HealthCheck;
/**
* Disk space health check
*/
diskSpace(minFreeGB?: number): HealthCheck;
/**
* External API health check
*/
externalApi(url: string, expectedStatus?: number): HealthCheck;
};
//# sourceMappingURL=health-check-system.d.ts.map