IP Library Granted Patent US 12,032,629
Granted Patent B2
US 12,032,629 · App. 17/874,751 · Granted Jul 9, 2024

Anomaly and outlier explanation generation for data ingested to a data intake and query system

Inventor: Ram Sriharsha (Oakland, CA)
Assignee: Splunk Inc.
G06F16/901G06F9/3885G06F9/544G06F16/144G06F16/156G06F16/168G06F16/2246G06F16/23G06F16/2379G06F16/242G06F16/24534G06F16/24568G06F16/2465G06F16/285G06F17/16G06F17/18G06F18/2148G06F18/2185G06N20/00G06N20/20G06F16/22G06F16/2264G06F16/2282
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 12,032,629
App. No.
17/874,751
Granted
Jul 9, 2024
Kind
B2
Abstract

Systems and methods are described for processing ingested data, detecting anomalies in the ingested data, and providing explanations of a possible cause of the detected anomalies as the data is being ingested. For example, a token or field in the ingested data may have an anomalous value. Tokens or fields from another portion of the ingested data can be extracted and analyzed to determine whether there is any correlation between the values of the extracted tokens or fields and the anomalous token or field having an anomalous value. If a correlation is detected, this information can be surfaced to a user.

Claims (87)

1. A method, comprising:

as implemented by a component in a data processing pipeline,

obtaining a plurality of raw machine data elements, wherein each raw machine data element in the plurality comprises a plurality of positions that are each separated by a delimiter, and

wherein each raw machine data element in the plurality comprises a string in each respective position;

extracting a first string in a first position in the plurality of positions from a first raw machine data element in the plurality of raw machine data elements, the first raw machine data element generated by one or more components in an information technology environment;

comparing the first string to a second string in a data pattern in a first position;

determining that the first string extracted from the first raw machine data element is anomalous in response to the first string being different than the second string;

extracting a third string in the first position in a second raw machine data element in the plurality of raw machine data elements;

comparing the third string to the second string;

determining that the third string extracted from the second raw machine data element is anomalous in response to the third string being different than the second string;

determining that a second position in the plurality of positions in a third raw machine data element in the plurality of raw machine data elements will have a first range of values if a fifth string in the first position in the third raw machine data element is different than the second string based on the first and second raw machine data elements; and

causing display of information indicating a correlation between the first range of values and the fifth string being anomalous by being different than the second string.

2. The method of claim 1 , further comprising storing a sixth string in the second position in the second raw machine data element, wherein the sixth string is a minimum value or a maximum value in the first range of values.

3. The method of claim 1 , further comprising:

storing a sixth string in the second position in the first raw machine data element, wherein the sixth string is a maximum value in the first range of values; and

storing a seventh string in the second position in the second raw machine data element,

wherein the seventh string is a minimum value in the first range of values.

4. The method of claim 1 , further comprising:

storing a sixth string in the second position in the first raw machine data element, wherein the sixth string is a maximum value in the first range of values;

storing a seventh string in the second position in the second raw machine data element,

wherein the seventh string is a minimum value in the first range of values;

extracting an eighth string in the first position in a fourth raw machine data element in the plurality of raw machine data elements and a ninth string in the second position in the fourth raw machine data element, the fourth raw machine data element generated by the one or more components in the information technology environment prior to generation of the first raw machine data element;

comparing the eighth and ninth strings to the data pattern;

determining that the eighth string extracted from the fourth raw machine data element is not anomalous in response to the comparison of the eighth and ninth strings to the data pattern;

determining that the ninth string extracted from the fourth raw machine data element does not fall within the first range of values; and

determining that the first range of values correlates to a string in the first position being anomalous.

5. The method of claim 1 , wherein a sixth string in the second position in the first raw machine data element matches a specific value.

6. The method of claim 1 , further comprising:

determining that a sixth string in a third position in the plurality of positions in the first raw machine data element corresponds to a second range of values; and

causing display of information indicating that there is a correlation between a string in the second position having the first range of values, a string in the third position having the second range of values, and a string in the first position having an anomalous value.

7. The method of claim 1 , further comprising causing display of information indicating that there is a correlation between a string in the second position having the first range of values and a string in the first position having an anomalous value, wherein the information comprises at least one of a notification, a table, a graph, a chart, or an annotated version of the first raw machine data element.

8. The method of claim 1 , wherein the first position corresponds to user device usage, and wherein the second position corresponds to a user device model.

9. The method of claim 1 , wherein the first string is extracted from the first raw machine data element within a threshold time of the first raw machine data element being ingested into a data intake and query system.

10. The method of claim 1 , wherein a stream of raw machine data is ingested into a data intake and query system in sequence, wherein the stream of raw machine data comprises the first raw machine data element, the second raw machine data element, and other raw machine data elements in the plurality of raw machine data elements that follow the first raw machine data element in time, and wherein determining that the first string extracted from the first raw machine data element is anomalous further comprises determining that the first string is anomalous prior to any of the other raw machine data elements being stored in the data intake and query system.

11. The method of claim 1 , wherein a stream of raw machine data is ingested into a data intake and query system in sequence, wherein the stream of raw machine data comprises the first raw machine data element, the second raw machine data element, and other raw machine data elements in the plurality of raw machine data elements that follow the first raw machine data element in time, and wherein the method further comprises determining in sequence, for each of the other raw machine data elements, whether the respective other raw machine data element is anomalous as the respective other raw machine data element is ingested into the data intake and query system and subsequent to determining that the first string extracted from the first raw machine data element is anomalous.

12. The method of claim 1 , wherein extracting the first string in the first position from the first raw machine data element further comprises generating a string vector using the first string.

13. The method of claim 1 , wherein determining that the first string extracted from the first raw machine data element is anomalous further comprises:

assigning the first string extracted from the first raw machine data element to a new data pattern separate from the data pattern based on a distance between the first string and a sixth string extracted from the first raw machine data element and the data pattern being greater than a minimum cluster distance; and

determining that the first string is anomalous in response to an assignment of the first and sixth strings extracted from the first raw machine data element to the new data pattern.

14. The method of claim 1 , wherein determining that the first string extracted from the first raw machine data element is anomalous further comprises:

assigning the first string extracted from the first raw machine data element to a new data pattern separate from the data pattern based on a distance between the first string and a sixth string extracted from the first raw machine data element and the data pattern being greater than a minimum cluster distance;

updating the minimum cluster distance based on a creation of the new data pattern; and

determining that the first string is anomalous in response to an assignment of the first and sixth strings extracted from the first raw machine data element to the new data pattern.

15. A system, comprising:

one or more data stores including computer-executable instructions; and

one or more processors configured to execute the computer-executable instructions, wherein execution of the computer-executable instructions causes the system to:

obtain a plurality of raw machine data elements, wherein each raw machine data element in the plurality comprises a plurality of positions that are each separated by a delimiter, and

wherein each raw machine data element in the plurality comprises a string in each respective position;

extract a first string in a first position in the plurality of positions from a first raw machine data element in the plurality of raw machine data elements, the first raw machine data element generated by one or more components in an information technology environment;

compare the first string to a second string in a data pattern in a first position;

determine that the first string extracted from the first raw machine data element is anomalous in response to the first string being different than the second string;

extract a third string in the first position in a second raw machine data element in the plurality of raw machine data elements;

compare the third string to the second string;

determine that the third string extracted from the second raw machine data element is anomalous in response to the third string being different than the second string;

determine that a second position in the plurality of positions in a third raw machine data element in the plurality of raw machine data elements will have a first range of values if a fifth string in the first position in the third raw machine data element is different than the second string based on the first and second raw machine data elements; and

cause display of information indicating a correlation between the first range of values and the fifth string being anomalous by being different than the second string.

16. The system of claim 15 , wherein execution of the computer-executable instructions further causes the system to:

store a sixth string in the second position in the first raw machine data element, wherein the sixth string is a maximum value in the first range of values; and

store a seventh string in the second position in the second raw machine data element, wherein the seventh string is a minimum value in the first range of values.

17. The system of claim 15 , wherein execution of the computer-executable instructions further causes the system to:

store a sixth string in the second position in the first raw machine data element, wherein the sixth string is a maximum value in the first range of values;

store a seventh string in the second position in the second raw machine data element, wherein the seventh string is a minimum value in the first range of values;

extract an eighth string in the first position in a fourth raw machine data element in the plurality of raw machine data elements and a ninth string in the second position in the fourth raw machine data element, the fourth raw machine data element generated by the one or more components in the information technology environment prior to generation of the first raw machine data element;

compare the eighth and ninth strings to the data pattern;

determine that the eighth string extracted from the fourth raw machine data element is not anomalous in response to the comparison of the eighth and ninth strings to the data pattern;

determine that the ninth string extracted from the fourth raw machine data element does not fall within the first range of values; and

determine that the first range of values correlates to a string in the first position being anomalous.

18. The system of claim 15 , wherein execution of the computer-executable instructions further causes the system to cause display of information indicating that there is a correlation between a string in the second position having the first range of values and a string in the first position having an anomalous value, wherein the information comprises at least one of a notification, a table, a graph, a chart, or an annotated version of the first raw machine data element.

19. Non-transitory computer-readable media comprising instructions executable by a computing system to:

obtain a plurality of raw machine data elements, wherein each raw machine data element in the plurality comprises a plurality of positions that are each separated by a delimiter, and

wherein each raw machine data element in the plurality comprises a string in each respective position;

extract a first string in a first position in the plurality of positions from a first raw machine data element in the plurality of raw machine data elements, the first raw machine data element generated by one or more components in an information technology environment;

compare the first string to a second string in a data pattern in a first position;

determine that the first string extracted from the first raw machine data element is anomalous in response to the first string being different than the second string;

extract a third string in the first position in a second raw machine data element in the plurality of raw machine data elements;

compare the third string to the second string;

determine that the third string extracted from the second raw machine data element is anomalous in response to the third string being different than the second string;

determine that a second position in the plurality of positions in a third raw machine data element in the plurality of raw machine data elements will have a first range of values if a fifth string in the first position in the third raw machine data element is different than the second string based on the first and second raw machine data elements; and

cause display of information indicating a correlation between the first range of values and the fifth string being anomalous by being different than the second string.

20. The non-transitory computer-readable media of claim 19 , further comprising instructions executable by a computing system to:

store a sixth string in the second position in the first raw machine data element, wherein the sixth string is a maximum value in the first range of values;

store a seventh string in the second position in the second raw machine data element, wherein the seventh string is a minimum value in the first range of values;

extract an eighth string in the first position in a fourth raw machine data element in the plurality of raw machine data elements and a ninth string in the second position in the fourth raw machine data element, the fourth raw machine data element generated by the one or more components in the information technology environment prior to generation of the first raw machine data element;

compare the eighth and ninth strings to the data pattern;

determine that the eighth string extracted from the fourth raw machine data element is not anomalous in response to the comparison of the eighth and ninth strings to the data pattern;

determine that the ninth string extracted from the fourth raw machine data element does not fall within the first range of values; and

determine that the first range of values correlates to a string in the first position being anomalous.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2024
From: SRIHARSHA, RAM
To: SPLUNK INC.
Reel/Frame 066905/0984 →
Continuity (3)
Continuation 16779460 · Jan 31, 2020
Provisional Application 62923437 · Oct 18, 2019
Related Publication 20220358124A1 · Nov 10, 2022
Cited By (2)
US 12,476,991 US 12,602,368