IP Library Granted Patent US 11,461,162
Granted Patent B2
US 11,461,162 · App. 16/921,148 · Granted Oct 4, 2022

Maze-driven self-diagnostics using reinforcement learning

Inventors: Chunzhi Chen (Ottawa, CA); Guo Rong Zheng (Kanata, CA); Kenneth Armstrong (Woodlawn, CA)
Assignee: RingCentral, Inc.
G06F11/079G06F11/0751G06N5/04G06N20/00
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,461,162
App. No.
16/921,148
Granted
Oct 4, 2022
Kind
B2
Abstract

Systems and methods are provided for automatedly troubleshooting a computing application (e.g., a cloud-based computing application). An application domain of the computing application is modeled as a two-dimensional array of cells, a first dimension of the array representing components or microservices of the application domain, and a second dimension of the array representing states of the components or microservices, the array including paths between pairs of cells in the array. A troubleshooting goal is defined as a target state of the application domain, the target state corresponding to a target cell in the array. An initial state of the application domain is also provided, the initial state corresponding to an initial cell in the array. A reinforcement-learning-trained machine-learning algorithm can determine a solution path in the array between the initial cell and the target cell. Divergence between a failure case and a solution path indicates a probable failure cause.

Claims (47)

1. A method of troubleshooting a computing application in a distributed computing environment, the method comprising:

modeling an application domain of the computing application as a two-dimensional array of cells, a first dimension of the array representing components or microservices of the application domain, and a second dimension of the array representing states of the components or microservices, the array including paths between pairs of cells in the array,

wherein the modeling includes automatically generating the array by extracting information from one or more log files associated with each component of computing application;

defining a troubleshooting goal as a target state of the application domain, the target state corresponding to a target cell in the array;

providing an initial state of the application domain, the initial state corresponding to an initial cell in the array;

using a reinforcement-learning-trained machine-learning algorithm to determine at least one solution path in the array between the initial cell and the target cell;

comparing failure data with the solution path to determine a failure point along the solution path, wherein the failure point indicates a failed component or microservice; and

automatically re-writing or replacing the failed component or microservice.

2. The method of claim 1 , further comprising generating a diagnostic message indicating the failure point as a failure reason or a solution suggestion responsive to the troubleshooting goal.

3. The method of claim 1 , further comprising:

comparing failure data with the solution path;

based on the comparison not determining a failure point along the solution path, expanding the array in at least one of the first or second dimension by one or both of adding one or more components or microservices to the array or by adding to the array one or more states of the components or microservices in the array;

using the machine-learning algorithm to determine at least one new solution path in the expanded array between the start cell and the target cell.

4. The method of claim 3 , further comprising comparing the failure data with the new solution path to determine a failure point along the new solution path.

5. The method of claim 4 , further comprising generating a diagnostic message indicating the failure point as a failure reason or solution suggestion responsive to the troubleshooting goal.

6. The method of claim 3 , further comprising iteratively repeating comparing the failure data with the new solution path, not determining a failure point along the new solution path, expanding the array, and determining another at least one new solution path, until a failure point is determined.

7. A self-diagnostics system for troubleshooting a computing application in a distributed computing environment, the self-diagnostics system comprising one or more computer processors coupled to a non-transitory memory storing instructions configured to, when executed by the one or more computer processors:

model an application domain of the computing application as a two-dimensional array of cells, a first dimension of the array representing components or microservices of the application domain, and a second dimension of the array representing states of the components or microservices, the array defining paths between pairs of cells in the array,

wherein the modeling includes automatically generating the array by extracting information from one or more log files associated with each component of the computing application;

define a troubleshooting goal as a target state of the application domain, the target state corresponding to a target cell in the array;

provide an initial state of the application domain, the initial slate corresponding to an initial cell in the array;

apply a reinforcement-learning-trained machine-learning algorithm to determine at least one solution path in the array between the start cell and the target cell;

compare failure data with the solution path to determine a failure point along the solution path, wherein the failure point indicates a faded component or microservice; and

automatically re-write or replace the failed component or microservice.

8. The self-diagnostics system of claim 7 , wherein the instructions are further configured to generate a diagnostic message indicating the failure point as a failure reason.

9. The self-diagnostics system of claim 7 , wherein the instructions are further configured to:

compare failure data with the solution path;

based on the comparison not determining a failure point along the solution path, expand the array in at least one of the first or second dimension by one or both of adding one or more components or microservices to the array or by adding to the array one or more states of the components or microservices in the array;

use the machine-learning algorithm to determine at least one new solution path in the expanded array between the start cell and the target cell.

10. The self-diagnostics system of claim 9 , wherein the instructions are further configured to compare the failure data with the new solution path to determine a failure point along the new solution path.

11. The self-diagnostics system of claim 10 , wherein the instructions are further configured to generate a diagnostic message indicating the failure point as a failure reason or solution suggestion responsive to the troubleshooting goal.

12. The self-diagnostics system of claim 9 , wherein the instructions are further configured to iteratively repeat comparing the failure data with the new solution path, not determining a failure point along the new solution path, expanding the array, and determining another at least one new solution path, until a failure point is determined.

13. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to:

model an application domain of a computing application in a distributed computing environment as a two-dimensional array of cells, a first dimension of the array representing components or microservices of the application domain, and a second dimension of the array representing states of the components or microservices, the array defining paths between pairs of cells in the array,

wherein the modeling includes automatically generating the array by extracting information from one or more log files associated with each component of the computing application;

define a troubleshooting goal as a target state of the application domain, the target state corresponding to a target cell in the array;

provide an initial state of the application domain, the Initial state corresponding to an initial cell in the array;

use a reinforcement-learning-trained machine-learning algorithm to determine at least one solution path in the array between the start cell and the target cell;

compare failure data with the solution path to determine a failure point along the solution path, wherein the failure point indicates a failed component or microservice; and

automatically re-write or replace the failed component or microservice.

14. The computer-readable medium of claim 13 , wherein the instructions are further configured to generate a diagnostic message indicating the failure point as a failure reason.

15. The computer-readable medium of claim 13 , wherein the instructions are further configured to:

compare failure data with the solution path;

based on the comparison not determining a failure point along the solution path, expand the array in at least one of the first or second dimension by one or both of adding one or more components or microservices to the array or by adding to the array one or more states of the components or microservices in the array;

use the machine-learning algorithm to determine at least one new solution path in the expanded array between the start cell and the target cell.

16. The computer-readable medium of claim 15 , wherein the instructions are further configured to compare the failure data with the new solution path to determine a failure point along the new solution path.

17. The computer-readable medium of claim 15 , wherein the instructions are further configured to iteratively repeat comparing the failure data with the new solution path, not determining a failure point along the new solution path, expanding the array, and determining another at least one new solution path, until a failure point is determined.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Oct 16, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: RINGCENTRAL, INC.
Reel/Frame 068917/0024 →
SECURITY INTEREST Recorded Feb 14, 2023
From: RINGCENTRAL, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062973/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2022
From: MITEL CLOUD SERVICES, INC.
To: RINGCENTRAL INC.
Reel/Frame 058900/0774 →
RELEASE OF SECURITY INTEREST Recorded Jan 19, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: MITEL CLOUD SERVICES, INC.
Reel/Frame 058698/0085 →
RELEASE OF SECURITY INTEREST Recorded Jan 19, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: MITEL CLOUD SERVICES, INC.
Reel/Frame 058698/0162 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2020
From: CHEN, CHUNZHI; ZHENG, GUO RONG; ARMSTRONG, KENNETH
To: MITEL CLOUD SERVICES, INC.
Reel/Frame 053502/0520 →
Continuity (1)
Related Publication 20220004448A1 · Jan 6, 2022