IP Library Granted Patent US 11,599,510
Granted Patent B2
US 11,599,510 · App. 17/375,444 · Granted Mar 7, 2023

Methods, systems, and computer readable mediums for performing metadata-driven data collection

Inventors: Venkatesh Sudarsanam Madhipatla (Westford, MA); Bayi Peng (Plano, TX); Xiaohong Fu (Plano, TX)
Assignee: EMC IP Holding Company LLC
G06F16/188G06F16/13G06F16/23G06F16/245
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,599,510
App. No.
17/375,444
Granted
Mar 7, 2023
Kind
B2
Abstract

Methods, systems, and computer readable media for performing metadata-driven data collection are disclosed. In some examples, a method includes receiving a request for system status data for components of a distributed computing system while the distributed computing system is in operation. The request includes metadata specifying a data collection sequence for collecting component-level system status data. The components include compute components, network components, and storage components. The method includes obtaining, using the metadata, the component-level system status data by querying protocol-based data collectors in an order, one after the other, as specified by the data collection sequence specified by the metadata. The method includes assembling the component-level system status data into assembled status data and storing the assembled status data in memory and/or a repository.

Claims (28)

1. A method comprising:

receiving, by a data collection engine executing on at least one processor of a management computer system, a request for system status data for a plurality of components of a distributed computing system while the distributed computing system is in operation, wherein the request includes metadata specifying a data collection sequence for collecting component-level system status data, and wherein the plurality of components of the distributed computing system includes a plurality of compute components, a plurality of network components, and a plurality of storage components;

obtaining, by the data collection engine and using the metadata, the component-level system status data by querying a plurality of protocol-based data collectors in an order, one after the other, as specified by the data collection sequence specified by the metadata, wherein obtaining the component-level system status data comprises querying a first protocol-based data collector and then, after querying the first protocol-based data collector, querying a second protocol-based data collector according to the data collection sequence and using the response from the first protocol-based data collector; and

assembling, by the data collection engine, the component-level system status data into assembled status data and storing the assembled status data in memory of the management computer system, wherein assembling the component-level system status data comprises using a first attribute received from the first protocol-based data collector for updating an assembled object with a second attribute received from the second protocol-based data collector;

wherein querying the first protocol-based data collector comprises receiving the first attribute and a common attribute, wherein querying the second protocol-based data collector comprises receiving the second attribute and the common attribute, and wherein updating the assembled object comprises associating the first and second attributes and the common attribute in the assembled object, and wherein the common attribute is a unique identifier of a virtual machine, and wherein associating the first and second attributes and the common attribute in the assembled object comprises combining the first attribute and the second attribute into a report about the virtual machine.

2. The method of claim 1 , wherein obtaining the component-level system status data comprises querying a first protocol-based data collector, and, after receiving a response from the first protocol-based data collector, querying a second protocol-based data collector using the response from the first protocol-based data collector.

3. The method of claim 1 , wherein obtaining the component-level system status data comprises, in a first pass, querying a first protocol-based data collector and then a second protocol-based data collector, and then, in a second pass, querying the first protocol-based data collector using a response from the second protocol-based data collector in the first pass.

4. The method of claim 1 , wherein the metadata specifies a schedule of data collection events, and wherein querying the protocol-based data collectors in the order as specified by the data collection sequence comprises querying the protocol-based data collectors in response to determining that a current time matches a scheduled data collection event.

5. The method of claim 1 , comprising receiving an update to the metadata and repeating the obtaining and assembling of the component-level system status data using the update to the metadata without recompiling executable code of the protocol-based data collectors.

6. A system comprising:

at least one processor and memory; and

a data collection engine implemented using the at least one processor, wherein the data collection engine is programmed for:

receiving a request for system status data for a plurality of components of a distributed computing system while the distributed computing system is in operation, wherein the request includes metadata specifying a data collection sequence for collecting component-level system status data, and wherein the plurality of components of the distributed computing system includes a plurality of compute components, a plurality of network components, and a plurality of storage components;

obtaining, using the metadata, the component-level system status data by querying a plurality of protocol-based data collectors in an order, one after the other, as specified by the data collection sequence specified by the metadata, wherein obtaining the component-level system status data comprises querying a first protocol-based data collector and then, after querying the first protocol-based data collector, querying a second protocol-based data collector according to the data collection sequence and using the response from the first protocol-based data collector; and

assembling the component-level system status data into assembled status data and storing the assembled status data in the memory, wherein assembling the component-level system status data comprises using a first attribute received from the first protocol-based data collector for updating an assembled object with a second attribute received from the second protocol-based data collector;

wherein querying the first protocol-based data collector comprises receiving the first attribute and a common attribute, wherein querying the second protocol-based data collector comprises receiving the second attribute and the common attribute, and wherein updating the assembled object comprises associating the first and second attributes and the common attribute in the assembled object, and wherein the common attribute is a unique identifier of a virtual machine, and wherein associating the first and second attributes and the common attribute in the assembled object comprises combining the first attribute and the second attribute into a report about the virtual machine.

7. The system of claim 6 , wherein obtaining the component-level system status data comprises querying a first protocol-based data collector, and, after receiving a response from the first protocol-based data collector, querying a second protocol-based data collector using the response from the first protocol-based data collector.

8. The system of claim 6 , wherein obtaining the component-level system status data comprises, in a first pass, querying a first protocol-based data collector and then a second protocol-based data collector, and then, in a second pass, querying the first protocol-based data collector using a response from the second protocol-based data collector in the first pass.

9. The system of claim 6 , wherein the metadata specifies a schedule of data collection events, and wherein querying the protocol-based data collectors in the order as specified by the data collection sequence comprises querying the protocol-based data collectors in response to determining that a current time matches a scheduled data collection event.

10. The system of claim 6 , wherein the data collection engine is programmed for receiving an update to the metadata and repeating the obtaining and assembling of the component-level system status data using the update to the metadata without recompiling executable code of the protocol-based data collectors.

11. A non-transitory computer readable medium storing executable instructions that, when executed by at least one processor of a computer system, cause the computer system to perform operations comprising:

receiving a request for system status data for a plurality of components of a distributed computing system while the distributed computing system is in operation, wherein the request includes metadata specifying a data collection sequence for collecting component-level system status data, and wherein the plurality of components of the distributed computing system includes a plurality of compute components, a plurality of network components, and a plurality of storage components;

obtaining, using the metadata, the component-level system status data by querying a plurality of protocol-based data collectors in an order, one after the other, as specified by the data collection sequence specified by the metadata, wherein obtaining the component-level system status data comprises querying a first protocol-based data collector and then, after querying the first protocol-based data collector, querying a second protocol-based data collector according to the data collection sequence and using the response from the first protocol-based data collector; and

assembling the component-level system status data into assembled status data and storing the assembled status data in memory of the computer system, wherein assembling the component-level system status data comprises using a first attribute received from the first protocol-based data collector for updating an assembled object with a second attribute received from the second protocol-based data collector;

wherein querying the first protocol-based data collector comprises receiving the first attribute and a common attribute, wherein querying the second protocol-based data collector comprises receiving the second attribute and the common attribute, and wherein updating the assembled object comprises associating the first and second attributes and the common attribute in the assembled object, and wherein the common attribute is a unique identifier of a virtual machine, and wherein associating the first and second attributes and the common attribute in the assembled object comprises combining the first attribute and the second attribute into a report about the virtual machine.

12. The non-transitory computer readable medium of claim 11 , wherein obtaining the component-level system status data comprises querying a first protocol-based data collector, and, after receiving a response from the first protocol-based data collector, querying a second protocol-based data collector using the response from the first protocol-based data collector.

13. The non-transitory computer readable medium of claim 11 , wherein the metadata specifies a schedule of data collection events, and wherein querying the protocol-based data collectors in the order as specified by the data collection sequence comprises querying the protocol-based data collectors in response to determining that a current time matches a scheduled data collection event.

14. The non-transitory computer readable medium of claim 11 , wherein the operations comprise receiving an update to the metadata and repeating the obtaining and assembling of the component-level system status data using the update to the metadata without recompiling executable code of the protocol-based data collectors.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
Continuity (2)
Continuation 15369241 · Dec 5, 2016
Related Publication 20210342309A1 · Nov 4, 2021