IP Library › Granted Patent US 10,983,856
Granted Patent B2
US 10,983,856 · App. 16/457,727 · Granted Apr 20, 2021

Identifying root causes of performance issues

Inventors: Yi Zhen (San Jose, CA); Yung-Yu Chung (Santa Clara, CA); Yang Yang (Fremont, CA); Bo Long (Palo Alto, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/079
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,983,856
App. No.
16/457,727
Granted
Apr 20, 2021
Kind
B2
Abstract

The disclosed embodiments provide a system for identifying root causes of performance issues. During operation, the system obtains a call graph containing a set of call paths for a set of services. Next, the system determines, based on a load test of the set of services, severity scores for the set of services, wherein the severity scores represent levels of abnormal behavior in the set of services. The system then groups the severity scores by the set of call paths and identifies, based on the grouped severity scores, one or more services as potential root causes of performance issues in the set of services. Finally, the system outputs the identified one or more services as the potential root causes of the performance issues.

Claims (79)

1. A method, comprising:

obtaining a call graph comprising a set of call paths for a set of services;

determining, by one or more computer systems based on a load test of the set of services, severity scores for the set of services, wherein the severity scores represent levels of abnormal behavior in the set of services;

grouping, by the one or more computer systems, the severity scores by the set of call paths;

identifying, by the one or more computer systems based on the severity scores, one or more services as potential root causes of performance issues in the set of services; and

outputting an identity for each service of the ore more services as the potential root causes of the performance issues.

2. The method of claim 1 , further comprising:

removing a subset of services with low severity scores from the set of call paths prior to grouping the severity scores by the set of call paths.

3. The method of claim 1 , wherein determining the severity scores comprises:

calculating a severity score for a service based on a difference between an observed performance of the service during the load test and a baseline performance of the service; and

adjusting the severity score based on an importance of the service in the call graph.

4. The method of claim 3 , wherein calculating the severity score for the service comprises:

calculating individual severity scores for a set of performance metrics associated with the service; and

applying a ranking model to the individual severity scores to produce an overall severity score for the service.

5. The method of claim 4 , wherein the set of performance metrics comprises at least one of:

a latency;

an error count;

a thread pool usage;

a processor usage;

a memory usage;

a garbage collection count; or

a garbage collection time.

6. The method of claim 1 , wherein grouping the severity scores by the set of call paths comprises:

calculating a grouped severity score for a call path based on an aggregation of a subset of the severity scores associated with nodes in the call path.

7. The method of claim 1 , wherein identifying, based on the severity scores, one or more services as potential root causes of performance issues in the set of services further comprises:

for each call path in the set of call paths, identifying a node with a highest severity score in the call path as a potential root cause of the performance issues; and

when multiple nodes in the call path have the highest severity score, selecting a downstream node in the multiple nodes as the potential root cause of the performance issues.

8. The method of claim 1 , wherein identifying, based on the severity scores, one or more services as potential root causes of performance issues in the set of services comprises:

assigning a severity score to a service comprising multiple components based on the highest severity score associated with the multiple components.

9. The method of claim 1 , further comprising:

outputting a set of performance metrics for the one or more services.

10. The method of claim 1 , wherein the load test of the set of services comprises:

shifting traffic associated with the set of services from one or more fabrics to a target fabric; and

monitoring performance metrics for the set of services in the target fabric.

11. The method of claim 1 , wherein the call graph comprises:

a calling service;

a calling endpoint;

a called service;

a called endpoint; and

a queries per second (QPS).

12. A system, comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the system to:

obtain a call graph comprising a set of call paths for a set of services;

determine, based on a load test of the set of services, severity scores for the set of services, wherein the severity scores represent levels of abnormal behavior in the set of services;

group the severity scores by the set of call paths;

identify, based on the severity scores, one or more services as potential root causes of performance issues in the set of services; and

output an identity for each service of the one or more services as the potential root causes of the performance issues.

13. The system of claim 12 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the system to: remove a subset of services with low severity scores from the set of call paths prior to grouping the severity scores by the set of call paths.

14. The system of claim 12 , wherein determining the severity scores comprises:

calculating a severity score for a service based on a difference between an observed performance of the service during the load test and a baseline performance of the service; and

adjusting the severity score based on an importance of the service in the call graph.

15. The system of claim 14 , wherein calculating the severity score for the service comprises:

estimating a normal traffic associated with the service using a first machine learning model;

applying a second machine learning model to the estimated normal traffic to generate a baseline performance metric for the service; and

calculating a severity score for a service based on a difference between an observed performance metric of the service during the load test and the baseline performance metric for the service.

16. The system of claim 14 , wherein calculating the severity score for the service comprises:

calculating individual severity scores for a set of performance metrics associated with the service; and

applying a ranking model to the individual severity scores to produce an overall severity score for the service.

17. The system of claim 12 , wherein identifying, based on the severity scores, one or more services as potential root causes of performance issues in the set of services further comprises:

for each call path in the set of call paths, identifying a node with a highest severity score in the call path as a potential root cause of the performance issues; and

when multiple nodes in the call path have the highest severity score, selecting a downstream node in the multiple nodes as the potential root cause of the performance issues.

18. The system of claim 12 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the system to:

output a set of performance metrics for the one or more services.

19. The system of claim 18 , wherein the set of performance metrics comprises at least one of:

a latency;

an error count;

a thread pool usage;

a processor usage;

a memory usage;

a garbage collection count; or

a garbage collection time.

20. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

obtaining a call graph comprising a set of call paths for a set of services;

determining, based on a load test of the set of services, severity scores for the set of services, wherein the severity scores represent levels of abnormal behavior in the set of services;

removing a subset of services with low severity scores from the set of call paths;

grouping the severity scores by the set of call paths;

identifying, based on the severity scores, one or more services as potential root causes of performance issues in the set of services; and

outputting an identity for each service of the one or more services as the potential root causes of the performance issues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2019
From: ZHEN, YI; CHUNG, YUNG-YU; YANG, YANG; LONG, BO
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049957/0593 →
Continuity (1)
Related Publication 20200409781A1 · Dec 31, 2020