PropertyDamage.FailureIntelligence.Patterns (PropertyDamage v0.2.0)
View SourcePattern detection and clustering for failures.
Identifies groups of similar failures and extracts common patterns that can help understand systemic issues.
Summary
Functions
Analyzes a set of failures to identify patterns.
Clusters failures by similarity.
Clusters fingerprints by similarity.
Extracts common traits from a cluster of fingerprints.
Finds the best matching cluster for a failure.
Detects if a new failure matches an existing pattern.
Types
@type analysis() :: %{ clusters: [cluster()], singleton_count: non_neg_integer(), total_failures: non_neg_integer(), most_common_pattern: pattern() | nil, pattern_summary: String.t() }
@type cluster() :: %{ id: String.t(), fingerprints: [PropertyDamage.FailureIntelligence.Fingerprint.t()], representative: PropertyDamage.FailureIntelligence.Fingerprint.t(), size: non_neg_integer(), pattern: pattern() }
Functions
@spec analyze( [PropertyDamage.FailureReport.t()], keyword() ) :: analysis()
Analyzes a set of failures to identify patterns.
Returns clustering information and pattern summaries.
@spec cluster_failures( [PropertyDamage.FailureReport.t()], keyword() ) :: [cluster()]
Clusters failures by similarity.
Uses a simple agglomerative clustering approach with the given threshold.
@spec cluster_fingerprints( [PropertyDamage.FailureIntelligence.Fingerprint.t()], float() ) :: [cluster()]
Clusters fingerprints by similarity.
@spec extract_common_traits([PropertyDamage.FailureIntelligence.Fingerprint.t()]) :: map()
Extracts common traits from a cluster of fingerprints.
@spec find_best_match(PropertyDamage.FailureReport.t(), [cluster()]) :: {cluster(), float()} | nil
Finds the best matching cluster for a failure.
Returns {cluster, score} or nil if no clusters are provided.
@spec match_pattern(PropertyDamage.FailureReport.t(), [cluster()], keyword()) :: cluster() | nil
Detects if a new failure matches an existing pattern.
Returns the matching cluster if found, nil otherwise.