anomaly_correlation
anomaly_correlation ¤
AnomalyCorrelationEvents ¤
AnomalyCorrelationEvents(
dataframe: DataFrame,
*,
event_uuid: str = "corr:anomaly",
value_column: str = "value_double",
time_column: str = "systime"
)
Bases: Base
Correlation: Anomaly Correlation Analysis
Correlate anomaly events across multiple signals to find coincident patterns, cascading failures, and root cause candidates.
Methods: - coincident_anomalies: Find anomalies that co-occur within a time window. - cascade_detection: Detect anomaly cascades (A precedes B within a window). - root_cause_ranking: Rank signals by how often their anomalies precede others.
coincident_anomalies ¤
coincident_anomalies(
signal_uuids: List[str],
*,
z_threshold: float = 3.0,
coincidence_window: str = "5min",
min_signals: int = 2
) -> pd.DataFrame
Find anomalies that co-occur across multiple signals within a time window.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
signal_uuids
|
List[str]
|
List of signal UUIDs to analyze. |
required |
z_threshold
|
float
|
Z-score threshold for anomaly detection per signal. |
3.0
|
coincidence_window
|
str
|
Time window for considering anomalies coincident. |
'5min'
|
min_signals
|
int
|
Minimum number of signals with anomalies to flag. |
2
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
DataFrame
|
window_start, window_end, uuid, is_delta, anomaly_count, signal_uuids_involved |
cascade_detection ¤
cascade_detection(
leader_uuid: str,
follower_uuid: str,
*,
z_threshold: float = 3.0,
max_delay: str = "10min"
) -> pd.DataFrame
Detect anomaly cascades: leader anomaly followed by follower anomaly.
Identifies cases where an anomaly in signal A is followed by an anomaly in signal B within the max_delay window.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
leader_uuid
|
str
|
UUID of the leading signal. |
required |
follower_uuid
|
str
|
UUID of the following signal. |
required |
z_threshold
|
float
|
Z-score threshold for anomaly detection. |
3.0
|
max_delay
|
str
|
Maximum time between leader and follower anomaly. |
'10min'
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
DataFrame
|
leader_time, follower_time, uuid, is_delta, leader_uuid, follower_uuid, delay_seconds |
root_cause_ranking ¤
root_cause_ranking(
signal_uuids: List[str],
*,
z_threshold: float = 3.0,
max_delay: str = "10min"
) -> pd.DataFrame
Rank signals by how often their anomalies precede others.
For each pair of signals, counts how many times signal A's anomaly precedes signal B's anomaly within max_delay. Signals that frequently lead are potential root causes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
signal_uuids
|
List[str]
|
List of signal UUIDs. |
required |
z_threshold
|
float
|
Z-score threshold. |
3.0
|
max_delay
|
str
|
Maximum delay for cascade detection. |
'10min'
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
DataFrame
|
signal_uuid, leader_count, follower_count, leader_ratio, rank |