IP Library Granted Patent US 10,810,107
Granted Patent B2
US 10,810,107 · App. 16/538,634 · Granted Oct 20, 2020

User interface for specifying data stream processing language programs for analyzing instrumented software

Inventors: Eyal Ophir (Mountain View, CA); Kevin Cheng (Sunnyvale, CA)
Assignee: Splunk Inc.
G06F11/3644G06F11/3692G06F16/24568G06F16/24578
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 10,810,107
App. No.
16/538,634
Filed
Aug 12, 2019
Granted
Oct 20, 2020
Kind
B2
Art Unit
2196
USPC
717/125
Abstract

An instrumentation analysis system processes data streams by executing instructions specified using a data stream language program. A user interface allows users to specify data stream language programs. The user interface presents widgets to the user to specify various components of a data stream language program including a filter expression, an analytical function representing an aggregation or transformation, and so on. The user interface allows users to specify an expression based on results of previously specified data stream language programs. The instrumentation analysis system processes the data stream language programs specified by the user to generate a set of result data streams and plots the result data streams, for example, on a screen of a client device.

Claims (74)

1. A computer-implemented method for specifying data stream language programs through a user interface for analyzing instrumented software, the method comprising:

generating the user interface for specifying a data stream language program, the user interface comprising one or more user interface elements for receiving filter expressions;

receiving, through the user interface, specifications of the data stream language program for generating plot lines based on filtered data of a plurality of data streams, the filtered data generated based on received filter expressions;

selecting a subset of the plurality of data streams based on the filtered data;

generating the plot lines based on the subset of the plurality of data streams; and

receiving one or more analytic functions for a plot line, each analytic function specifying either a transformation or an aggregation.

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

generating, through the data stream language programs, a set of intermediate result data streams.

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

receiving a specification of a combined data stream language program as an expression based on the labels.

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

generating a visual representation of a set of final result data streams generated from the combined data stream language program, each final result data stream comprising result data values, each result data value obtained by evaluating a filter expression based on the labels by replacing each label by a data value from an intermediate result data stream of a data stream language program corresponding to the label.

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

generating, through the one or more analytic functions, an aggregate value based on a plurality of data values, each data value obtained from a distinct input data stream for each of the data stream language programs.

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

receiving a plurality of input data streams providing data generated by instrumented software executing on one or more external systems.

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

selecting a metric from a catalog of metrics for each of the data stream language programs.

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

calculating, through the one or more analytic functions, a mean over a collection of data points by dividing a sum of the collection by a number of the data points in the collection.

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

generating, through the data stream language program, data streams that identify a limiting resource.

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

receiving, through the user interface, a detector to alert a user when an overall utilization of the limiting resource reaches a limit.

11. A system for specifying data stream language programs through a user interface for analyzing instrumented software, the system comprising:

at least one memory having instructions stored thereon; and

at least one processor configured to execute the instructions, wherein the at least one processor is configured to:

generate the user interface for specifying a data stream language program, the user interface comprising one or more user interface elements for receiving filter expressions;

receive, through the user interface, specifications of the data stream language program for generating plot lines based on filtered data of a plurality of data streams, the filtered data generated based on received filter expressions;

select a subset of the plurality of data streams based on the filtered data;

generate the plot lines based on the subset of the plurality of data streams; and

receive one or more analytic functions for a plot line, each analytic function specifying either a transformation or an aggregation.

12. The system of claim 11 , further configured to:

generate, through the data stream language program, a set of intermediate result data streams.

13. The system of claim 11 , further configured to:

receive a specification of a combined data stream language program as an expression based on the labels.

14. The system of claim 13 , further configured to:

generate a visual representation of a set of final result data streams generated from the combined data stream language program, each final result data stream comprising result data values, each result data value obtained by evaluating a filter expression based on the labels by replacing each label by a data value from an intermediate result data stream of a data stream language program corresponding to the label.

15. The system of claim 11 , further configured to:

generate, through the one or more analytic functions, an aggregate value based on a plurality of data values, each data value obtained from a distinct input data stream for each of the data stream language programs.

16. The system of claim 11 , further configured to:

receive a plurality of input data streams providing data generated by instrumented software executing on one or more external systems.

17. The system of claim 11 , further configured to:

select a metric from a catalog of metrics for each of the data stream language programs.

18. The system of claim 11 , further configured to:

calculate, through the one or more analytic functions, a mean over a collection of data points by dividing a sum of the collection by a number of the data points in the collection.

19. The system of claim 11 , further configured to:

generate, through the data stream language program, data streams that identify a limiting resource.

20. The system of claim 19 , further configured to:

receive, through the user interface, a detector to alert a user when an overall utilization of the limiting resource reaches a limit.

21. A non-transitory computer-readable storage medium comprising instructions stored thereon, which when executed by one or more processors, cause the one or more processors to perform operations for specifying data stream language programs through a user interface for analyzing instrumented software, comprising:

generating the user interface for specifying a data stream language program, the user interface comprising one or more user interface elements for receiving filter expressions;

receiving, through the user interface, specifications of the data stream language program for generating plot lines based on filtered data of a plurality of data streams, the filtered data generated based on received filter expressions;

selecting a subset of the plurality of data streams based on the filtered data;

generating the plot lines based on the subset of the plurality of data streams; and

receiving one or more analytic functions for a plot line, each analytic function specifying either a transformation or an aggregation.

22. The non-transitory computer-readable storage medium of claim 21 , further configured for:

generating, through the data stream language program, a set of intermediate result data streams.

23. The non-transitory computer-readable storage medium of claim 21 , further configured for:

receiving a specification of a combined data stream language program as an expression based on the labels.

24. The non-transitory computer-readable storage medium of claim 23 , further configured for:

generating a visual representation of a set of final result data streams generated from the combined data stream language program, each final result data stream comprising result data values, each result data value obtained by evaluating a filter expression based on the labels by replacing each label by a data value from an intermediate result data stream of a data stream language program corresponding to the label.

25. The non-transitory computer-readable storage medium of claim 21 , further configured for:

generating, through the one or more analytic functions, an aggregate value based on a plurality of data values, each data value obtained from a distinct input data stream for each of the data stream language programs.

26. The non-transitory computer-readable storage medium of claim 21 , further configured for:

receiving a plurality of input data streams providing data generated by instrumented software executing on one or more external systems.

27. The non-transitory computer-readable storage medium of claim 21 , further configured for:

selecting a metric from a catalog of metrics for each of the data stream language programs.

28. The non-transitory computer-readable storage medium of claim 21 , further configured for:

calculating, through the one or more analytic functions, a mean over a collection of data points by dividing a sum of the collection by a number of the data points in the collection.

29. The non-transitory computer-readable storage medium of claim 21 , further configured for:

generating, through the data stream language programs, data streams that identify a limiting resource.

30. The non-transitory computer-readable storage medium of claim 29 , further configured for:

generating labels associated with the plot line.

Assignments (6)
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 Jul 20, 2020
From: OPHIR, EYAL; CHENG, KEVIN
To: SIGNALFX, INC.
Reel/Frame 053256/0046 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSPACED COMPANY NAME OF SIGNAL FX, INC PREVIOUSLY RECORDED ON REEL 052858 FRAME 0782. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jun 16, 2020
From: SOLIS MERGER SUB II, LLC; SIGNALFX, INC.
To: SIGNALFX LLC
Reel/Frame 052958/0872 →
MERGER AND CHANGE OF NAME Recorded Jun 5, 2020
From: SOLIS MERGER SUB II, LLC; SIGNAL FX, INC.; SIGNALFX LLC
To: SIGNALFX LLC
Reel/Frame 052858/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2020
From: SIGNALFX LLC
To: SPLUNK INC.
Reel/Frame 052858/0787 →
Continuity (4)
Continuation 15867663 · Jan 10, 2018
Continuation 15277787 · Sep 27, 2016
Provisional Application 62307188 · Mar 11, 2016
Related Publication 20200042428A1 · Feb 6, 2020
Cited By (2)
US 12,455,888 US 12,468,562