IP Library Granted Patent US 12,361,032
Granted Patent B2
US 12,361,032 · App. 17/539,143 · Granted Jul 15, 2025

Extraction rule generation using clustering

Inventors: Li Li (Shanghai, CN); Gang Tao (Shanghai, CN); Yongxin Su (Shanghai, CN); Junqing Hao (Nanjing, CN); Ting Wang (Shanghai, CN); John Robert Coates (Berkeley, CA); Elias Haddad (San Francisco, CA); Guodong Wang (Shanghai, CN)
G06F16/287G06F16/2477G06N20/00
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,361,032
App. No.
17/539,143
Granted
Jul 15, 2025
Kind
B2
Abstract

Determining a set of extraction rules include clustering event segments into at least a first group of event segments, and determining, using first field data in the first group of event segments, a first set of extraction rules for extracting the first field data from each event segment of the first group of event segments. A determination is made that the first set of extraction rules fails to successfully extract all of the first field data. Responsive to the determination, the event segments are re-clustered into at least a second group of event segments and a third group of event segments until a successful set of extraction rules are identified. The successful set of extraction rules are stored in computer memory.

Claims (68)

1. A computer implemented method, comprising:

clustering a plurality of event segments into at least a first group of event segments, wherein each event segment of the plurality of event segments corresponds to an individual event in machine data;

determining, using first field data in the first group of event segments, a first set of extraction rules for extracting the first field data in a first plurality of fields from each event segment of the first group of event segments;

making a determination that the first set of extraction rules fail to successfully extract all of the first field data in the first plurality of fields;

re-clustering, responsive to the determination, the plurality of event segments into at least a second group of event segments and a third group of event segments until a successful set of extraction rules are identified,

wherein identifying the successful set of extraction rules comprises:

examining, for the second group of event segments, location, and content of second field data in the second group of event segments to determine a second set of extraction rules that extracts the second field data from a second plurality of fields in the second group, and

examining, for the third group of event segments, location, and content of third field data in the third group of event segments to determine a third set of extraction rules that extracts the third field data from a fourth plurality of fields in the third group; and

storing the successful set of extraction rules in computer memory.

2. The computer implemented method of claim 1 ,

wherein clustering the plurality of event segments into at least the first group of event segments further comprises clustering the plurality of event segments into at least the first group of event segments and a fourth group of event segments; and

wherein the method further comprises determining, using fourth field data in the fourth group of event segments, a fourth set of extraction rules for extracting the fourth field data in a fourth plurality of fields from each event segment of the fourth group of event segments.

3. The computer implemented method of claim 1 , further comprising:

receiving a sample of machine data in a form produced by a data source; and

performing pattern recognition to predict breakpoints in the sample, the breakpoints identifying boundaries between distinct event segments of the plurality of event segments of the sample.

4. The computer implemented method of claim 1 , further comprising:

receiving a sample of machine data in a form produced by a data source; and

comparing patterns in the sample with a plurality of delimiter patterns for a plurality of data source types to predict breakpoints in the sample, the breakpoints identifying boundaries between distinct event segments of the plurality of event segments of the sample.

5. The computer implemented method of claim 1 , further comprising:

parsing each of the plurality of event segments into a plurality of fields.

6. The computer implemented method of claim 1 , wherein the clustering is based at least in part on one or more from among connectivity-based clustering, centroid-based clustering, distribution-based clustering, density-based clustering, canopy clustering, K-means clustering, subspace clustering, and correlation clustering.

7. The computer implemented method of claim 1 , wherein the successful set of extraction rules are stored as an extraction model.

8. The computer implemented method of claim 1 , wherein the successful set of extraction rules are stored as an extraction model of a data sourcetype.

9. The computer implemented method of claim 1 , wherein classifying includes automatically identifying one or more fields in an event segment by matching patterns associated with one or more known fields of a late-binding schema, the known fields having an association with a domain category.

10. The computer implemented method of claim 1 , further comprising:

displaying the successful set of extraction rules in a graphical user interface (GUI), and

storing the successful set of extraction rules responsive to user acceptance via the GUI.

11. The computer implemented method of claim 1 , further comprising:

displaying, in a graphical user interface (GUI), a depiction of an event segment in the plurality of event segments with an extraction rule in the successful set of extraction rules in a graphical user interface (GUI), and

storing the successful set of extraction rules responsive to user acceptance via the GUI.

12. The computer implemented method of claim 1 , further comprising:

displaying, in a graphical user interface (GUI), a depiction of an event segment having one or more field portions color-coded in accordance with a particular set of extraction rules, the event segment in the plurality of event segments, and the particular set of extraction rules in the successful set of extraction rules, and

storing the successful set of extraction rules responsive to user acceptance via the GUI.

13. A system comprising:

a memory; and

a processing device coupled with the memory to perform operations comprising:

clustering a plurality of event segments into at least a first group of event segments, wherein each event segment of the plurality of event segments corresponds to an individual event in machine data;

determining, using first field data in the first group of event segments, a first set of extraction rules for extracting the first field data in a first plurality of fields from each event segment of the first group of event segments;

making a determination that the first set of extraction rules fail to successfully extract all of the first field data in the first plurality of fields;

re-clustering, responsive to the determination, the plurality of event segments into at least a second group of event segments and a third group of event segments until a successful set of extraction rules are identified, wherein identifying the successful set of extraction rules comprises:

examining, for the second group of event segments, location, and content of second field data in the second group of event segments to determine a second set of extraction rules that extracts the second field data from a second plurality of fields in the second group, and

examining, for the third group of event segments, location, and content of third field data in the third group of event segments to determine a third set of extraction rules that extracts the third field data from a fourth plurality of fields in the third group; and

storing the successful set of extraction rules in computer memory.

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

receiving a sample of machine data in a form produced by a data source; and

performing pattern recognition to predict breakpoints in the sample, the breakpoints identifying boundaries between distinct event segments of the plurality of event segments of the sample.

15. The system of claim 13 , the operations further comprising:

receiving a sample of machine data in a form produced by a data source; and

comparing patterns in the sample with a plurality of delimiter patterns for a plurality of data source types to predict breakpoints in the sample, the breakpoints identifying boundaries between distinct event segments of the plurality of event segments of the sample.

16. The system of claim 13 , wherein the clustering is based at least in part on one or more from among connectivity-based clustering, centroid-based clustering, distribution-based clustering, density-based clustering, canopy clustering, K-means clustering, subspace clustering, and correlation clustering.

17. The system of claim 13 , the operations further comprising:

displaying, in a graphical user interface (GUI), a depiction of an event segment having one or more field portions color-coded in accordance with a particular set of extraction rules, the event segment in the plurality of event segments, and the particular set of extraction rules in the successful set of extraction rules, and

storing the successful set of extraction rules responsive to user acceptance via the GUI.

18. A non-transitory computer readable storage medium encoding instructions thereon that, in response to execution by one or more processing devices, cause the one or more processing devices to perform operations comprising:

clustering a plurality of event segments into at least a first group of event segments, wherein each event segment of the plurality of event segments corresponds to an individual event in machine data;

determining, using first field data in the first group of event segments, a first set of extraction rules for extracting the first field data in a first plurality of fields from each event segment of the first group of event segments;

making a determination that the first set of extraction rules fail to successfully extract all of the first field data in the first plurality of fields;

re-clustering, responsive to the determination, the plurality of event segments into at least a second group of event segments and a third group of event segments until a successful set of extraction rules are identified,

wherein identifying the successful set of extraction rules comprises:

examining, for the second group of event segments, location, and content of second field data in the second group of event segments to determine a second set of extraction rules that extracts the second field data from a second plurality of fields in the second group, and

examining, for the third group of event segments, location, and content of third field data in the third group of event segments to determine a third set of extraction rules that extracts the third field data from a fourth plurality of fields in the third group; and

storing the successful set of extraction rules in computer memory.

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

receiving a sample of machine data in a form produced by a data source; and

performing pattern recognition to predict breakpoints in the sample, the breakpoints identifying boundaries between distinct event segments of the plurality of event segments of the sample.

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

receiving a sample of machine data in a form produced by a data source; and

comparing patterns in the sample with a plurality of delimiter patterns for a plurality of data source types to predict breakpoints in the sample, the breakpoints identifying boundaries between distinct event segments of the plurality of event segments of the sample.

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 069826/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2021
From: LI, LI; TAO, GANG; SU, YONGXIN; HAO, JUNQING; WANG, TING; COATES, JOHN ROBERT; HADDAD, ELIAS; WANG, GUODONG
To: SPLUNK INC.
Reel/Frame 058423/0754 →
Continuity (3)
Continuation 15143563 · Apr 30, 2016
Continuation In Part 15088106 · Mar 31, 2016
Related Publication 20220083572A1 · Mar 17, 2022
References Cited (43)
US 7987150B1 · Luu · 2011 [cited by examiner]
US 8751486B1 · Neeman et al. · 2014 [cited by applicant]
US 8923607B1 · Kwatra · 2014 [cited by examiner]
US 9269095B1 · Chan · 2016 [cited by examiner]
US 10410125B1 · Finkelstein · 2019 [cited by examiner]
US 10410273B1 · Finkelstein · 2019 [cited by examiner]
US 12094018B1 · O'Malley · 2024 [cited by examiner]
US 20030055625A1 · Korelsky et al. · 2003 [cited by applicant]
US 20030115189A1 · Srinivasa et al. · 2003 [cited by applicant]
US 20030149766A1 · Syvanne · 2003 [cited by applicant]
US 20040123101A1 · Rineer · 2004 [cited by applicant]
US 20050149552A1 · Chan et al. · 2005 [cited by applicant]
US 20070260567A1 · Funge · 2007 [cited by examiner]
US 20090043637A1 · Eder · 2009 [cited by examiner]
US 20100152878A1 · Chu · 2010 [cited by examiner]
US 20100262978A1 · Berdyshev · 2010 [cited by examiner]
US 20110071956A1 · Pinto et al. · 2011 [cited by applicant]
US 20110282813A1 · Sgro · 2011 [cited by examiner]
US 20120246170A1 · Iantorno · 2012 [cited by applicant]
US 20130036348A1 · Hazard · 2013 [cited by applicant]
US 20140075004A1 · Van Dusen · 2014 [cited by examiner]
US 20140153821A1 · Masuko et al. · 2014 [cited by applicant]
US 20140207784A1 · Carasso et al. · 2014 [cited by applicant]
US 20140207792A1 · Carasso et al. · 2014 [cited by applicant]
US 20150039651A1 · Kinsely et al. · 2015 [cited by applicant]
US 20150081706A1 · Elmqvist Wulcan · 2015 [cited by examiner]
US 20150154269A1 · Miller et al. · 2015 [cited by applicant]
US 20150212663A1 · Papale et al. · 2015 [cited by applicant]
US 20150324919A1 · Riggs · 2015 [cited by examiner]
US 20150356450A1 · Dursun · 2015 [cited by examiner]
US 20150378684A1 · Kaplinger et al. · 2015 [cited by applicant]
US 20160085797A1 · Patiejunas et al. · 2016 [cited by applicant]
US 20160170974A1 · Martinez Corria · 2016 [cited by examiner]
US 20160217379A1 · Patri · 2016 [cited by examiner]
US 20160239754A1 · Dursun · 2016 [cited by examiner]
US 20160283568A1 · Praver · 2016 [cited by examiner]
US 20160371603A1 · A V · 2016 [cited by examiner]
US 20170011289A1 · Gao · 2017 [cited by examiner]
US 20170345102A1 · Okumura · 2017 [cited by applicant]
Unnamed, “Splunk Getting Data in Manual”, Splunk Version 4.2.2, Published Feb. 1, 2001, 180 pages. [cited by applicant]
Cheok, R., “Wireshark: A Guide to Color My Packets”, SANS Institute 2014, Jan. 1, 2014, 37 pages. [cited by applicant]
Kimura et al., “Spatio-Temporal Factorization of for Data for Understanding Network Events”, IEEE INFOCOM, Jan. 1, 2014, 9 pages. [cited by applicant]
Henty, S., “UI Response Times”, Medium.com, Dec. 21, 2015, 8 pages. [cited by applicant]