mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-16 06:06:18 -08:00
* docs(performance): plan Xtream benchmark * feat(xtream-mock-server): add deterministic 100k fixture * style(xtream-mock-server): apply repository formatting * fix(xtream-mock-server): harden performance fixture data * feat(xtream-mock-server): add performance control plane * docs(performance): correct Xtream capture plan * fix(xtream-mock-server): harden performance controls * fix(xtream-mock-server): harden control lifecycle * feat(performance): add Xtream preload markers * feat(performance): trace Xtream main phases * feat(performance): mark Xtream store publications * feat(performance): trace Xtream database phases * feat(performance): trace Xtream delete cancellation * feat(performance): capture Xtream phase attribution * feat(performance): mark Sources Xtream refresh * test(performance): define Xtream benchmark evidence contracts * test(performance): add Xtream benchmark runner * test(performance): surface failure evidence writes * test(performance): align database read clock * test(performance): preserve capture failure contracts
44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
import type { RendererPerformancePhaseEvent } from '@iptvnator/shared/logging';
|
|
|
|
import type { XtreamScenarioId } from './xtream-benchmark-contract';
|
|
|
|
export const XTREAM_RENDERER_STATE_KEY = '__iptvnatorXtreamRendererCapture';
|
|
export const XTREAM_RENDERER_STOPPED_KEY =
|
|
'__iptvnatorXtreamRendererCaptureStopped';
|
|
|
|
export interface XtreamRendererDbEvent {
|
|
readonly current: number | null;
|
|
readonly epochMs: number;
|
|
readonly increment: number | null;
|
|
readonly operation: string;
|
|
readonly operationId: string | null;
|
|
readonly phase: string | null;
|
|
readonly playlistId: string | null;
|
|
readonly status: string;
|
|
readonly total: number | null;
|
|
}
|
|
|
|
export interface XtreamRendererProbeMetrics {
|
|
readonly cancelEligibleProgressEpochMs: number | null;
|
|
readonly cancellationClickEpochMs: number | null;
|
|
readonly dbCancellationTerminalEpochMs: number | null;
|
|
readonly dbOperationEvents: readonly XtreamRendererDbEvent[];
|
|
readonly domReadyEpochMs: number | null;
|
|
readonly frameGapsMs: readonly number[];
|
|
readonly heartbeatDelaysMs: readonly number[];
|
|
readonly invalidReason: string | null;
|
|
readonly longTasksMs: readonly number[];
|
|
readonly operationStartEpochMs: number;
|
|
readonly performancePhaseEvents: readonly RendererPerformancePhaseEvent[];
|
|
readonly routeReadyEpochMs: number | null;
|
|
readonly scenarioId: XtreamScenarioId;
|
|
readonly storeTerminalEpochMs: number | null;
|
|
readonly terminalEpochMs: number | null;
|
|
readonly uiPaintedEpochMs: number | null;
|
|
}
|
|
|
|
export interface XtreamRendererProbeOptions {
|
|
readonly scenarioId: XtreamScenarioId;
|
|
readonly sourceTitle: string;
|
|
}
|