IP Library Granted Patent US 11,586,729
Granted Patent B2
US 11,586,729 · App. 17/332,804 · Granted Feb 21, 2023

Frequent pattern based anomaly event detection

Inventors: Zhuxuan Jin (Sunnyvale, CA); George Apostolopoulos (San Jose, CA)
Assignee: Splunk Inc.
G06F21/554G06F16/245G06F21/552G06F21/56H04L63/1416G06F2221/034
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,586,729
App. No.
17/332,804
Granted
Feb 21, 2023
Kind
B2
Abstract

A method is disclosed that includes receiving, at a computing device, an event log including multiple events, where the events are derived from machine data, determining a first score associated with a first granularity level by comparing an event from the event log with a first frequent patterns generated for the first granularity level, and determining a second score associated with a second granularity level by comparing the event with a second frequent patterns generated for the second granularity level. The method further includes determining an aggregate score for the event based on the first score and the second score, and comparing the aggregate score for the event with an anomaly score threshold. Further, the method includes issuing an alert identifying the event as an anomaly based on the aggregate score exceeding the anomaly score threshold.

Claims (101)

1. A method comprising:

receiving, at a computing device, an event log comprising a plurality of events, wherein the plurality of events is derived from machine data;

determining a first score associated with a first granularity level by comparing a first event from the event log with a first plurality of frequent patterns generated for the first granularity level;

determining a second score associated with a second granularity level by comparing the first event with a second plurality of frequent patterns generated for the second granularity level;

determining an aggregate score for the first event based on the first score and the second score;

comparing the aggregate score for the first event with an anomaly score threshold; and

issuing an alert identifying the first event as an anomaly based on the aggregate score exceeding the anomaly score threshold.

2. The method of claim 1 , wherein the first event includes a set of features, each feature of the set of features determined from one or more data items of the first event.

3. The method of claim 1 , further comprising:

determining a length of a pattern of features within the first event and a count of occurrences of the pattern of features within the plurality of events;

determining a contribution of the pattern of features to the first score based on the length and the count;

determining a penalty for an unmatched feature of the first event based on a cardinality of the plurality of events; and

averaging the contribution and the penalty, wherein the first score is based on a result of the averaging.

4. The method of claim 1 , further comprising:

determining a length of a pattern of features within the first event and a count of occurrences of the pattern of features within the plurality of events;

calculating a contribution of the pattern of features based on the length and the count;

calculating a penalty for an unmatched feature of the first event based on a cardinality of the plurality of events;

applying a weight to the penalty in response to the unmatched feature existing on a black list; and

calculating a weighted average based on the contribution, the penalty, and the weight.

5. The method of claim 1 , wherein determining the aggregate score for the first event further comprises at least one of:

multiplying the first score with the second score; or

averaging at least the first score with the second score.

6. The method of claim 1 , further comprising:

determining a third score by comparing the first event with a third plurality of frequent patterns generated for the second granularity level, wherein calculating the aggregate score for the first event comprises averaging the first score with a maximum selected from the second score and the third score.

7. The method of claim 1 , further comprising:

determining an aggregate score for a second event based on comparing the second event with the first plurality of frequent patterns and the second plurality of frequent patterns;

comparing the aggregate score for the second event with the anomaly score threshold; and

updating, in response to the aggregate score for the second event being less than the anomaly score threshold, the first plurality of frequent patterns based on the second event.

8. The method of claim 1 , further comprising:

determining, in response to the aggregate score for the first event exceeding the anomaly score threshold, a count of anomalous events having a same set of features as the first event during a time window; and

comparing the count with a maximum count, wherein issuing the alert identifying the first event is further based on the count being less than the maximum count.

9. The method of claim 1 , further comprising:

determining a second aggregate score for a second event based on comparing the second event with the first plurality of frequent patterns and the second plurality of frequent patterns;

comparing the second aggregate score with the anomaly score threshold;

determining, in response to the second aggregate score exceeding the anomaly score threshold, a count of anomalous events having a same set of features as the second event during a time window;

comparing the count with a maximum count;

reducing the aggregate score for the second event below the anomaly score threshold in response to the count exceeding the maximum count; and

updating, in response to reducing the aggregate score for the second event, at least the first plurality of frequent patterns based on the second event.

10. The method of claim 1 , further comprising:

determining a second aggregate score for a second event based on comparing the second event with the first plurality of frequent patterns and the second plurality of frequent patterns;

comparing the second aggregate score with the anomaly score threshold;

determining, in response to the aggregate score for the second event exceeding the anomaly score threshold, a count of anomalous events having a same set of features as the second event during a time window;

comparing the count with a maximum count; and

reporting the second event in response to the count exceeding the maximum count.

11. The method of claim 1 , further comprising:

determining a second aggregate score for a second event based on comparing the second event with the first plurality of frequent patterns and the second plurality of frequent patterns, wherein the second aggregate score exceeds the anomaly score threshold; and

generating a new frequent pattern by executing frequent itemset mining on at least the first event and the second event.

12. The method of claim 1 , further comprising:

identifying a first feature associated with the first event and a second feature associated with the first event, wherein the first feature is present in the first event and the second feature is not present in the first event;

generating a first binary encoding for the first event based on the first feature and the second feature;

generating a second binary encoding for a second event; and

determining the first event belongs to a first activity type and the second event belongs to a second activity type by executing a clustering algorithm on the first binary encoding and the second binary encoding, wherein the first granularity level and the second granularity level correspond to the first activity type.

13. The method of claim 1 , further comprising:

obtaining a plurality of historic events;

generating data points by executing frequent itemset mining on different subsets of the plurality of historic events using different minimum support values, wherein the different subsets have different cardinalities;

determining, using the data points, a formula to calculate minimum support;

obtaining a ratio of a desired number of frequent patterns to a cardinality of the plurality of historic events;

determining, using the formula, a minimum support value based on the ratio and the cardinality of the plurality of historic events, wherein the ratio and the cardinality of the plurality of historic events are inputs to the formula; and

generating the first plurality of frequent patterns by executing frequent itemset mining on the plurality of historic events using the minimum support value.

14. A system comprising:

memory comprising instructions; and

a computer processor for executing the instructions that cause the computer processor to perform operations comprising:

receiving an event log comprising a plurality of events, wherein the plurality of events is derived from machine data,

determining a first score associated with a first granularity level by comparing a first event from the event log with a first plurality of frequent patterns generated for the first granularity level,

determining a second score associated with a second granularity level by comparing the first event with a second plurality of frequent patterns generated for the second granularity level,

determining an aggregate score for the first event based on the first score and the second score,

comparing the aggregate score for the first event with an anomaly score threshold, and

issuing an alert identifying the first event as an anomaly based on the aggregate score exceeding the anomaly score threshold.

15. The system of claim 14 , wherein the operations further comprise:

determining a length of a pattern of features within the first event and a count of occurrences of the pattern of features within the plurality of events;

determining a contribution of the pattern of features to the first score based on the length and the count;

determining a penalty for an unmatched feature of the first event based on a cardinality of the plurality of events; and

averaging the contribution and the penalty, wherein the first score is based on a result of the averaging.

16. The system of claim 14 , wherein the operations further comprise:

determining a third score by comparing the first event with a third plurality of frequent patterns generated for the second granularity level, wherein calculating the aggregate score for the first event comprises averaging the first score with a maximum selected from the second score and the third score.

17. The system of claim 14 , wherein the operations further comprise:

identifying, within the first event, a pattern of features corresponding to a frequent pattern of the first plurality of frequent patterns;

identifying, within the first event, an unmatched feature;

determining a length of the pattern of features and a count of occurrences of the pattern of features within the plurality of events;

determining a contribution of the pattern of features to the first score based on the length and the count;

determining a penalty for the unmatched feature based on a cardinality of the plurality of events;

applying a weight to the penalty in response to the unmatched feature existing on a black list; and

determining a weighted average based on the contribution, the penalty, and the weight.

18. The system of claim 14 , the operations further comprising:

determining a second aggregate score for a second event based on comparing the second event with the first plurality of frequent patterns and the second plurality of frequent patterns;

comparing the second aggregate score with the anomaly score threshold; and

updating, in response to the second aggregate score being less than the anomaly score threshold, at least the first plurality of frequent patterns based on the second event.

19. A non-transitory computer-readable storage medium storing computer-readable program code which, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving an event log comprising a plurality of events, wherein the plurality of events is derived from machine data;

determining a first score associated with a first granularity level by comparing a first event from the event log with a first plurality of frequent patterns generated for the first granularity level;

determining a second score associated with a second granularity level by comparing the first event with a second plurality of frequent patterns generated for the second granularity level;

determining an aggregate score for the first event based on the first score and the second score;

comparing the aggregate score for the first event with an anomaly score threshold; and

issuing an alert identifying the first event as an anomaly based on the aggregate score exceeding the anomaly score threshold.

20. The non-transitory computer-readable storage medium of claim 19 , the operations further comprising:

determining a second aggregate score for a second event based on comparing the second event with the first plurality of frequent patterns and the second plurality of frequent patterns;

comparing the second aggregate score with the anomaly score threshold;

determining, in response to the aggregate score for the second event exceeding the anomaly score threshold, a count of anomalous events having a same set of features as the second event during a time window;

comparing the count with a maximum count;

reducing the aggregate score for the second event below the anomaly score threshold in response to the count exceeding the maximum count; and

updating, in response to reducing the aggregate score for the second event, at least the first plurality of frequent patterns based on the second event.

Assignments (4)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2021
From: JIN, ZHUXUAN; APOSTOLOPOULOS, GEORGE
To: SPLUNK INC.
Reel/Frame 056419/0437 →
Continuity (2)
Continuation 16399734 · Apr 30, 2019
Related Publication 20210286874A1 · Sep 16, 2021
Cited By (1)
US 12,596,830