Real-time processing of data streams received from instrumented software
First Claim
1. A method for processing data generated by instrumented software, the method comprising:
- receiving, by an analysis system, information identifying a set of data streams, each data stream generated by an instance of instrumented software executing on an external system;
receiving a specification of an expression, the expression processing data values of the set of data streams, each of the data values associated with a time interval of a plurality of time intervals for evaluating the expression, each time interval having a beginning point and an end point; and
for each of the plurality of time intervals for evaluating the expression;
for each data stream of the set of data streams, determining a maximum expected delay for the data stream, the maximum expected delay representing a limit on arrival delay within the time interval for a data value of the data stream from a corresponding instance of instrumented software to the analysis system, wherein the maximum expected delay is less than a length of the time interval,monitoring the set of data streams for arrival of data values within the time interval,modifying the set of data streams for the time interval by excluding a data stream if the data value of the data stream fails to arrive within the maximum expected delay for the data stream after the beginning point of the time interval,evaluating the expression using the arrived data values of the modified set of data streams for the time interval, andprior to the end point of the time interval, sending a value of the evaluated expression for presentation.
6 Assignments
0 Petitions
Accused Products
Abstract
An analysis system receives data streams generated by instances of instrumented software executing on external systems. The analysis system evaluates an expression using data values of the data streams over a plurality of time intervals. For example, the analysis system may aggregate data values of data streams for each time interval. The analysis system determines whether or not a data stream is considered for a time interval based on when the data value arrives during the time interval. The analysis system determines a maximum expected delay value for each data stream being processed. The analysis system evaluates the expression using data values that arrive before their maximum expected delay values. The analysis system also determines a failure threshold value for a data stream. If a data value of a data stream fails to arrive before the failure threshold value, the analysis system marks the data stream as dead.
75 Citations
20 Claims
-
1. A method for processing data generated by instrumented software, the method comprising:
-
receiving, by an analysis system, information identifying a set of data streams, each data stream generated by an instance of instrumented software executing on an external system; receiving a specification of an expression, the expression processing data values of the set of data streams, each of the data values associated with a time interval of a plurality of time intervals for evaluating the expression, each time interval having a beginning point and an end point; and for each of the plurality of time intervals for evaluating the expression; for each data stream of the set of data streams, determining a maximum expected delay for the data stream, the maximum expected delay representing a limit on arrival delay within the time interval for a data value of the data stream from a corresponding instance of instrumented software to the analysis system, wherein the maximum expected delay is less than a length of the time interval, monitoring the set of data streams for arrival of data values within the time interval, modifying the set of data streams for the time interval by excluding a data stream if the data value of the data stream fails to arrive within the maximum expected delay for the data stream after the beginning point of the time interval, evaluating the expression using the arrived data values of the modified set of data streams for the time interval, and prior to the end point of the time interval, sending a value of the evaluated expression for presentation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer readable non-transitory storage medium storing instructions for processing data generated by instrumented software, the instructions when executed by a processor cause the processor to perform the steps of:
-
receiving, by an analysis system, information identifying a set of data streams, each data stream generated by an instance of instrumented software executing on an external system; receiving a specification of an expression, the expression processing data values of the set of data streams, each of the data values associated with a time interval of a plurality of time intervals for evaluating the expression, each time interval having a beginning point and an end point; and for each of the plurality of time intervals for evaluating the expression; for each data stream of the set of data streams, determining a maximum expected delay for the data stream, the maximum expected delay representing a limit on arrival delay within the time interval for a data value of the data stream from a corresponding instance of instrumented software to the analysis system, wherein the maximum expected delay is less than a length of the time interval, monitoring the set of data streams for arrival of data values within the time interval, modifying the set of data streams for the time interval by excluding a data stream if the data value of the data stream fails to arrive within the maximum expected delay for the data stream after the beginning point of the time interval, evaluating the expression using the arrived data values of the modified set of data streams for the time interval, and prior to the end point of the time interval, sending a value of the evaluated expression for presentation. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer-implemented system for processing data generated by instrumented software, the system comprising:
-
a computer processor; and a computer readable non-transitory storage medium storing instructions thereon, the instructions when executed by a processor cause the processor to perform the steps of; receiving, by an analysis system, information identifying a set of data streams, each data stream generated by an instance of instrumented software executing on an external system; receiving a specification of an expression, the expression processing data values of the set of data streams, each of the data values associated with a time interval of a plurality of time intervals for evaluating the expression, each time interval having a beginning point and an end point; and for each of the plurality of time intervals for evaluating the expression; for each data stream of the set of data streams, determining a maximum expected delay for the data stream, the maximum expected delay representing a limit on arrival delay within the time interval for a data value of the data stream from a corresponding instance of instrumented software to the analysis system, wherein the maximum expected delay is less than a length of the time interval, monitoring the set of data streams for arrival of data values within the time interval, modifying the set of data streams for the time interval by excluding a data stream if the data value of the data stream fails to arrive within the maximum expected delay for the data stream after the beginning point of the time interval, evaluating the expression using the arrived data values of the modified set of data streams for the time interval, and prior to the end point of the time interval, sending a value of the evaluated expression for presentation.
-
Specification