IP Library Granted Patent US 11,106,639
Granted Patent B1
US 11,106,639 · App. 15/369,241 · Granted Aug 31, 2021

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,106,639
App. No.
15/369,241
Granted
Aug 31, 2021
Kind
B1
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 the metadata specifies, for at least some of the component-level system status data, the data collection sequence so that at least some earlier-executing data collectors are assured to execute before some later-executing data collectors;

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;

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;

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 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; and

wherein querying the first protocol-based data collector comprises receiving the first attribute and a common attribute, wherein querying the second protocol-base data collector comprises receiving the second attribute and the common attribute, and wherein updating an 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 updating 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, 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.

3. 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.

4. 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 the metadata specifies, for at least some of the component-level system status data, the data collection sequence so that at least some earlier-executing data collectors are assured to execute before some later-executing data collectors; and

assembling the component-level system status data into assembled status data and storing the assembled status data in the memory;

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 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-base data collector comprises receiving the second attribute and the common attribute, and wherein updating an assembled object comprises associating the first and second attributes and the common attribute in the assembled object; and

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, and wherein the common attribute is a unique identifier of a virtual machine, and wherein updating the assembled object comprises combining the first attribute and the second attribute into a report about the virtual machine.

5. The system of claim 4 , 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.

6. The system of claim 4 , 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.

7. 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 the metadata specifies, for at least some of the component-level system status data, the data collection sequence so that at least some earlier-executing data collectors are assured to execute before some later-executing data collectors; 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 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 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-base data collector comprises receiving the second attribute and the common attribute, and wherein updating an assembled object comprises associating the first and second attributes and the common attribute in the assembled object; and

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, and wherein the common attribute is a unique identifier of a virtual machine, and wherein updating the assembled object comprises combining the first attribute and the second attribute into a report about the virtual machine.

8. The non-transitory computer readable medium of claim 7 , 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.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
MERGER Recorded Mar 26, 2020
From: VCE IP HOLDING COMPANY LLC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052236/0497 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: MADHIPATLA, VENKATESH SUDARSANAM; FU, XIAOHONG; PENG, BAYI
To: VCE IP HOLDING COMPANY LLC
Reel/Frame 040532/0459 →