Configuration
Complete configuration reference for Flakiness Detective
Configuration Object
import type { FlakinessDetectiveConfig } from '@flakiness-detective/core';
const config: FlakinessDetectiveConfig = {
timeWindow: {
days: 7
},
clustering: {
epsilon: 0.15,
minPoints: 2,
minClusterSize: 2,
distance: 'cosine',
maxClusters: 5
}
};Time Window
timeWindow.daysNumber of days to look back for test failures.
- Type: number
- Default: 7
- Range: 1-365
timeWindow: {
days: 14 // Analyze last 2 weeks
}Clustering Options
clustering.epsilonMaximum distance between two points to be considered neighbors in DBSCAN.
- Type: number
- Default: 0.15 (for cosine distance)
- Range: 0.0-1.0
- Tip: Lower values = tighter, more specific clusters
clustering.minPointsMinimum number of neighbors required for a point to be a core point in DBSCAN.
- Type: number
- Default: 2
- Range: 2-10
- Tip: Higher values = require more similar failures
clustering.minClusterSizeMinimum number of failures required to form a cluster.
- Type: number
- Default: 2
- Range: 2-100
clustering.distanceDistance metric for comparing embeddings.
- Type: 'cosine' | 'euclidean'
- Default: 'cosine'
- Recommended: Use 'cosine' for semantic embeddings
clustering.maxClustersMaximum number of clusters to return (top N by size).
- Type: number
- Default: 5
- Range: 1-100
Example Configurations
Strict Clustering
For finding only very similar failures:
{
timeWindow: { days: 7 },
clustering: {
epsilon: 0.1, // Tighter threshold
minPoints: 3, // Require more neighbors
minClusterSize: 3, // Larger clusters only
distance: 'cosine',
maxClusters: 5
}
}Loose Clustering
For finding broader patterns:
{
timeWindow: { days: 14 },
clustering: {
epsilon: 0.25, // Looser threshold
minPoints: 2, // Default
minClusterSize: 2, // Include smaller clusters
distance: 'cosine',
maxClusters: 10 // Show more clusters
}
}Production Recommended
Balanced configuration for production use:
{
timeWindow: { days: 7 },
clustering: {
epsilon: 0.15,
minPoints: 2,
minClusterSize: 2,
distance: 'cosine',
maxClusters: 5
}
}Tuning Guide
Too many clusters?
- Decrease
epsilon(0.15 → 0.1) - Increase
minPoints(2 → 3) - Increase
minClusterSize(2 → 3)
Not finding patterns?
- Increase
epsilon(0.15 → 0.2) - Increase
timeWindow.days(7 → 14) - Try
distance: 'euclidean'
Clusters too broad?
- Decrease
epsilon(0.15 → 0.12) - Use
distance: 'cosine'for semantic similarity