IP Library Granted Patent US 11,108,642
Granted Patent B2
US 11,108,642 · App. 16/441,041 · Granted Aug 31, 2021

Method and apparatus for non-intrusive agentless platform-agnostic application topology discovery

Inventors: Ritesh Jha (Bangalore, IN); Soumya Panigrahi (Bangalore, IN); Nikhil Jaiswal (Bangalore, IN); Pushkar Patil (Bangalore, IN); Suchit Dhakate (Bangalore, IN)
Assignee: VMware, Inc.
H04L41/12G06F9/455H04L41/145H04L67/10G06F9/45541
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,108,642
App. No.
16/441,041
Granted
Aug 31, 2021
Kind
B2
Abstract

System and computer-implemented method for constructing a topology for an application distributed over multiple virtual computing instances in which a set of resource utilization metrics are collected for multiple computing instances. A propagation sequence caused by an execution of the application is determined based on the set of resource utilization metrics. A graph may be created with the propagation sequence, wherein each virtual computing instance in the multiple computing instances is a possible node in the graph and the graph includes all nodes associated with the application.

Claims (58)

1. A computer-implemented method for constructing a topology for an application distributed over multiple virtual computing instances, the method comprising:

collecting a set of resource utilization metrics for the multiple virtual computing instances, wherein the set of resource utilization metrics comprise a first subset of resource utilization metrics for the application, and a second subset of resource utilization metrics for a second application distributed over at least one virtual computing instance in the multiple virtual computing instances;

determining a propagation sequence caused by an execution of the application based on the set of resource utilization metrics, wherein the determining of the propagation sequence comprises:

identifying the first subset of resource utilization metrics for the application in the set of resource utilization metrics;

separating the first subset of resource utilization metrics from the set of resource utilization metrics; and

determining a sequence of disturbances in the multiple virtual computing instances based on the first subset of resource utilization metrics; and

creating a graph with the propagation sequence, wherein each virtual computing instance in the multiple computing instances is a possible node in the graph and the graph comprises all nodes associated with the application.

2. The method of claim 1 , wherein the collecting of the set of resource utilization metrics comprises:

creating a set of vectors, wherein each vector comprises a resource utilization metric for the at least one virtual computing instance; and

concatenating the set of resource utilization metrics to create a super-vector comprising the set of vectors.

3. The method of claim 1 , wherein the resource utilization metrics comprises at least one of network and processor resource utilization metrics associated with the multiple virtual computing instances.

4. The method of claim 1 , wherein the set of resource utilization metrics comprises utilization metrics associated with multiple applications, each of which is distributed over at least one of the multiple virtual computing instances, the method further comprising:

identifying propagation sequences of API calls associated with the application via a component signal analysis of the set of resource utilization metrics; and

aggregating the propagation sequences to identify the at least one of the multiple virtual computing instances over which the application is distributed.

5. The method of claim 1 , wherein the propagation sequence is expressed in a set of vectors, and the graph comprises a directed graph constructed from the set of vectors.

6. The method of claim 1 , wherein the determining of the propagation sequence comprises:

smoothing signals related to the set of resource utilization metrics to produce smoothed data; and

executing a signal-processing technique on the smoothed data to extract unique patterns from the set of resource utilization metrics.

7. The method of claim 6 , wherein the signal-processing technique includes at least one of Independent Component Analysis (ICA) algorithm and Blind-Source Separation (BSS) algorithm.

8. A non-transitory computer-readable storage medium containing program instructions for constructing a topology for an application distributed over multiple virtual computing instances, wherein execution of the program instructions by one or more processors causes the one or more processors to perform steps comprising:

collecting a set of resource utilization metrics for the multiple virtual computing instances, wherein the set of resource utilization metrics comprise a first subset of resource utilization metrics for the application, and a second subset of resource utilization metrics for a second application distributed over at least one virtual computing instance in the multiple virtual computing instances;

determining a propagation sequence caused by an execution of the application based on the set of resource utilization metrics, wherein the determining of the propagation sequence comprises the steps of:

identifying the first subset of resource utilization metrics for the application in the set of resource utilization metrics;

separating the first subset of resource utilization metrics from the set of resource utilization metrics; and

determining a sequence of disturbances in the multiple virtual computing instances based on the first subset of resource utilization metrics; and

creating a graph with the propagation sequence, wherein each virtual computing instance in the multiple computing instances is a possible node in the graph and the graph comprises all nodes associated with the application.

9. The computer-readable storage medium of claim 8 , wherein the collecting of the set of resource utilization metrics comprises the steps of:

creating a set of vectors, wherein each vector comprises a resource utilization metric for the at least one virtual computing instance; and

concatenating the set of resource utilization metrics to create a super-vector comprising the set of vectors.

10. The computer-readable storage medium of claim 8 , wherein the resource utilization metrics comprises at least one of network and processor resource utilization metrics associated with the multiple virtual computing instances.

11. The computer-readable storage medium of claim 8 , wherein the set of resource utilization metrics comprises utilization metrics associated with multiple applications, each of which is distributed over at least one of the multiple virtual computing instances, and the execution of the program instructions by one or more processors further causes the one or more processors to perform steps comprising:

identifying propagation sequences of API calls associated with the application via a component signal analysis of the set of resource utilization metrics; and

aggregating the propagation sequences to identify the at least one of the multiple virtual computing instances over which the application is distributed.

12. The computer-readable storage medium of claim 8 , wherein the propagation sequence is expressed in a set of vectors, and the graph comprises a directed graph constructed from the set of vectors.

13. The computer-readable storage medium of claim 8 , wherein the determining of the propagation sequence comprises:

smoothing signals related to the set of resource utilization metrics to produce smoothed data; and

executing a signal-processing technique on the smoothed data to extract unique patterns from the set of resource utilization metrics.

14. The computer-readable storage medium of claim 13 , wherein the signal-processing technique includes at least one of Independent Component Analysis (ICA) algorithm and Blind-Source Separation (BSS) algorithm.

15. A system of multiple virtual computing instances including an application distributed over the multiple virtual computing instances, the system comprising:

memory; and

one or more processors configured to:

collect a set of resource utilization metrics for the multiple virtual computing instances, wherein the set of resource utilization metrics comprise a first subset of resource utilization metrics for the application, and a second subset of resource utilization metrics for a second application distributed over at least one virtual computing instance in the multiple virtual computing instances;

determine a propagation sequence caused by an execution of the application based on the set of resource utilization metrics; and

create a graph with the propagation sequence, wherein each virtual computing instance in the multiple computing instances is a possible node in the graph and the graph comprises all nodes associated with the application wherein the one or more processors are further configured to:

identify the first subset of resource utilization metrics for the application in the set of resource utilization metrics;

separate the first subset of resource utilization metrics from the set of resource utilization metrics; and

determine a sequence of disturbances in the multiple virtual computing instances based on the first subset of resource utilization metrics.

16. The system of claim 15 , wherein the one or more processors are further configured to:

create a set of vectors, wherein each vector comprises a resource utilization metric for the at least one virtual computing instance; and

concatenate the set of resource utilization metrics to create a super-vector comprising the set of vectors to collect the set of resource utilization metrics.

17. The system of claim 15 , wherein the resource utilization metrics comprises at least one of network and processor resource utilization metrics associated with the multiple virtual computing instances.

18. The system of claim 15 , wherein the set of resource utilization metrics comprises utilization metrics associated with multiple applications, each of which is distributed over at least one of the multiple virtual computing instances, and the one or more processors are further configured to:

identify propagation sequences of API calls associated with the application via a component signal analysis of the set of resource utilization metrics; and

aggregate the propagation sequences to identify the at least one of the multiple virtual computing instances over which the application is distributed.

19. The system of claim 15 , wherein the one or more processors are further configured to:

smooth signals related to the set of resource utilization metrics to produce smoothed data; and

execute a signal-processing technique on the smoothed data to extract unique patterns from the set of resource utilization metrics.

20. The system of claim 19 , wherein the signal-processing technique includes at least one of Independent Component Analysis (ICA) algorithm and Blind-Source Separation (BSS) algorithm.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2019
From: JHA, RITESH; PANIGRAHI, SOUMYA; JAISWAL, NIKHIL; PATIL, PUSHKAR; DHAKATE, SUCHIT
To: VMWARE, INC.
Reel/Frame 049465/0757 →
Priority Claims (1)
IN 201941015949 · Apr 22, 2019 · national
Continuity (1)
Related Publication 20200336384A1 · Oct 22, 2020