IP Library Granted Patent US 11,681,707
Granted Patent B1
US 11,681,707 · App. 17/691,878 · Granted Jun 20, 2023

Analytics query response transmission

Inventors: Bo Lei (San Jose, CA); Ryan Lee Faircloth (Lakeland, FL); Marios Iliofotou (San Jose, CA); Sathyanarayanan Kavacheri (Fremont, CA); Sadia R. Poddar (Cupertino, CA); Anurag Singla (Cupertino, CA)
Assignee: SPLUNK INC.
G06F16/24554G06F9/542G06F16/2228
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,681,707
App. No.
17/691,878
Granted
Jun 20, 2023
Kind
B1
Abstract

Transmission handling of analytics query response includes a search head, in a data intake and query system, receiving a query from an analytics system. The search head distributes at least a portion of the query to at least one indexer for processing the query. The at least one indexer transmits, bypassing the search head, and to the analytics system, events matching the query. The search head receives from the at least one indexer, data regarding the events, and sends the data regarding the events to the analytics system.

Claims (87)

1. A method comprising:

receiving, by an analytics system, an original query request for continual monitoring;

generating, by the analytics system, a data stream object for the original query request;

determining, by the analytics system, a plurality of parameters for the data stream object;

generating, by the analytics system, a query using the original query request and the plurality of parameters;

transmitting, by the analytics system, the query to a search head;

receiving, by the search head in a data intake and query system, the query from the analytics system;

distributing, by the search head, a portion of the query to an indexer for processing the query;

transmitting, by the indexer, bypassing the search head, and to the analytics system, a plurality of events matching the query;

receiving, by the search head, from the indexer, data regarding the plurality of events;

sending, by the search head, the data regarding the plurality of events to the analytics system;

processing, by the analytics system, the plurality of events, wherein processing the plurality of events comprising obtaining an analytics system event count;

comparing the analytics system event count with an event count received from the search head to obtain a comparison result, the event count received from the search head being in the data regarding the plurality of events; and

determining whether data loss exists based on the comparison result.

2. The method of claim 1 , wherein the data regarding the plurality of events is the event count.

3. The method of claim 1 , further comprising:

distributing, by the search head, analytics client code to the indexer when the indexer is determined to be missing the analytics client code, wherein the analytics client code is configured to process the portion of the query.

4. The method of claim 1 , further comprising:

summing an event count across each of the indexer to obtain a total count, wherein sending the data regarding the plurality of events comprises sending the total count to the analytics system.

5. The method of claim 1 , further comprising:

receiving, by the indexer, the portion of the query from the search head;

obtaining, by the indexer, the plurality of events from a data store matching the portion of the query;

adding, by the indexer, additional information to the plurality of events according to a returned event parameter to create a plurality of modified events;

partitioning, by the indexer, a plurality of chunks of the plurality of modified events according to a transmit parameter in the portion of the query to create a plurality of partitions; and

transmitting, by the indexer and to the analytics system, the plurality of partitions.

6. The method of claim 1 , wherein the query comprises: the original query request, an appended analytics search, a returned event parameter, a transmit parameter, and a post processing parameter.

7. The method of claim 1 , further comprising:

executing, by indexer code executing on the indexer, a client code command to transmit the plurality of events to an analytics client code executing on the indexer, wherein the analytics client code transmits the plurality of events matching the query.

8. The method of claim 1 , wherein the generating of the query is performed for each of a plurality of time intervals.

9. The method of claim 1 ,

wherein the generating of the query is performed for each of a plurality of time intervals, and

wherein the plurality of time intervals is continuous.

10. The method of claim 1 , further comprising:

transforming, by the search head, a post processing parameter for a total count in the query to request a local count and create an updated query,

wherein distributing the portion of the query comprises sending the updated query.

11. The method of claim 1 , further comprising:

generating, by the indexer, a plurality of messages comprising the plurality of events, each of the plurality of messages comprising a subset of the plurality of events with additional information, wherein the additional information is defined according to a returned event parameter in the query.

12. The method of claim 1 , wherein the query comprises a plurality of returned event parameters, wherein the plurality of returned event parameters comprises a data stream identifier, an analytics system identifier, and a formatting type, and wherein the plurality of returned event parameters is appended as additional information to the plurality of events.

13. The method of claim 1 , wherein the query comprises a plurality of transmit parameters, wherein the plurality of transmit parameters comprises a server identifier, a topic identifier, and a message size limit.

14. The method of claim 1 , wherein the plurality of events comprises raw machine data comprising a plurality of timestamp entries.

15. A system comprising:

an analytics server comprising an analytics system, the analytics system configured to:

receive an original query request for continual monitoring,

generate a data stream object for the original query request,

determine a plurality of parameters for the data stream object,

generate a query using the original query request and the plurality of parameters, and

transmit the query to a search head;

the search head, located in a data intake and query system, the search head configured to:

receive the query from the analytics system,

distribute a portion of the query to an indexer server for processing the query,

receive, from the indexer server, data regarding a plurality of events, and

send the data regarding the plurality of events to the analytics system; and

the indexer server, located in the data intake and query system and communicatively connected to the search head, the indexer server configured to transmit, bypassing the search head, and to the analytics system, the plurality of events matching the query,

wherein the analytics server is further configured to:

process the plurality of events, wherein processing the plurality of events comprising obtaining an analytics system event count;

compare the analytics system event count with an event count received from the search head to obtain a comparison result, the event count received from the search head being in the data regarding the plurality of events; and

determine whether data loss exists based on the comparison result.

16. The system of claim 15 , wherein the search head comprises analytics client code and a code manager stored in memory, and wherein the code manager is further configured to:

distribute, the analytics client code to the indexer server when the indexer server is determined to be missing the analytics client code, wherein the analytics client code is configured to process the query.

17. The system of claim 15 , wherein the search head is further configured to:

sum an event count across each of the indexer server to obtain a total count, wherein sending the data regarding the plurality of events comprises sending the total count to the analytics system.

18. The system of claim 17 ,

wherein the analytics system is further configured to:

receive the plurality of events from the indexer server,

preprocess, to create preprocessed data, the plurality of events according to additional information added to the plurality of events by the indexer server, the additional information specified in the query, and

store the preprocessed data.

19. A system comprising

a memory;

a computer processor;

analytics system code stored in the memory, that when executed by the computer processor causes the computer processor to:

receive an original query request for continual monitoring;

generate a data stream object for the original query request;

determine a plurality of parameters for the data stream object;

generate a query using the original query request and the plurality of parameters; and

transmit the query to a search head;

indexer code stored in the memory, that when executed by the computer processor causes the computer processor to:

receive a portion of the query from the search head,

obtain a plurality of events from a data store matching the portion of the query,

execute a client code command to transmit the plurality of events to an analytics client code, and

transmit data regarding the plurality of events to the search head; and

the analytics client code stored in the memory, that when executed by the computer processor causes the computer processor to:

partition a plurality of chunks of events according to a transmit parameter in the portion of the query to create a plurality of partitions, and

transmit, to the analytics system code originating the query and bypassing the search head, the plurality of partitions,

wherein the analytics system code further causes the computer processor to:

process, the plurality of events, wherein processing the plurality of events comprising obtaining an analytics system event count;

compare the analytics system event count with an event count received from the search head to obtain a comparison result, the event count received from the search head being in the data regarding the plurality of events; and

determine whether data loss exists based on the comparison result.

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 Jul 11, 2022
From: LEI, BO; FAIRCLOTH, RYAN LEE; ILIOFOTOU, MARIOS; KAVACHERI, SATHYANARAYANAN; PODDAR, SADIA R.; SINGLA, ANURAG
To: SPLUNK INC.
Reel/Frame 060477/0835 →
Continuity (1)
Continuation 16138266 · Sep 21, 2018