IP Library Granted Patent US 10,445,217
Granted Patent B2
US 10,445,217 · App. 15/899,232 · Granted Oct 15, 2019

Service regression detection using real-time anomaly detection of application performance metrics

Inventors: Sriram Parthasarathy (Fremont, CA); Raghvendra Singh (Fremont, CA); Parnian Zargham (Santa Clara, CA); Rishikesh Singh (Sunnyvale, CA); Jyoti Bansal (San Francisco, CA)
Assignee: Harness, Inc.
G06F11/3644G06F8/65G06F11/3419G06F11/3466G06F11/3604G06K9/6218G06N7/005G06N20/00G06F11/3037G06F2201/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 10,445,217
App. No.
15/899,232
Granted
Oct 15, 2019
Kind
B2
Abstract

The present system uses delegates installed in remote environments to called and transmit, to a remote manager, time series metric data (or data from which metrics can be determined) in real-time. The numerical time series data is persisted, and a learned representation is generated from the data, for example by discretization. The learned representation is then clustered, the clusters are compared to new data, anomalies are determined, and deviation scores are calculated for the anomalies. The derivation scores are compared to thresholds, and results are reported through, for example, a user interface, dashboard, and/or other mechanism.

Claims (41)

1. A method for automatically continuously deploying code changes, comprising:

receiving, by a manager application on a server, time series data from a delegate on a remote machine, the delegate collecting data from a node within an application that is currently executing, the time series data including a first time series data associated with a change in code within the node and a second time series data;

generating a learned representation for the received time series data;

comparing the learned representation of the time series data; and

determining if the change in code is acceptable based on the comparison,

wherein generating a learned representation includes discretizing the received time series data, and

wherein the time series includes missing data, the learned discretizing includes optimally aligning the first time series data and the second time series data to determine the shortest distance between the discretized time series data.

2. The method of claim 1 , further comprising creating clusters of the learned representations for real time processing.

3. The method of claim 1 , wherein comparing includes calculating a distance between the learned representations.

4. The method of claim 1 , wherein comparing includes generating a model that indicates the probability that the learned representation for the first time series matches the learned representation for the second time series.

5. The method of claim 4 , wherein calculating a distance includes comparing the clusters of the learned representations.

6. The method of claim 1 , wherein determining if the change in code is acceptable includes:

creating a deviation score for each metric for each transaction for each node for a plurality of nodes on an application executing on the remote machine;

comparing each deviation score to a threshold; and

determining if the change in code on the application executing on the remote machine is acceptable based on the comparison of the deviation scores to the threshold.

7. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for managing agents that monitor a distributed transaction, the method comprising:

receiving time series data from a delegate on a remote machine, the delegate collecting data from a node within an application that is currently executing, the time series data including a first time series data associated with a change in code within the node and a second time series data;

generating a learned representation for the received time series data;

comparing the learned representation of the time series data; and

determining if the change in code is acceptable based on the comparison,

wherein generating a learned representation includes discretizing the received time series data, and

wherein the time series includes missing data, the learned discretizing includes optimally aligning the first time series data and the second time series data to determine the shortest distance between the discretized time series data.

8. The non-transitory computer readable storage medium of claim 7 , further comprising creating clusters of the learned representations for real time processing.

9. The non-transitory computer readable storage medium of claim 7 , wherein comparing includes calculating a distance between the learned representations.

10. The non-transitory computer readable storage medium of claim 7 , wherein comparing includes generating a model that indicates the probability that the learned representation for the first time series matches the learned representation for the second time series.

11. The non-transitory computer readable storage medium of claim 10 , wherein calculating a distance includes comparing the clusters of the learned representations.

12. The non-transitory computer readable storage medium of claim 7 , wherein determining if the change in code is acceptable includes:

creating a deviation score for each metric for each transaction for each node for a plurality of nodes on an application executing on the remote machine;

comparing each deviation score to a threshold; and

determining if the change in code on the application executing on the remote machine is acceptable based on the comparison of the deviation scores to the threshold.

13. A system for monitoring a garbage collection process, comprising:

a server including a memory and a processor; and

one or more modules stored in the memory and executed by the processor to receive time series data from a delegate on a remote machine, the delegate collecting data from a node within an application that is currently executing, the time series data including a first time series data associated with a change in code within the node and a second time series data, generate a learned representation for the received time series data, compare the learned representation of the time series data, and determine if the change in code is acceptable based on the comparison, wherein generating a learned representation includes discretizing the received time series data, and wherein the time series includes missing data, the learned discretizing includes optimally aligning the first time series data and the second time series data to determine the shortest distance between the discretized time series data.

14. The system of claim 13 , the one or more modules further executable to create clusters of the learned representations for real time processing.

15. The system of claim 13 , wherein comparing includes calculating a distance between the learned representations.

16. The system of claim 13 , wherein comparing includes generating a model that indicates the probability that the learned representation for the first time series matches the learned representation for the second time series.

17. The system of claim 16 , wherein calculating a distance includes comparing the clusters of the learned representations.

18. The system of claim 13 , wherein determining if the change in code is acceptable includes:

creating a deviation score for each metric for each transaction for each node for a plurality of nodes on an application executing on the remote machine;

comparing each deviation score to a threshold; and

determining if the change in code on the application executing on the remote machine is acceptable based on the comparison of the deviation scores to the threshold.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075690/0701 →
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075690/0915 →
SECURITY INTEREST Recorded Nov 24, 2024
From: HARNESS INC.; HARNESS INTERNATIONAL, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 069387/0805 →
SECURITY INTEREST Recorded Nov 24, 2024
From: HARNESS INC.; HARNESS INTERNATIONAL, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 069387/0816 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2019
From: PARTHASARATHY, SRIRAM; SINGH, RAGHVENDRA; ZARGHAM, PARNIAN; SINGH, RISHIKESH; BANSAL, JYOTI
To: HARNESS, INC.
Reel/Frame 048757/0659 →
Continuity (1)
Related Publication 20190258564A1 · Aug 22, 2019
Cited By (1)
US 12,579,120