Custom host errors definition service

A custom host errors definition service is provided. The custom host errors definition service can create separate endpoints through which different customers can define custom host errors for one or more host computing systems, which might operate in a distributed execution environment. A custom host error definition can specify one or more host computing systems, one or more system components of the one or more host computing systems, one or more attributes, one or more error conditions for the one or more attributes, and one or more actions to perform as a result of the error conditions being satisfied. The error conditions can be, but are not limited to, threshold conditions, component failure conditions, missing hardware conditions, degraded hardware conditions, system firmware failures, incorrect firmware conditions, and the like.

BACKGROUND

Services exist that allow customers to receive periodic status updates from computing systems. A given status update might include a snapshot of the current status of one or more computing systems and their components (e.g., processors, hard drives, memory, and/or fans). These services might expose status update information to customers, and additionally tag error conditions, such as a fan not spinning fast enough to maintain a specified temperature of a hardware component. In this way, a customer can identify problems with computing systems and take steps to resolve the problems.

The definition of an “error” condition changes frequently at the request of multiple customers such that what one customer considers an error, another customer might not. For instance, one customer might have a very high tolerance for hard drive sector reallocations, while another customer might have a very low tolerance for hard drive sector reallocations. As a result, one customer might deem a certain status value as being within normal operating limits, whereas another customer might deem the same status value as being indicative of an error condition.

It is respect to these and other considerations that the disclosure made herein is presented.

DETAILED DESCRIPTION

The following detailed description is directed to providing a custom host errors definition service. The custom host errors definition service can create separate endpoints through which different customers can define custom host errors for one or more host computing systems, which might operate in a distributed execution environment. A custom host error definition can specify one or more host computing systems, one or more system components of the one or more host computing systems, one or more attributes, one or more error conditions for the one or more attributes, and one or more actions to perform as a result of the error conditions being satisfied. The error conditions can be, but are not limited to, threshold conditions, component failure conditions, missing hardware conditions, degraded hardware conditions, system firmware failures, incorrect firmware conditions, and the like.

Those skilled in the art will also appreciate that aspects of the subject matter described herein may be practiced on or in conjunction with other computer system configurations beyond those described herein, including multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, handheld computers, personal digital assistants, e-readers, cellular telephone devices, special-purposed hardware devices, network appliances, and the like. The embodiments described herein may be practiced in distributed execution environments, where tasks are performed by remote processing devices that are linked through a communications network. In a distributed execution environment, program modules may be located in both local and remote memory storage devices.

In the following detailed description, references are made to the accompanying drawings that form a part hereof, and that show, by way of illustration, specific embodiments or examples. The drawings herein are not drawn to scale. Like numerals represent like elements throughout the several figures.

FIG. 1and the following description are intended to provide a brief, general description of a suitable computing environment in which the embodiments described herein may be implemented. In particular,FIG. 1is a system and network diagram that shows an illustrative operating environment100including several hardware and software components for providing a custom host errors definition service102. The operating environment100is merely illustrative and the embodiments disclosed herein might be utilized in many different types of environments.

The operating environment100shown inFIG. 1includes customer computing systems104A-104N (which may be referred to herein singularly as “the customer computing system104” or in the plural as “the customer computing systems104”). The customer computing systems104may be desktop or laptop personal computers, tablet computers, smartphones, personal digital assistants (“PDAs”), e-readers, game consoles, set-top boxes, server computers, or any other computing device capable of accessing the custom host errors definition service102. The customer computing systems104might access the custom host errors definition service102over a suitable data communications network106(“network106”), which may be a wide area network (“WAN”), local area network (“LAN”), metropolitan area network (“MAN”), other area network, a combination thereof, or the like.

The operating environment100also includes host computing systems108A-108N (which may be referred to herein singularly as “the host computing system108” or in the plural as “the host computing systems108”). The host computing systems108may be desktop or laptop personal computers, tablet computers, smartphones, PDAs, e-readers, game consoles, set-top boxes, server computers, or any other computing device capable of hosting one or more host applications110A-110N (which may be referred to herein singularly as “the host application110” or in the plural as “the host applications110”) executing on the host computing systems108. The host computing systems108also include one or more host components112A-112N (which may be referred to herein singularly as “the host component112” or in the plural as “the host components112”). The host components112may include hardware components such as, but not limited to, processors, memory, optical drives, solid-state drives, hard drives, tape drives, system boards, motherboards, backplanes, fans, video cards, power supplies, heat sinks, cabling, chassis, peripherals, monitors, speakers, microphones, and the like.

The host computing systems108are configured to provide information regarding the operational status of one or more of the host components112to the custom host errors definition service102in the form of host statuses114A-114N (which may be referred to herein singularly as “the host status114” or in the plural as “the host statuses114”). The host computing systems108may provide the host statuses114to the custom host errors definition service102on a periodic basis or upon request, for example, from one or more of the customer computing systems104.

The host statuses114may provide snapshots of the current statuses of the host computing systems108and the associated host components112. For example, the host status A114A might provide the operational status of one or more fans operating within the host computing system A108A. The custom host errors definition service102can utilize the host status A114A to determine whether the operational status of the fans is within specification, or if not, to flag the fans as being in an error state, such as a failed or degraded state. What constitutes an error state for one or more of the host components112can be specified in one or more custom host error definitions provided by one or more customers of the custom host errors definition service102, as will be described in greater detail below.

In some embodiments, the host computing systems108are provided in a distributed execution environment (shown inFIGS. 2-3). A distributed execution environment allows customers to purchase and utilize instances of computing resources, such as virtual machine instances, on a permanent or as-needed basis. A distributed execution environment may offer instances of computing resources for purchase in various configurations. For example, a distributed execution environment might offer the virtual machine instances for purchase and use in many different configurations of processor capabilities, main memory, disk storage, operating system, other hardware, and other software. The distributed execution environment might also offer instances of other types of resources for purchase and use by customers. One or more instances may execute on each of the host computing systems108. Additional details regarding an illustrative distributed execution environment will be described in greater detail below with regard toFIGS. 2-3.

As described above, customers may have different concerns regarding the operation of one or more of the host computing systems108, the applications110, and/or the host components112. As a result, different customers might have different preferences with regard to what constitutes and what does not constitute an error in the operation of one or more of the host computing systems108, the applications110, and/or the host components112. The custom host errors definition service102is configured to create and expose endpoints116A-116N (which may be referred to herein singularly as “the endpoint116” or in the plural as “the endpoints116”) for use by customers to define their own rules for what they consider to be an error.

As used herein, an “endpoint” can be used to indicate a specific network location through which one or more customers can access the custom host errors definition service102to define errors, to modify previously defined errors, to monitor the operational status of one or more of the host computing systems108, and/or to perform other tasks. In some embodiments, each of the endpoints116is identified and accessible by way of a uniform resource indicator (“URI”). The endpoints116may be exposed by the custom host errors definition service102operating as a web service using hypertext transfer protocol (“HTTP”), HTTP Secure (“HTTPS”), and/or some other protocol. Moreover, the endpoints116may be created, controlled, and modified via one or more application programming interfaces (“APIs”) or Web APIs exposed by or for the custom host errors definition service102. In the illustrated embodiment, the custom host errors definition service102exposes the endpoints116so that customers can provide error definitions118A-118N (which may be referred to herein singularly as “the error definition116” or in the plural as “the endpoints116”) for use by the custom host errors definition service102to monitor the host statuses114for errors.

As used herein, an “error” can be a discrepancy between a computed, observed, or measured value or condition, and a known accepted value or condition. The known accepted value or condition may be an accepted value or condition of a set of accepted values or conditions, or a single accepted value or condition. The error conditions can be, for example, threshold conditions, component failure conditions, missing hardware conditions, degraded hardware conditions, system firmware failures, incorrect firmware conditions, and the like.

In some embodiments, the custom host errors service102provides one or more default error definitions. The default error definitions can be applied to one or more of the host computing systems108if a customer has not provided an error definition or at the request of the customer to utilize the default error definition. A default error definition can be created to meet some desired operation of one or more of the host computing systems108. For example, a default error definition might be configured so as to achieve best performance, most reliability, or some other desired operation.

In some embodiments, the custom host errors service102provides one or more error definition templates. The error definition templates can be utilized by a customer as a starting point from which to create a custom host error definition. Templates may be provided based on certain components to be monitored, the desired strictness for monitoring, and other criteria.

In response to determining that an error exists based upon an error definition118, the custom host errors definition service102can flag the error. In some embodiments, the custom host errors definition service102also notifies the customer(s) that provided the error definition118. A notification might be an email, text message, telephone call, or other notification provided by a notification service. It is contemplated that the protocol (e.g., hypertext transfer protocol, email, short message service, or the like) to be used for notification may be identified via the error definition118or by other means. The notification service may be provided as a “push” service to the customer computing systems104and/or other devices available to the customer(s).

In some embodiments, the custom host errors definition service102can provide corrective actions to eliminate a detected error, to mitigate the error, or to otherwise take action in response to detection of the error, such a shutting down the host computing system108that caused the error. The corrective actions can be defined, for example, in the error definition118or by other means.

The custom host errors definition service102can be operated by one or more computing systems (not shown) that are configured to execute one or more application programs. In the illustrated embodiment, the custom host errors definition service102can be operated by one or more computing systems that are configured to execute an error definition service application120, an error detection application122, and an error response action application124.

The error definition service application120can provide a web service to create the endpoints116and facilitate the input of the error definitions118, among other tasks, such as allowing a previously submitted error definition to be modified. In some embodiments, the error definition service application120provides a user interface through which the error definitions118can be provided. An illustrative example of such an interface is described below with reference toFIG. 5. The error definition service application120may cause the error definitions118to be stored in an error definition database126, which may store the error definitions118in association with the customer(s) that provided the error definitions118.

The error detection application122can access the error definition database126to apply the error definitions118to the host statuses114received from one or more of the host computing systems108in order to detect errors in accordance with the error definitions118. In response to detecting an error, the error detection application122can instruct the error response action application124to perform a corrective action to eliminate the error, to mitigate the error, or to otherwise take action in response to detection of the error.

The error definition service application120, the error detection application122, the error response action application124, and the error definition database126are each illustrated as separate components of the custom host errors definition service102, although other implementations that combine one or more of these components are contemplated. The error definition service application120, the error detection application122, the error response action application124, and the error definition database126can execute on top of one or more operating systems (not shown).

The customer computing systems104each can execute an operating system128and one or more application programs, such as, for example, a web browser application130and an error definition client application132. The operating systems128are computer programs for controlling the operation of the customer computing systems104. According to one embodiment, the operating systems128include the LINUX operating system. According to another embodiment, the operating systems128include the WINDOWS® operating system from MICROSOFT Corporation. According to further embodiments, the operating systems128may include the UNIX or SOLARIS operating systems. It should be appreciated that other operating systems may also be utilized by the customer computing systems104, including mobile operating systems for smartphones and/or tablet computer implementations of the customer computing systems104. The application programs are executable programs configured to execute on top of the operating systems128to provide various functions.

The web browser applications130are application programs through which a user/customer can access information resources on the web via a network, such as the network106. In some embodiments, the web browser applications130allow a user to access a website hosted by or for the customer host errors definition service102and accessible via one or more of the endpoints116. The website may provide a web-based graphical user interface through which a user can create error definitions, modify existing error definitions, and otherwise interact with the custom host errors definition102. An example of such an interface is described below with reference toFIG. 5.

The error definition client applications132are application programs through which the customer computing systems104can connect to the custom host errors definition service102to create and manage error definitions. As such, the error definition client applications132may be native applications configured to connect to the endpoints116as an alternative to a customer using a web interface provided through the web browsers130. The error definition client applications132might also facilitate account creation, account management, and/or other tasks to be performed via the custom host errors definition service102.

FIG. 2and the following description are intended to provide a brief, general description of a suitable computing environment in which the embodiments described herein may be implemented. In particular,FIG. 2is a system and network diagram that shows an illustrative operating environment200that includes a distributed execution environment202configured for providing access to the custom host errors definition service102, according to one embodiment disclosed herein.

The distributed execution environment202can provide instances of computing resources on a permanent or an as-needed basis. The instances of computing resources provided by the distributed execution environment202may include various types of resources, such as data processing resources, data storage resources, data communication resources, and the like. The resources may be provided at least in part by the host computing systems108. Each type of computing resource may be general-purpose or may be available in a number of specific configurations. Each type or configuration of an instance of a computing resource may be available in different sizes, such as large resources, consisting of many processors, large amounts of memory, and/or large storage capacity, and small resources consisting of fewer processors, smaller amounts of memory, and/or smaller storage capacity.

Instances of data processing resources may be available as virtual machine instances in a number of different configurations. The virtual machine instances may be configured to execute applications, including Web servers, application servers, media servers, database servers, and other types of applications. Instances of data storage resources may include file storage devices, block storage devices, and the like. Instances of remote desktop sessions might also be utilized in various embodiments presented herein. A remote desktop session may be established utilizing the remote desktop protocol (“RDP”) or another similar protocol for viewing and interacting with a graphical user interface provided by another computer. It should be understood that an instance may include any combination of the various types of resources described above.

The instances of computing resources provided by the distributed execution environment202are enabled in one implementation by one or more data centers204A-204N (which may be referred herein singularly as “a data center204” or in the plural as “the data centers204”). The data centers204are facilities utilized to house and operate computer systems and associated components. The data centers204typically include redundant and backup power, communications, cooling, and security systems. The data centers204might also be located in geographically disparate locations. One illustrative configuration for a data center204that implements the concepts and technologies disclosed herein for providing the custom host errors definition service102will be described below with regard toFIG. 3.

The customers and other consumers of the distributed execution environment202may access the computing resources provided by the data centers204over a network, such as the network106, the Internet, or any other networking topology known in the art that connects the data centers204to remote customers and/or other users may be utilized. It should also be appreciated that combinations of such networks might also be utilized.

FIG. 3is a computing system diagram that illustrates one configuration for a data center204that can be used to implement the distributed execution environment202, including the concepts and technologies disclosed herein for providing the custom host errors definition service102. The example data center204shown inFIG. 3includes several server computers300A-300F (which may be referred herein singularly as “the server computer300” or in the plural as “the server computers300”) for providing instances of computing resources. The server computers300may be standard tower or rack-mount server computers configured appropriately for providing the computing resources described herein. For example, in one implementation the server computers300are configured to provide instances304A-304N of computing resources.

In one embodiment, the instances304A-304N (which may be referred herein singularly as “the instance304” or in the plural as “the instances304”) are virtual machine instances. As known in the art, a virtual machine instance is an instance of a software implementation of a machine (e.g., a computer) that executes programs like a physical machine. Each of the servers300may be configured to execute an instance manager306capable of instantiating and managing instances of computing resources. In the case of virtual machine instances, for example, the instance manager306might be a hypervisor or another type of program configured to enable the execution of multiple virtual machine instances304on a single server computer300, for example. It should be appreciated that although the embodiments shown inFIG. 3are described primarily in the context of virtual machine instances, other types of instances of computing resources can be utilized with the concepts and technologies disclosed herein.

The data center204also includes a server computer300F reserved for executing software components for managing the operation of the data center204, the server computers300, and the instances304. In particular, the server computer300F might execute the instance launch manager308to receive instance launch requests from one or more of the customer computing systems104, and to instantiate one or more of the instances304in response to the requests.

In the example data center204, an appropriate LAN310is utilized to interconnect the server computers300A-300E and the server computer300F. The LAN310is also connected to the network106, which was introduced inFIG. 1. It should be appreciated that the network topology illustrated inFIGS. 1-3has been greatly simplified and that many more networks and networking devices may be utilized to interconnect the various computing systems disclosed herein. Appropriate load balancing devices or software modules might also be utilized for balancing a load between each of the data centers204A-204N, between each of the server computers300A-300F in each data center204, and between instances304of computing resources purchased by each customer of the distributed execution environment202.

It should be appreciated that the data center204described inFIG. 3is merely illustrative and that other implementations might be utilized. In particular, functionality described herein as being performed by the instance launch manager308might be performed by one or more other components. Additionally, it should be appreciated that the functionality provided by these components might be implemented in software, hardware, or a combination of software and hardware. Other implementations should be apparent to those skilled in the art.

The host computing systems108(described inFIG. 1) might be implemented as part of the server computers300within the data center204. The host applications114(also described inFIG. 1) might include the instance manager306, the instance launch manager308, and/or other applications executing on virtual instances within the distributed computing environment202.

Turning now toFIG. 4, aspects of a method400for providing a custom host errors definition service, such as the custom host errors definition service102described above with regard toFIG. 1, will be described in detail, according to an illustrative embodiment. It should be appreciated that the logical operations described herein with respect toFIG. 4are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation of the various components described herein is a matter of choice dependent on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as operations, structural devices, acts, or modules. These operations, structural devices, acts, and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof. It should also be appreciated that more or fewer operations may be performed than shown inFIG. 4and described herein. These operations may also be performed in parallel, or in a different order than those described herein.

For purposes of illustrating and describing the concepts of the present disclosure, the methods disclosed herein are described as being performed by one of more computing systems configured to provide the custom host errors service102via execution of one or more software modules such as, for example, the error definition service application120, the error detection application122, and/or the error response action application124. It should be understood that additional and/or alternative devices and/or network nodes can provide the functionality described herein via execution of one or more modules, applications, and/or other software including, but not limited to, the error definition service application120, the error detection application122, and the error response action application124. Thus, the illustrated embodiments are illustrative, and should not be viewed as being limiting in any way.

The method400begins at operation402, where the custom host errors definition service102creates an endpoint, such as one of the endpoints116, for a customer. From operation402, the method400proceeds to operation404, where the custom host errors definition service102receives login credentials for the customer. The login credentials might include a username and password combination and/or any other authentication credential so as to provide the customer secure access to the custom host errors definition service102via the endpoint. In some embodiments, the login credentials are associated with an account established by or on behalf of the customer to access the custom host errors definition service102. The account also might be associated with other services, such as one or more services provided at least in part by the distributed execution environment202.

From operation404, the method400proceeds to operation406, where the custom host errors definition service102receives a custom error definition, such as one of the error definitions118, via the endpoint created at operation402. The custom error definition can be provided by one or more customers via a web interface provided by the endpoint. An illustrative custom host error definition interface500is illustrated inFIG. 5, which will now be described.

The custom host error definition interface500is provided as merely one example of an interface that might be utilized to facilitate receipt of custom host error definitions by the custom host errors definition service102, such as described at operation406of the method400illustrated inFIG. 4. It is contemplated, however, that other interface types using any user interface elements might be utilized to provide an interface for use by one or more customers to define one or more custom host errors for the custom host errors definition service102. As such, the illustrated custom host error definition interface500is merely provided as an example, and should not be construed as being limiting in any way.

The custom host error definition interface500provides multiple drop-down menus for use by customers to provide custom error definitions. The illustrated custom host error definition interface500has a system selection menu502, a component selection menu504, an attribute selection menu506, an action selection menu508, and an error condition code entry element510. Although the menus502-508are shown as drop-down menus, other user interface elements such as, for example, text boxes, buttons, lists, check boxes, radio buttons, tabs, icons, and the like may be utilized in alternative implementations.

The system selection menu502provides a number of host computing systems that may be selected as the system(s) for which the custom error definition should be applied. In the illustrated example, “HOST COMPUTING SYSTEM A” has been selected to identify that the host computing system A108A is the host computing system for which the custom error definition should be applied.

The component selection menu504provides a number of components that may be selected as the component(s) for which the custom error definition should be applied. In the illustrated example, “DRIVE A” has been selected to identify that a drive component, such as a hard drive, is the component of the host components A112A of the host computing system A108A for which the custom error definition should be applied.

The attribute selection menu506provides a number of attributes that may be selected as the attribute(s) for use in creating the custom error condition. The attributes provided in the attribute selection menu506may be particular to the selected component. In the illustrated example, the attribute selection menu506includes a plurality of attributes that are particular to the operation of “DRIVE A,” and more generally, to hard drive components. The example attributes include reallocation count, uncorrectable sector count, throughput performance, read error rate, write error rate, and temperature. These examples are merely illustrative of some types of attributes that may be monitored for a hard drive component. Other components might have different attributes. A processor, for example, might have attributes relating to clock speed, temperature, and the like. A solid-state drive, on the other hand, might have attributes similar to a hard drive for read error rates, write error rates, and temperature, for example.

The error condition for an attribute selected via the attribute selection menu506can be defined via the error condition code entry element510. In some embodiments, the error condition code entry element510can be a text box configured to receive code for programming the error condition for the selected attribute. The language utilized to code the error condition for the selected attribute might be any existing programming language, a proprietary programming language, or rules defined through the use of symbols such as a less-than sign (“<”), a greater-than sign (“>”), a less-than-or-equal-to sign (“≦”), a greater-than-or-equal-to sign (“≧”), and an equal-to sign (“=”). For example, the error condition code for the selected “REALLOCATION COUNT” attribute might include “REALLOCATION COUNT≧10” to define any reallocation count that is greater-than-or-equal-to the value “10” for “DRIVE A” on “HOST COMPUTING SYSTEM A” as being indicative of an error and flag the error accordingly.

The action selection menu508provides a number of actions that can be taken by the custom host errors definition service102in response to detecting the error defined through the other selection menus508-506and the error condition code entry element510. In the illustrated example, the action selection menu508includes an email notification, a text message notification, a call notification, an auto-correct action, and a shutdown system action. The notification actions can be used to notify one or more customers that created the custom error definition of the error. The auto-correct action can cause the custom host errors definition service102to auto-correct the error. This might entail having one or more individuals manually replace a defective part, such as “DRIVE A,” run one or more diagnostic tests, run one or more applications in an attempt to resolve the error, and/or take other action on behalf of the customer(s). The shutdown system action has been selected in the illustrated example, and as a result, the custom host errors definition service102can cause the “HOST COMPUTING SYSTEM A” to be shutdown. Additional actions may then be taken by or on behalf of the customer(s) to resolve the error, and as such, the examples provided above should not be construed as being limiting in any way.

Turning back toFIG. 4, after a custom error definition is received, such as via the custom host error definition interface500, the method400proceeds from operation406to operation408, where the custom host errors definition service102applies the custom error definition for the selected system(s). From operation408, the method400proceeds to operation410, where the custom host errors definition service102receives a host status (e.g., the host status114) from the selected system(s).

At operation412, the custom host errors definition service102analyses the host status to determine whether an error condition provided in the custom error definition has been met. If not, the method400proceeds back to operation410, where the custom host errors definition service102receives another host status. If so, the method400proceeds to operation414, where the custom host errors definition service102processes the error in accordance with the custom error definition. The custom host errors definition service102may process the error by taking one or more actions defined in the custom error definition. A default action, such as to notify the customer, may be taken in lieu of a customer-defined action to take in response to the error.

From operation414, the method400proceeds to operation416. The method400ends at operation416.

FIG. 6shows an example computer architecture for a computer600capable of executing the program components described above for providing a custom host errors definition service. The computer architecture shown inFIG. 6illustrates a conventional server computer, workstation, desktop computer, laptop, tablet, network appliance, PDA, e-reader, digital cellular phone, or other computing device, and may be utilized to execute any aspects of the software components presented herein described as executing on the customer computing systems104, on the host computing systems108, on computing systems utilized by the custom host errors definition service102, within the data centers204A-204N, on the server computers300A-300F, or on any other computing system mentioned herein.

The chipset606provides an interface between the CPUs604and the remainder of the components and devices on the baseboard602. The chipset606may provide an interface to a random access memory (“RAM”)608, used as the main memory in the computer600. The chipset606may further provide an interface to a computer-readable storage medium such as a read-only memory (“ROM”)610or non-volatile RAM (“NVRAM”) for storing basic routines that help to startup the computer600and to transfer information between the various components and devices. The ROM610or NVRAM may also store other software components necessary for the operation of the computer600in accordance with the embodiments described herein.

The computer600may operate in a networked environment using logical connections to remote computing devices and computer systems through a network611, such as the network106or the local area network310. The chipset606may include functionality for providing network connectivity through a network interface controller (“NIC”)612, such as a gigabit Ethernet adapter. The NIC612is capable of connecting the computer600to other computing devices over the network611. It should be appreciated that multiple NICs612may be present in the computer600, connecting the computer to other types of networks and remote computer systems.

The computer600may be connected to a mass storage device614that provides non-volatile storage for the computer. The mass storage device614may store system programs, application programs, other program modules, and data, which have been described in greater detail herein. The mass storage device614may be connected to the computer600through a storage controller616connected to the chipset606. The mass storage device614may consist of one or more physical storage units. The storage controller616may interface with the physical storage units through a serial attached SCSI (“SAS”) interface, a serial advanced technology attachment (“SATA”) interface, a fiber channel (“FC”) interface, or other type of interface for physically connecting and transferring data between computers and physical storage units.

The mass storage device614may store an operating system, such as the operating system128, utilized to control the operation of the computer600. According to one embodiment, the operating system comprises the LINUX operating system. According to another embodiment, the operating system comprises the WINDOWS® SERVER operating system from MICROSOFT Corporation. According to further embodiments, the operating system may comprise the UNIX or SOLARIS operating systems. It should be appreciated that other operating systems may also be utilized. The mass storage device614may store other system or application programs and data utilized by the computer600, such as the error definition client application132, the web browser130, the error response action application124, the error detection application122, the error definition service application120, the error definition database126, and/or any of the other software components and data described herein above. The mass storage device614might also store other programs and data not specifically identified herein.

In one embodiment, the mass storage device614or other computer-readable storage media is encoded with computer-executable instructions which, when loaded into the computer600, transforms the computer from a general-purpose computing system into a special-purpose computer capable of implementing the embodiments described herein. These computer-executable instructions transform the computer600by specifying how the CPUs604transition between states, as described above. According to one embodiment, the computer600has access to computer-readable storage media storing computer-executable instructions which, when executed by the computer600, perform the method described above with regard toFIG. 4and to present a user interface, such as the custom host error definition interface500described above with regard toFIG. 5.

The computer600may also include one or more input/output controllers618for receiving and processing input from a number of input devices, such as a keyboard, a mouse, a touchpad, a touch screen, an electronic stylus, or other type of input device. Similarly, the input/output controller618may provide output to a display, such as a computer monitor, a flat-panel display, a digital projector, a printer, a plotter, or other type of output device. It will be appreciated that the computer600may not include all of the components shown inFIG. 6, may include other components that are not explicitly shown inFIG. 6, or may utilize an architecture completely different than that shown inFIG. 6.

Based on the foregoing, it should be appreciated that technologies for providing a custom host errors definition service have been presented herein. Although the subject matter presented herein has been described in language specific to computer structural features, methodological acts, and computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts, and mediums are disclosed as example forms of implementing the claims.