UNPKG

@dudousxd/nestjs-telescope

Version:

Laravel Telescope-style observability console for NestJS — core: watchers, recorder, correlation, SQLite store, headless API.

37 lines 1.84 kB
import { type OnApplicationShutdown, type OnModuleInit } from '@nestjs/common'; import { type TelescopeModuleOptions } from './telescope.options.js'; import { TelescopeService } from './telescope.service.js'; /** * Overhead guard / overload protection. Samples the process event-loop delay * histogram (`perf_hooks.monitorEventLoopDelay`) on an interval and PAUSES the * Recorder when the p99 lag exceeds the configured threshold, resuming once it * recovers — so a telescope under load can never amplify an incident. * * A startup grace (default ~5s) discards the first measurement windows so the * synchronous bootstrap stall (DI wiring, migrations, codegen blocking the loop) * never trips the guard on a transient — protection arms once the loop settles. * * Degrades to a no-op when `perf_hooks.monitorEventLoopDelay` is unavailable or * when `overloadProtection: false`. The sampling interval is unref'd so it never * keeps the host's event loop alive. */ export declare class TelescopeOverloadGuard implements OnModuleInit, OnApplicationShutdown { private readonly options; private readonly service; private readonly logger; private readonly maxLagMs; /** * Number of leading sample windows still to discard for the startup grace. * Derived from `startupGraceMs` over the sample interval; counts down on every * sample taken while still warming up, after which the guard judges normally. */ private warmupSamplesRemaining; private monitor; private timer; constructor(options: TelescopeModuleOptions, service: TelescopeService); onModuleInit(): void; onApplicationShutdown(): void; /** Read the rolling p99 lag and pause/resume the Recorder around the threshold. */ private sample; } //# sourceMappingURL=telescope-overload-guard.service.d.ts.map