@dudousxd/nestjs-telescope
Version:
Laravel Telescope-style observability console for NestJS — core: watchers, recorder, correlation, SQLite store, headless API.
33 lines • 1.24 kB
TypeScript
import type { Entry } from '../entry/entry.js';
export interface DurationStats {
avg: number;
p50: number;
p95: number;
max: number;
}
export interface QueueMetrics {
queue: string;
total: number;
completed: number;
failed: number;
/** failed / total, in [0, 1]. */
failureRate: number;
/** total jobs / window minutes. */
throughputPerMinute: number;
/** Processing-time stats (from `Entry.durationMs`); null when no samples. */
runtimeMs: DurationStats | null;
/** Queue-wait stats (from `JobContent.waitMs`); null when no samples. */
waitMs: DurationStats | null;
}
export interface QueueMetricsReport {
windowStart: string;
windowEnd: string;
windowMs: number;
queues: QueueMetrics[];
}
/** Group `job` entries by queue and compute per-queue throughput, runtime/wait
* percentiles, and failure rate over the [windowStart, windowEnd] window.
* Non-job entries are ignored. Pure: callers fetch the entries; entries are
* assumed already windowed (createdAt is not re-checked here). */
export declare function aggregateQueueMetrics(entries: Entry[], windowStart: Date, windowEnd: Date): QueueMetricsReport;
//# sourceMappingURL=queue-metrics.d.ts.map