Monitoring the health of distributed systems
AssigneeMicrosoft Corporation
InventorsIgor Stanko, Matthew K. Peebles, Namyong Lee, Artem D. Yegorov
Life of this patent
Estimating the term…
Abstract
The present invention extends to methods, systems, and computer program products for monitoring the health of distributed systems. Embodiments of the invention provide distributed, self-maintained, continuous health monitoring. Using XML and pluggable infrastructure, a logical view of an appliance can be provided. The logical view abstracts physical implementation details of the appliance. Monitoring agents can correlate different distributed system failures and events and reason over collected health information.
Claims20
At a computer system including one or more processors and system memory, the computer system being one of a plurality of computer systems in a distributed system, a method for configuring the computer system to monitor a portion of an appliance implemented at the distributed system, the method comprising:
- an act of accessing an appliance definition file, the appliance definition file defining a plurality of different types of nodes, functionality of the plurality of different types of nodes to be integrated together to implement the appliance;
- an act of selecting a type of node, from among the plurality of different types of nodes, that is to be implemented at the computer system;
- an act of reading a portion of the appliance definition file defining functionality for the selected node type;
- an act of implementing the selected node type at the computer system in accordance with the defined functionality;
- an act of reading a health file that identifies components that are to be monitored for the selected node type;
- an act of loading a monitor agent at the computer system to monitor the identified components;
- an act collecting health information indicating the health of the identified components;
- and
- an act of transferring the collected health information to a repository, the repository aggregating collected health information for identified components within the plurality of computer systems so as to represent a logical health view of the appliance, the logical health view abstracted from the identified components within the plurality of computer systems.
At a computer system including one or more processors and system memory, the computer system being one of a plurality of computer systems in a distributed system, a method for monitoring an appliance implemented at the distributed system, the method comprising:
- an act of reading a portion of an appliance definition file defining functionality for a control node, the appliance definition file defining a plurality of different types of nodes, including the control node, functionality of the plurality of different types of nodes being integrated together to implement the appliance;
- an act of implementing the control node at the computer system in accordance with the defined functionality, the control node including a repository for aggregating collected health information received from health monitoring agents at other nodes providing appliance functionality, health information collected at other nodes in accordance with health files that identifies specified components that are to be monitored;
- an act of receiving collected health information from monitoring agents at a plurality of other nodes in the distributed system, the health information related to monitored components at each of the plurality of other nodes;
- an act of aggregating the collected health information in the repository;
- an act of reasoning over the aggregated health information in the repository to formulate a logical health view for the appliance, the logical health view abstracting the physical implementation of the appliance, reasoning over the aggregated health information including correlating collected health information from at least two different nodes to generate a condition of interest with respect to operation of the appliance.
At a computer system including one or more processors and system memory, the computer system being one of a plurality of computer systems in a distributed system, a method for configuring the computer system to implement a control node for an appliance, the method comprising:
- an act of accessing an appliance definition file, the appliance definition file defining a plurality of different node types including a control node type, a management node type, a computer node type, a landing zone type, and a backup node type, functionality of the plurality of different node types to be integrated together to implement the appliance;
- an act of selecting a the control node type to be implemented at the computer system;
- an act of reading a portion of the appliance definition file defining functionality for the control node type;
- an act of implementing the control node type at the computer system in accordance with the defined functionality;
- an act of reading a health file that identifies components that are to be monitored for the control node type;
- an act of loading a monitor agent at the computer system to monitor the identified components, including monitoring other monitoring agents at other nodes providing appliance functionality;
- an act receiving collected health information indicating the health of identified components at the other nodes;
- an act of aggregating the received health information in a repository;
- and
- an act of reasoning over the aggregated health information in the repository to formulate a logical health view for the appliance, the logical health view abstracting the physical implementation of the appliance, reasoning over the aggregated health information including correlating collected health information the other nodes to generate a condition of interest with respect to operation of the appliance.
Dependencies are inferred from the claim text.