agentic-qe
Version:
Agentic Quality Engineering Fleet System - AI-driven quality management platform
224 lines • 6.33 kB
TypeScript
/**
* ProductionIntelligenceAgent - Converts production data into test scenarios
*
* Implements incident replay testing, RUM analysis, anomaly detection,
* load pattern analysis, and feature usage analytics to close the
* production-to-testing feedback loop.
*
* Based on SPARC methodology and AQE Fleet specification
*/
import { BaseAgent, BaseAgentConfig } from './BaseAgent';
import { QETask } from '../types';
export interface ProductionIntelligenceConfig extends BaseAgentConfig {
monitoringPlatforms?: {
datadog?: {
apiKey: string;
appKey: string;
site?: string;
};
newRelic?: {
apiKey: string;
accountId: string;
};
grafana?: {
url: string;
apiKey: string;
};
};
thresholds?: {
anomalyStdDev: number;
errorRateSpike: number;
latencyDegradation: number;
minIncidentOccurrences: number;
};
features?: {
incidentReplay: boolean;
rumAnalysis: boolean;
anomalyDetection: boolean;
loadPatternAnalysis: boolean;
featureUsageAnalytics: boolean;
};
}
export interface ProductionIncident {
id: string;
timestamp: string;
severity: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
service: string;
error: string;
affectedUsers: number;
duration: number;
region: string;
context: {
systemState: {
cpu: number;
memory: number;
connections: number;
queueDepth: number;
cacheHitRate: number;
};
requestTrace?: {
traceId: string;
spanId: string;
duration: number;
hops: Array<{
service: string;
duration: number;
timeout?: boolean;
}>;
};
userContext?: {
userId: string;
sessionId: string;
userAgent: string;
location: string;
};
environmentalFactors?: {
trafficSpike?: boolean;
deploymentRecent?: boolean;
externalServiceDegraded?: string;
databaseSlowQuery?: boolean;
};
};
}
export interface RUMData {
timeWindow: string;
totalSessions: number;
totalPageViews: number;
userJourneys: UserJourney[];
deviceDistribution: Record<string, number>;
browserDistribution: Record<string, number>;
performanceMetrics: {
FCP: {
p50: number;
p95: number;
p99: number;
};
LCP: {
p50: number;
p95: number;
p99: number;
};
FID: {
p50: number;
p95: number;
p99: number;
};
CLS: {
p50: number;
p95: number;
p99: number;
};
};
errorPatterns: ErrorPattern[];
featureUsage: Record<string, FeatureUsageMetrics>;
}
export interface UserJourney {
pattern: string;
frequency: number;
avgDuration: number;
conversionRate: number;
dropoffPoints?: Array<{
step: string;
dropoffRate: number;
reason: string;
}>;
steps?: JourneyStep[];
}
export interface JourneyStep {
timestamp: string;
action: string;
duration: number;
metadata?: Record<string, any>;
}
export interface ErrorPattern {
error: string;
frequency: number;
affectedUsers: number;
browsers?: string[];
regions?: string[];
pages?: string[];
timePattern?: string;
userImpact: 'LOW' | 'MEDIUM' | 'HIGH';
}
export interface FeatureUsageMetrics {
usage: number;
satisfaction?: number;
clickthrough?: number;
conversion?: number;
}
export interface LoadPattern {
dailyPattern: {
hourly: Array<{
hour: number;
rps: number;
}>;
peakHours: number[];
lowTrafficHours: number[];
};
weeklyPattern: Record<string, {
rps: number;
conversionRate: number;
}>;
seasonalPattern?: Record<string, {
rps: number;
spike: number;
}>;
endpointDistribution: Record<string, number>;
userBehaviorPatterns: Record<string, any>;
}
export interface AnomalyDetection {
type: 'ERROR_RATE_SPIKE' | 'LATENCY_DEGRADATION' | 'USER_BEHAVIOR_ANOMALY' | 'THROUGHPUT_DROP';
severity: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
details: {
current: number;
baseline: number;
deviation: number;
magnitude: number;
confidence: number;
};
affectedUsers?: number;
affectedEndpoints?: string[];
recommendation: string;
hypothesis?: string;
}
export declare class ProductionIntelligenceAgent extends BaseAgent {
private readonly config;
private baselineMetrics;
private monitoringClients;
constructor(config: ProductionIntelligenceConfig);
protected initializeComponents(): Promise<void>;
protected performTask(task: QETask): Promise<any>;
protected loadKnowledge(): Promise<void>;
protected cleanup(): Promise<void>;
private performIncidentReplay;
private generateIncidentTestScenario;
private performRUMAnalysis;
private analyzeUserJourneys;
private identifyErrorPatterns;
private generatePerformanceInsights;
private generateTestsFromRUMData;
private performAnomalyDetection;
private detectErrorRateSpike;
private detectLatencyDegradation;
private detectBehaviorAnomaly;
private calculateConfidence;
private performLoadPatternAnalysis;
private extractLoadPattern;
private generateLoadTestScript;
private generateLoadTestRecommendations;
private performFeatureUsageAnalytics;
private fetchFeatureUsageData;
private analyzeFeaturePriority;
private identifyUnusedFeatures;
private generateTestsFromIncidents;
private generateTestsFromRUM;
private analyzeProductionVsStaging;
private initializeMonitoringClients;
private loadBaselineMetrics;
private registerProductionEventHandlers;
private fetchRUMData;
private fetchIncidents;
private fetchProductionMetric;
private fetchStagingMetric;
}
//# sourceMappingURL=ProductionIntelligenceAgent.d.ts.map