IP Library Granted Patent US 11,055,405
Granted Patent B1
US 11,055,405 · App. 16/399,734 · Granted Jul 6, 2021

Anomaly event detection using frequent patterns

Inventors: Zhuxuan Jin (San Jose, 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,055,405
App. No.
16/399,734
Granted
Jul 6, 2021
Kind
B1
Abstract

A method is disclosed. The method includes: receiving, at a computing device, an event log including a plurality of events, where the plurality of events are derived from machine data generated by components of an information technology environment; 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.

Claims (148)

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 generated by one or more components of an information technology environment;

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, the first plurality of frequent patterns determined from at least a first historic event in the information technology environment;

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, the second plurality of frequent patterns determined from at least a second historic event in the information technology environment;

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, the anomaly score threshold indicating when events in the information technology environment are anomalous; 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:

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

identifying, within the first event, an unmatched feature of the first event.

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;

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.

5. 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.

6. 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.

7. 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.

8. 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.

9. 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.

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 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.

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;

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.

12. 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.

13. 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.

14. The method of claim 1 , further comprising:

obtaining a plurality of historic events associated with the first granularity level;

determining a minimum support value based on the plurality of historic events; and

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

15. 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.

16. The method of claim 1 , wherein the first historic event associated with first granularity level is the same as the second historic event associated with the second granularity level.

17. The method of claim 1 , wherein the first historic event associated with the first granularity level is different than the second historic event associated with the second granularity level.

18. 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 generated by one or more components of an information technology environment;

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, the first plurality of frequent patterns determined from at least a first historic event in the information technology environment;

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, the second plurality of frequent patterns determined from at least a second historic event in the information technology environment;

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, the anomaly score threshold indicating when events in the information technology environment are anomalous; and

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

19. The system of claim 18 , 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.

20. The system of claim 18 , 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.

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

determining, in response to the aggregate score 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.

22. The system of claim 18 , 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 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 second aggregate score 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.

23. The system of claim 18 , the operations 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 at least 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.

24. The system of claim 18 , the operations 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.

25. 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 generated by one or more components of an information technology environment;

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, the first plurality of frequent patterns determined from at least a first historic event in the information technology environment;

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, the second plurality of frequent patterns determined from at least a second historic event in the information technology environment;

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, the anomaly score threshold indicating when events in the information technology environment are anomalous; and

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

26. The non-transitory computer-readable storage medium of claim 25 , wherein generating the first score comprises:

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.

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

determining a third score by comparing the first event with a third plurality of frequent patterns associated with 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.

28. The non-transitory computer-readable storage medium of claim 25 , 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.

29. The non-transitory computer-readable storage medium of claim 25 , 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.

30. The non-transitory computer-readable storage medium of claim 25 , the operations 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 the 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.

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 May 1, 2019
From: JIN, ZHUXUAN; APOSTOLOPOULOS, GEORGE
To: SPLUNK INC.
Reel/Frame 049054/0658 →
Cited By (8)
US 12,284,087 US 12,306,960 US 12,309,039 US 12,348,539 US 12,445,344 US 12,526,293 US 12,645,794 US 12,645,797