IP Library Granted Patent US 11,650,908
Granted Patent B1
US 11,650,908 · App. 17/698,959 · Granted May 16, 2023

Processing data streams received from instrumented software in real time using incremental-decremental implementation of the KPSS stationarity statistic

Inventor: Joseph Ari Ross (Redwood City, CA)
Assignee: Splunk Inc.
G06F11/3644G06F11/3419G06F11/3452G06F17/11G06F17/18G06F2201/81G06F2201/865
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,650,908
App. No.
17/698,959
Filed
Mar 18, 2022
Granted
May 16, 2023
Kind
B1
Art Unit
2193
USPC
717/130
Abstract

An analysis system receives a time series. The data values of the time series correspond to a metric describing a characteristic of the computing system that changes over time. The analysis system stores a statistic value that represents the stationarity of the time series. In response to receiving a most recent value, the analysis system assigns the most recent value as the leading value in a window before retrieving the trailing value of the window. The analysis system updates the statistic value to add an influence of the most recent value and remove an influence of the trailing value. If the statistic value is less than a threshold, the analysis system determines that the time series is stationary. In response to determining the time series is stationary, the analysis system assigns an alert to the metric. The analysis system detects an anomaly in the metric based on the assigned alert.

Claims (49)

1. A computer-implemented method for detecting an anomaly in a metric for a computing system, the method comprising:

receiving a most recent value of a plurality of data values in a time series comprising multiple data values corresponding to multiple metrics;

determining that the most recent value comprises a leading value or a trailing value in a window;

updating a statistic value to add an influence of the most recent value or remove an influence of the trailing value;

determining whether the statistic value is less than a first threshold, wherein the statistic value being greater than a second threshold indicates that the time series is not stationary, and the statistic value being greater than the first threshold but less than the second threshold indicates that a stationarity of the time series is ambiguous;

in response to the determining that the statistic value is less than the first threshold, assigning alerts for stationary data streams of the metrics; and

determining anomalies in the metrics based on the assigned alerts.

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

storing a statistic value representing a current stationarity of the time series based on data values of the plurality of data values for the time series in a window.

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

retrieving the trailing value of the window.

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

storing a plurality of tracked values calculated based on data values in the window, the plurality of tracked values comprising at least one of a count value, a sum value, a sum squares value, a weighted sum value, a sum sizes value, and/or a sum squared size value.

5. The computer-implemented method of claim 1 , wherein the statistic value comprises a normalized series of partial sums of residual values in a series of residual values, wherein residual values comprise a difference of a mean and each data value of the time series, and each partial sum of a series of partial sums is a summation of a corresponding residual value and residual values that occur before the corresponding residual value in the series of residual values.

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

updating a plurality of tracked values to add an influence of the most recent value and remove an influence of the trailing value, wherein updating the statistic value to add an influence of the most recent value and remove an influence of the trailing value comprises calculating the statistic value based on the plurality of tracked values.

7. The computer-implemented method of claim 1 , wherein the metric comprises a characteristic of a computing system that changes over time.

8. A system for detecting an anomaly in a metric for a computing system, 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:

receive a most recent value of a plurality of data values in a time series comprising multiple data values corresponding to multiple metrics;

determine that the most recent value comprises a leading value or a trailing value in a window;

update a statistic value to add an influence of the most recent value or remove an influence of the trailing value;

determine whether the statistic value is less than a first threshold, wherein the statistic value being greater than a second threshold indicates that the time series is not stationary, and the statistic value being greater than the first threshold but less than the second threshold indicates that a stationarity of the time series is ambiguous;

in response to determining that the statistic value is less than the first threshold, assigning alerts for stationary data streams of the metrics; and

determine anomalies in the metrics based on the assigned alerts.

9. The system of claim 8 , further configured to:

store a statistic value representing a current stationarity of the time series based on data values of the plurality of data values for the time series in a window.

10. The system of claim 8 , further configured to:

retrieve the trailing value of the window.

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

store a plurality of tracked values calculated based on data values in the window, the plurality of tracked values comprising at least one of a count value, a sum value, a sum squares value, a weighted sum value, a sum sizes value, and/or a sum squared size value.

12. The system of claim 8 , wherein the statistic value comprises a normalized series of partial sums of residual values in a series of residual values, wherein residual values comprise a difference of a mean and each data value of the time series, and each partial sum of a series of partial sums is a summation of a corresponding residual value and residual values that occur before the corresponding residual value in the series of residual values.

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

update a plurality of tracked values to add an influence of the most recent value and remove an influence of the trailing value, wherein updating the statistic value to add an influence of the most recent value and remove an influence of the trailing value comprises calculating the statistic value based on the plurality of tracked values.

14. The system of claim 8 , wherein the metric comprises a characteristic of a computing system that changes over time.

15. 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 processing data generated by instrumented software, comprising:

receiving a most recent value of a plurality of data values in a time series comprising multiple data values corresponding to multiple metrics;

determining that the most recent value comprises a leading value or a trailing value in a window;

updating a statistic value to add an influence of the most recent value or remove an influence of the trailing value;

determining whether the statistic value is less than a first threshold, wherein the statistic value being greater than a second threshold indicates that the time series is not stationary, and the statistic value being greater than the first threshold but less than the second threshold indicates that a stationarity of the time series is ambiguous;

in response to the determining that the statistic value is less than the first threshold, assigning alerts for stationary data streams of the metrics; and

determining anomalies in the metrics based on the assigned alerts.

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

storing a statistic value representing a current stationarity of the time series based on data values of the plurality of data values for the time series in a window.

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

retrieving the trailing value of the window.

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

storing a plurality of tracked values calculated based on data values in the window, the plurality of tracked values comprising at least one of a count value, a sum value, a sum squares value, a weighted sum value, a sum sizes value, and/or a sum squared size value.

Assignments (5)
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 Jun 30, 2022
From: ROSS, JOSEPH ARI
To: SIGNALFX, INC.
Reel/Frame 060376/0891 →
MERGER AND CHANGE OF NAME Recorded Jun 30, 2022
From: SIGNALFX, INC.; SOLIS MERGER SUB II, LLC; SIGNALFX LLC
To: SIGNALFX LLC
Reel/Frame 060376/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: SIGNALFX LLC
To: SPLUNK INC.
Reel/Frame 060376/0918 →
Continuity (3)
Continuation 17030270 · Sep 23, 2020
Continuation 16265218 · Feb 1, 2019
Provisional Application 62627132 · Feb 6, 2018