@jackchuka/gql-ingest
Version:
A CLI tool for ingesting data from files into a GraphQL API. Supports CSV, JSON, JSONL, and YAML file formats.
52 lines • 1.61 kB
TypeScript
export interface EntityMetrics {
rowsProcessed: number;
successfulRows: number;
failedRows: number;
duration: number;
}
export interface ProcessingMetrics {
totalRows: number;
successfulOperations: number;
failedOperations: number;
totalDuration: number;
entities: Record<string, EntityMetrics>;
}
export interface InternalMetrics {
totalEntities: number;
totalSuccesses: number;
totalFailures: number;
entityMetrics: Map<string, InternalEntityMetrics>;
requestDurations: number[];
retryAttempts: number;
retrySuccesses: number;
retryFailures: number;
startTime: number;
endTime?: number;
}
export interface InternalEntityMetrics {
entityName: string;
successCount: number;
failureCount: number;
startTime: number;
endTime?: number;
}
export declare class MetricsCollector {
private metrics;
constructor();
startEntityProcessing(entityName: string): void;
recordSuccess(entityName: string): void;
recordFailure(entityName: string): void;
finishEntityProcessing(entityName: string): void;
finishProcessing(): InternalMetrics;
getEntityMetrics(entityName: string): InternalEntityMetrics | undefined;
getMetrics(): ProcessingMetrics;
getTotalProcessed(): number;
getSuccessRate(): number;
recordRequestDuration(duration: number): void;
recordRetrySuccess(attempts: number): void;
recordRetryFailure(attempts: number): void;
getAverageRequestDuration(): number;
getDurationMs(): number;
generateSummary(): string;
}
//# sourceMappingURL=metrics.d.ts.map