Quantization of data streams of instrumented software
First Claim
1. A method for processing data streams generated by instrumented software, the method comprising:
- receiving a plurality of input data streams, each input data stream received from a separate instance of instrumented software executing on at least one external system, each input data stream providing values of a metric, the values generated by the instances of instrumented software at variable time intervals;
receiving a request to periodically evaluate an expression based on the plurality of input data streams;
for each input data stream, identifying a first function for aggregating values of the metric of the input data stream;
generating a plurality of quantized data streams based on the input data streams, each quantized data stream comprising data values occurring periodically at a first fixed time interval, the generating comprising, for each input data stream and for each first fixed time interval;
storing values of the metric of the input data stream received during the fixed time interval in a buffer;
determining a data value of the quantized data stream for the fixed time interval based on the values stored in the buffer by applying the identified first function for aggregating values over the values of the input data stream received within the first fixed time interval and stored in the buffer; and
sending the determined data value as the data value of the quantized data stream for the first fixed time interval;
periodically evaluating the expression based on data values of at least two of the plurality of quantized data streams to generate an output data stream, the evaluating comprising repeatedly;
applying a second function to the data values of the quantized data streams, each data value associated with a second fixed time interval, the second function aggregating values over the quantized data streams; and
sending the output data stream for display via a user interface.
4 Assignments
0 Petitions
Accused Products
Abstract
A data analysis system processes data generated by instrumented software. The data analysis system receives data streams generated by instances of instrumented software executing on systems. The data analysis system also receives metadata describing data streams. The data analysis system receives an expression based on the metadata. The data analysis system receives data of data streams for each time interval and computes the result of the expression based on the received data values. The data analysis system repeats these steps for each time interval. The data analysis system may quantize data values of data streams for each time interval by generating an aggregate value for the time interval based on data received for each data stream for that time interval. The data analysis system evaluates the expression using the quantized data for the time interval.
63 Citations
19 Claims
-
1. A method for processing data streams generated by instrumented software, the method comprising:
-
receiving a plurality of input data streams, each input data stream received from a separate instance of instrumented software executing on at least one external system, each input data stream providing values of a metric, the values generated by the instances of instrumented software at variable time intervals; receiving a request to periodically evaluate an expression based on the plurality of input data streams; for each input data stream, identifying a first function for aggregating values of the metric of the input data stream; generating a plurality of quantized data streams based on the input data streams, each quantized data stream comprising data values occurring periodically at a first fixed time interval, the generating comprising, for each input data stream and for each first fixed time interval; storing values of the metric of the input data stream received during the fixed time interval in a buffer; determining a data value of the quantized data stream for the fixed time interval based on the values stored in the buffer by applying the identified first function for aggregating values over the values of the input data stream received within the first fixed time interval and stored in the buffer; and sending the determined data value as the data value of the quantized data stream for the first fixed time interval; periodically evaluating the expression based on data values of at least two of the plurality of quantized data streams to generate an output data stream, the evaluating comprising repeatedly; applying a second function to the data values of the quantized data streams, each data value associated with a second fixed time interval, the second function aggregating values over the quantized data streams; and sending the output data stream for display via a user interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer readable non-transitory storage medium storing instructions for processing data generated by instrumented software, the instructions executable by a processor to perform operations comprising:
-
receiving a plurality of input data streams, each input data stream received from a separate instance of instrumented software executing on at least one external system, each input data stream providing values of a metric generated by the instances of instrumented software at variable time intervals; receiving a request to periodically evaluate an expression based on the plurality of input data streams; for each input data stream, identifying an aggregation function based on the metric of the input data stream; generating a plurality of quantized data streams based on the plurality of input data streams, each quantized data stream comprising data values occurring periodically at a first fixed time interval, the generating comprising, for each first fixed time interval, for each input data stream; storing values of the metric of the input data stream received during the first fixed time interval in a buffer; determining an aggregate value for the input data stream based on the values stored in the buffer by applying the identified aggregation function over data values of the input data stream received within the first fixed time interval; and sending the determined data value as the data value of the quantized data stream for the first fixed time interval; periodically evaluating the expression based on data values of the plurality of at least two of the plurality of quantized data streams to generate an output data stream, the evaluating comprising repeatedly; applying a second function to the data values of the quantized data streams, each data value associated with a second fixed time interval, the second function aggregating values over the quantized data streams; and sending the output data stream for display via a user interface.
-
-
19. 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 executable by a processor to perform operations comprising; receiving a plurality of input data streams, each input data stream received from a separate instance of instrumented software executing on at least one external system, each input data stream providing values of a metric generated by the instances of instrumented software at variable time intervals; receiving a request to periodically evaluate an expression based on the plurality of input data streams; for each input data stream, identifying an aggregation function based on the metric of the input data stream; generating a plurality of quantized data streams based on the plurality of input data streams, each quantized data stream comprising data values occurring periodically at a first fixed time interval, the generating comprising, for each first fixed time interval, for each input data stream; storing values of the metric of the input data stream received during the first fixed time interval in a buffer; determining an aggregate value for the input data stream based on the values stored in the buffer by applying the identified aggregation function over data values of the input data stream received within the first fixed time interval; and sending the determined data value as the data value of the quantized data stream for the first fixed time interval; periodically evaluating the expression based on data values of at least two of the plurality of quantized data streams to generate an output data stream, the evaluating comprising repeatedly; applying a second function to the data values of the quantized data streams, each data value associated with a second fixed time interval, the second function aggregating values over the quantized data streams; and sending the output data stream for display via a user interface.
-
Specification