feat(history): add package lifecycle telemetry
This commit is contained in:
+99
-11
@@ -470,7 +470,7 @@ export interface AudioStripFileResult {
|
||||
languages?: string;
|
||||
}
|
||||
|
||||
export interface AudioStripSummary {
|
||||
export interface AudioStripSummary {
|
||||
at: number;
|
||||
candidates: number;
|
||||
remuxed: number;
|
||||
@@ -478,10 +478,72 @@ export interface AudioStripSummary {
|
||||
skippedNoGerman: number;
|
||||
skippedNoTool: number;
|
||||
failed: number;
|
||||
files: AudioStripFileResult[];
|
||||
}
|
||||
|
||||
export interface PackageEntry {
|
||||
files: AudioStripFileResult[];
|
||||
}
|
||||
|
||||
export type PackageResultStatus = "completed" | "partial" | "failed" | "cancelled";
|
||||
export type FailurePhase = "download" | "extract" | "remux" | "cleanup" | null;
|
||||
|
||||
export interface ArchiveOperationMetric {
|
||||
id: string;
|
||||
name: string;
|
||||
itemIds: string[];
|
||||
partCount: number;
|
||||
startedAt: number;
|
||||
completedAt: number;
|
||||
durationMs: number;
|
||||
status: "completed" | "failed" | "cancelled";
|
||||
errorCategory: string;
|
||||
}
|
||||
|
||||
export interface RemuxOperationMetric {
|
||||
id: string;
|
||||
fileName: string;
|
||||
startedAt: number;
|
||||
completedAt: number;
|
||||
durationMs: number;
|
||||
status: "completed" | "failed" | "cancelled";
|
||||
errorCategory: string;
|
||||
}
|
||||
|
||||
export interface PackageTelemetry {
|
||||
package: PackageEntry;
|
||||
items: DownloadItem[];
|
||||
archiveOperations?: ArchiveOperationMetric[];
|
||||
remuxOperations?: RemuxOperationMetric[];
|
||||
outputCount?: number;
|
||||
cleanupErrorCategory?: string;
|
||||
}
|
||||
|
||||
export interface PackageResult {
|
||||
packageId: string;
|
||||
name: string;
|
||||
status: PackageResultStatus;
|
||||
startedAt: number;
|
||||
downloadEndedAt: number;
|
||||
postProcessStartedAt: number;
|
||||
completedAt: number;
|
||||
downloadDurationSeconds: number;
|
||||
extractionDurationSeconds: number;
|
||||
remuxDurationSeconds: number;
|
||||
postProcessDurationSeconds: number;
|
||||
totalDurationSeconds: number;
|
||||
totalBytes: number;
|
||||
downloadedBytes: number;
|
||||
averageDownloadSpeedBps: number;
|
||||
successfulFiles: number;
|
||||
failedFiles: number;
|
||||
cancelledFiles: number;
|
||||
archiveCount: number;
|
||||
partCount: number;
|
||||
outputCount: number;
|
||||
failurePhase: FailurePhase;
|
||||
errorCategory: string;
|
||||
archiveOperations: ArchiveOperationMetric[];
|
||||
remuxOperations: RemuxOperationMetric[];
|
||||
}
|
||||
|
||||
export interface PackageEntry {
|
||||
id: string;
|
||||
name: string;
|
||||
outputDir: string;
|
||||
@@ -500,8 +562,17 @@ export interface PackageEntry {
|
||||
cleanedUrls?: string[];
|
||||
cleanedProviders?: DebridProvider[];
|
||||
downloadStartedAt?: number;
|
||||
downloadCompletedAt?: number;
|
||||
createdAt: number;
|
||||
downloadCompletedAt?: number;
|
||||
downloadEndedAt?: number;
|
||||
postProcessQueuedAt?: number;
|
||||
postProcessStartedAt?: number;
|
||||
postProcessCompletedAt?: number;
|
||||
terminalAt?: number;
|
||||
archiveOperations?: ArchiveOperationMetric[];
|
||||
remuxOperations?: RemuxOperationMetric[];
|
||||
outputCount?: number;
|
||||
cleanupErrorCategory?: string;
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
}
|
||||
|
||||
@@ -829,10 +900,27 @@ export interface HistoryEntry {
|
||||
provider: DebridProvider | null;
|
||||
completedAt: number;
|
||||
durationSeconds: number;
|
||||
status: "completed" | "deleted";
|
||||
outputDir: string;
|
||||
urls?: string[];
|
||||
}
|
||||
status: PackageResultStatus | "deleted";
|
||||
outputDir: string;
|
||||
urls?: string[];
|
||||
startedAt?: number;
|
||||
downloadEndedAt?: number;
|
||||
postProcessStartedAt?: number;
|
||||
downloadDurationSeconds?: number;
|
||||
extractionDurationSeconds?: number;
|
||||
remuxDurationSeconds?: number;
|
||||
postProcessDurationSeconds?: number;
|
||||
totalDurationSeconds?: number;
|
||||
successfulFiles?: number;
|
||||
failedFiles?: number;
|
||||
cancelledFiles?: number;
|
||||
archiveCount?: number;
|
||||
partCount?: number;
|
||||
outputCount?: number;
|
||||
failurePhase?: FailurePhase;
|
||||
archiveOperations?: ArchiveOperationMetric[];
|
||||
remuxOperations?: RemuxOperationMetric[];
|
||||
}
|
||||
|
||||
export interface HistoryState {
|
||||
entries: HistoryEntry[];
|
||||
|
||||
Reference in New Issue
Block a user