n8n
Version:
n8n Workflow Automation Tool
64 lines (63 loc) • 2.48 kB
TypeScript
import { type InsightsSummary, type InsightsDateRange } from '@n8n/api-types';
import { Logger } from 'n8n-core';
import type { ExecutionLifecycleHooks } from 'n8n-core';
import { type IRun } from 'n8n-workflow';
import { License } from '../../license';
import type { PeriodUnit } from './database/entities/insights-shared';
import { InsightsByPeriodRepository } from './database/repositories/insights-by-period.repository';
import { InsightsCollectionService } from './insights-collection.service';
import { InsightsCompactionService } from './insights-compaction.service';
export declare class InsightsService {
private readonly insightsByPeriodRepository;
private readonly compactionService;
private readonly collectionService;
private readonly license;
private readonly logger;
constructor(insightsByPeriodRepository: InsightsByPeriodRepository, compactionService: InsightsCompactionService, collectionService: InsightsCollectionService, license: License, logger: Logger);
startBackgroundProcess(): void;
stopBackgroundProcess(): void;
shutdown(): Promise<void>;
workflowExecuteAfterHandler(ctx: ExecutionLifecycleHooks, fullRunData: IRun): Promise<void>;
getInsightsSummary({ periodLengthInDays, }: {
periodLengthInDays: number;
}): Promise<InsightsSummary>;
getInsightsByWorkflow({ maxAgeInDays, skip, take, sortBy, }: {
maxAgeInDays: number;
skip?: number;
take?: number;
sortBy?: string;
}): Promise<{
count: number;
data: {
workflowId: string;
projectId: string;
workflowName: string;
failed: number;
projectName: string;
total: number;
succeeded: number;
failureRate: number;
runTime: number;
averageRunTime: number;
timeSaved: number;
}[];
}>;
getInsightsByTime({ maxAgeInDays, periodUnit, }: {
maxAgeInDays: number;
periodUnit: PeriodUnit;
}): Promise<{
date: string;
values: {
total: number;
succeeded: number;
failed: number;
failureRate: number;
averageRunTime: number;
timeSaved: number;
};
}[]>;
getAvailableDateRanges(): InsightsDateRange[];
getMaxAgeInDaysAndGranularity(dateRangeKey: InsightsDateRange['key']): InsightsDateRange & {
maxAgeInDays: number;
};
}