MONITORING A COMPUTER SYSTEM

The present disclosure relates to method for monitoring a computer system. The computer system comprises a first processing unit and a monitoring unit for monitoring operation of the computer system. The method comprises: providing the computer system with a converter unit that is configured to communicate with the monitoring unit and the first processing unit. The converter unit may receive monitoring data from the monitoring unit. The received monitoring data may be pre-processed at the converter unit. The converter unit may send the resulting pre-processed data to at least one remote management system.

BACKGROUND

The present invention relates to the field of digital computer systems, and more specifically, to a method for monitoring a computer system.

Preventing downtime in computer systems of a data centre may be a high priority for data centre administrators. The availability of the computer systems may enable users to access information or resources without interruptions. For that, computer systems may be monitored during their operation. However, there is a continuous need to improve the monitoring of such systems.

SUMMARY

Various embodiments provide a method for monitoring a computer system, computer program product and processing unit as described by the subject matter of the independent claims. Advantageous embodiments are described in the dependent claims. Embodiments of the present invention can be freely combined with each other if they are not mutually exclusive.

In one aspect, the invention relates to a method for monitoring a computer system, the computer system comprising a first processing unit, the computer system further comprising a monitoring unit for monitoring operation of the computer system. The method comprises providing the computer system with a second processing unit that is configured to communicate with the monitoring unit and the main processing unit. The method further comprises receiving at the converter unit monitoring data from the monitoring unit. The method further comprises (a pre-processing step of) pre-processing the received monitoring data at the converter unit. The method further comprises (a sending step of) sending the resulting pre-processed data by the converter unit to at least one remote management system. The first processing unit may be referred to as main processing unit. The second processing unit may be referred to as converter unit.

In one aspect the invention relates to a computer program product comprising a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to implement the method of the above embodiment.

In one aspect the invention relates to a processing unit (referred to as converter unit) for a computer system, the computer system comprising a first processing unit, the computer system further comprising a monitoring unit for monitoring operation of the computer system. The processing unit is configured for: receiving monitoring data from the monitoring unit; pre-processing the received monitoring data; sending the resulting pre-processed data to at least one remote management system.

DETAILED DESCRIPTION

The monitoring unit may be configured to collect or acquire monitoring data e.g., in the form of time series data. The monitoring data may track changes over time of monitoring parameters. The monitoring parameters may comprise environment parameters, hardware parameters and/or software parameters. The environment parameters may comprise a room temperature of a room where the computer system is located, room humidity, etc. The hardware parameters may comprise fan speed, voltage, current, etc. The software parameters may comprise parameters that may be measured by an operating system of the main processing unit such as CPU usage, memory usage of one or more applications at the main processing unit. The monitoring data may enable to control the operation of the computer system to keep the performance of the computer system in agreement with performance requirements, e.g., as defined by a quality of service (QoS). For example, the monitoring data may be used to take timely and effective service actions in case of a detected malfunction related to the computer system. A malfunction may, for example, be that the value or the behaviour of one or more monitoring parameters is different from a reference behaviour. This may, for example, prevent downtime which may be a high priority in data centres comprising computer systems.

When a malfunction (e.g., an event that results in computing downtime) occurs, a user (e.g., administrator) of the remote management system may access the computer system remotely and fix the malfunction. The remote management system may be another computer system that is not part of the computer system comprising the converter unit. The remote management system may be referred to as an external system. The external system is not part of the computer system. The external system may communicate through a connection with the computer system. The connection may, for example, be a network connection. The external system may, for example, be a database management system that is configured to receive the pre-processed data and store it in a database for enabling analysis of the data. In one example, the external system may be a web server that manages requests which may be derived by the converter unit from the pre-processed data.

The monitoring data may thus be descriptive of hardware components of the computer system during operation of the computer system, descriptive of the environment of the computer system etc. For example, the monitoring unit may monitor environmental sensors and log events, wherein the monitoring data comprises the logged events. The monitoring unit may, for example, monitor and log the temperatures, voltages, CPU status, currents, memory usage, and fan speeds at the computer system, wherein the monitoring data comprises the logged data.

However, the size and the diversity of the monitoring data may render the management of the computer system inefficient. For example, the time series data may be collected in short intervals (such as minutes), so the data accumulates very rapidly. Thus, trying to understand the data formats before actually analysing it may cause unnecessary delays. In addition, the monitoring data may comprise irrelevant data whose analysis may cause extra delays and may lead to misleading results. The present subject matter may solve this issue by using a second processing unit which is referred to as converter unit.

The converter unit, the monitoring unit, and the main processing unit may be independent components of the computer system that may communicate with each other through one or more communication means. The converter unit may be configured to receive the monitoring data from the monitoring unit. The converter unit may pre-process the monitoring data. The resulting pre-processed data may then be provided by the converter unit for enabling the management of the computer system, to efficiently monitor and thus control computer system.

For example, the pre-processed data at the remote management system may be analysed, e.g., by one or more mining tools, to determine whether a service action at the computer system is needed. If the service action is needed, the remote management system may send a control signal or command to execute the service action at the computer system. The service action may, for example, be executed to fix a malfunction for the computer system. For example, if the room temperature is too high, the service action may be to repair an existing cooling system or use a new cooling system. In another example, if the log files of a given application running in debug mode at the computer system are too large, the service action may adapt the application to run in info mode instead of the debug mode. In another example, the service action may be a shut down, power-cycle, or reboot of the computer system. Thus, in response to sending the pre-processed data, the computer system may receive a command to perform a service action that controls its operation.

For example, the converter unit may automatically send the pre-processed data to the at least one remote management system. Alternatively, the converter unit may send the pre-processed data to the at least one remote management system upon receiving a request from the at least one remote management system. The data pre-processing may enable the manipulation and/or filtering of the monitoring data before it is used at the remote management system(s). This may ensure or enhance performance. Hence, instead of sending the data unconditionally to the remote management system(s), the converter unit may seamlessly be integrated in the existing computer system to improve the monitoring data reporting.

The processing capability of the converter unit may be smaller than the processing capability of the main processing unit. For example, the converter unit may comprise a microcontroller. The converter unit may, for example, comprise a minimal operating system. The minimal operating system may be an operating system that has been stripped of unnecessary components and provides only the functionality needed for a specific purpose e.g., performing the method of the converter unit according to the present subject matter.

According to one example, the computer system comprises a bus system connecting the main processing unit, the monitoring unit, and the converter unit, wherein the converter unit receives the monitoring data via the bus system. The bus system may be a single computer bus that connects the units of the computer system, combining the functions of a data bus to carry information, an address bus to determine where it should be sent or read from, and a control bus to determine its operation.

According to one example, the method further comprises: receiving by the converter unit further monitoring data from an operating system of the main processing unit, wherein the pre-processing is performed using the further received monitoring data. The operating system of the main processing unit may be referred to as base operating system. The further monitoring data may be descriptive of the software components being served by the base operating system. The further monitoring data may comprise values of the software parameters. This example may further improve the performance of the computer system as it enables to check the software part of the computer system, in addition to the hardware part provided by the monitoring data of the monitoring unit.

According to one example, the converter unit comprises an application comprising instructions that, when executed, perform at least one of the pre-processing step and the sending step. The application is containerized in a container. The container may be a fully functional and portable computing environment surrounding the application and keeping it independent from other parallelly running environments. The container may run the application in isolation by bundling related configuration files, libraries and dependencies. The container may, for example, be created from a container image. The container image may be a template for creating one or more containers. This example may be advantageous as it may render the execution of the application less dependent on the computer system. Using containers may improve the control of the computer system, e.g., if the administrator requires additional monitoring data or a different data format, the container can be easily adapted to the new needs and can be rapidly deployed and patched compared a non-containerized application.

According to one example, the converter unit comprises multiple applications comprising instructions that, when executed, perform at least one of the pre-processing step and the sending step. Each application of the multiple applications is containerized in a respective container. For example, the pre-processing may comprise multiple different types of pre-processing, wherein each type of pre-processing may result in its pre-processed data. Each application of the multiple applications may be configured to perform a respective type of pre-processing and perform the submission of the resulting pre-processed data. For example, the pre-processed data of each type of pre-processing may be sent to a distinct external system. This example may provide a modular processing of the monitoring data. This may particularly be advantageous if different external systems require different types and/or formats of the monitoring data which may be provided by the different applications.

According to one example, the method further comprises: receiving by the converter unit container images from one or more users, storing the container images in the converter unit, and creating the multiple containers using the respective container images. This may increase the usability of the converter unit as different users can decide the type of monitoring data they want to have by using distinct containers.

According to one example, the pre-processing of the monitoring data comprises: performing a first type analysis by executing a first container of the multiple containers, resulting in first pre-processed data, performing a second type analysis by executing a second container of the multiple containers, resulting in second pre-processed data; wherein the first pre-processed data is sent to the remote management system associated with the first container and the second pre-processed data is sent to another remote management system associated with the second container.

According to one example, the method further comprises: establishing a connection between the converter unit and the remote management system, for exclusive communication of data between the converter unit and the remote management system, and sending the pre-processed data to the remote management system through the established connection. For example, each unit of the converter unit, the monitoring unit and the main processing unit may comprise a respective network interface device to connect to a same network or different networks. This example may enable an isolation of the converter unit from the other units of the computer systems. This may secure data communicated by the converter unit. In case of multiple remote management systems, the converter unit may establish a connection with each of remote management systems and may send the pre-processed data to the multiple remote management systems via the connections respectively. In one example, the whole pre-processed data may be sent to each of the multiple remote management systems. Each of the remote management systems may analyse its part of the pre-processed data and provide a service action based on the analysis of that part. Alternatively, each of the remote management systems may analyse the whole pre-processed data and the results may be combined in order to (jointly) provide a service action based on the analysis results. In one example, the converter unit may send to each remote management system of the remote managements a portion of the pre-processed data that is associated with the each remote management system. This may be advantageous in case each remote management system may require a different type of pre-processing.

According to one example, the converter unit is configured to communicate with the monitoring unit and the main processing unit via a secure communication protocol. This example may further secure the communicated data by the converter unit because the internal communication is also secured through the secure communication protocol.

According to one example, the secure communication protocol requires at least one of: encryption of transmitted data, read only requests from the converter unit. Following the secure communication protocol, the converter unit may only perform read requests to the monitoring unit and the main processing unit. For example, the converter unit may be configured to send a read request to the monitoring unit and the main processing unit in order to receive the monitoring data from the monitoring unit and the main processing unit respectively. Additionally, or alternatively, the converter unit may receive the monitoring data in encrypted format according to an encryption protocol. The converter unit may decrypt the received encrypted data according to the encryption protocol e.g., using a decryption key, for performing the pre-processing of the monitoring data.

The converter unit may be configured to communicate with the monitoring unit and with the main processing unit using an internal IP protocol. According to one example, the converter unit is configured to communicate with the monitoring unit and the main processing unit via an application programming interface (API). For example, each of the monitoring unit and the main processing unit may comprise an agent that enables the communication through the API.

According to one example, the converter unit is a system on chip (SoC) embedded to a motherboard of the computer system. The main processing unit and the monitoring unit are embedded to the motherboard, wherein a bus system connects the units on the motherboard. This example may provide the converter unit as an integrated onboard technology. This may enable a flexible implementation of the converter unit. The converter unit may be provided as a universal plug-in that can easily be inserted in computer systems.

According to one example, the monitoring unit comprises a service processor. The main processing unit comprises a base operating system (OS). The base OS is configured to acquire data descriptive of software components of the computer system. The service processor is configured to acquire data descriptive of hardware components of the computer system, wherein the monitoring data comprises the acquired data. The service processor may be a microcontroller that may be embedded in a motherboard, a PCI card, or on the chassis of the computer system. The service processor is independent from the main processing unit and may be accessible through an Ethernet interface, for Out-of-Band management or sideband management.

According to one example, the pre-processing comprises at least one of the following: filtering the received monitoring data using one or more filters; analysing the received data and providing one or more notifications and/or instructions based on the analysis; or formatting the filtered data according to a defined format. Filtering the data may comprise selecting a portion of the monitoring data that may be of interest at the remote management system, e.g., a filter may for example require monitoring data obtained during a given time period e.g., during the day, because during the night the computer system may not be in use and thus its monitoring data may not be needed. In another example, a filter may perform data cleansing by detecting wrong data or data that cannot be used for analysis and removing it from the monitoring data. The formatting of the monitoring data may, for example, comprise determining attributes (such as CPU usage attribute, or temperature etc.) whose values are part of the monitoring data, and using the attributes to provide structured data e.g., in the form of table records or graphs etc.

For example, the analysis of the monitoring data may reveal that a temperature sensor is higher than a threshold or lower than a threshold, in response to which the converter unit may notify the remote management system accordingly or instruct the remote management system to perform a specific predefined service action. In another example, the computer system may be comprised in a fridge, wherein the analysis of the monitoring data may indicate that a malfunction of the fridge (e.g., a component of the fridge breaks) and may instruct accordingly the remote management system to fix or solve the malfunction.

According to one example, the main processing unit comprises at least one hypervisor supporting virtual machines. The at least one hypervisor may be a first type and/or second type hypervisor.

According to one example, the remote management system is a database management system or a web server.

FIG.1depicts a management system in accordance with an example of the present subject matter.

The management system100comprises a computer system101and one or more external systems103.1through103.n. The computer system101comprises a main processing unit105, a converter unit107and a monitoring unit109. The main processing unit105may comprise a processor110and a main memory111. The memory111may comprise software. The software may include a suitable operating system (OS)115. The OS115may control the execution of other computer programs. The main processing unit105may further comprise a network interface device113for coupling to a network such as network102.

The components of the computer system101may be coupled to a bidirectional system bus120. For example, the converter unit107, the monitoring unit109, the processor110, the memory111, and the network interface device113may be coupled to the bus120.

The converter unit107may be configured to transmit and receive data from the external systems103.1-nover a network102. The data may be transmitted and received between the converter unit107and the external system(s) using a communication protocol such as the Simple Network Management Protocol (SNMP) protocol. The network102may be an IP-based network for communication between the converter unit107and any external system, client and the like via a broadband connection. The network102transmits and receives data between the converter unit107and external systems103.1-n. The network102may be implemented in a wireless fashion, e.g., using wireless protocols and technologies, such as WiFi, WiMax, etc. The network102can also be a packet-switched network such as a local area network, wide area network, metropolitan area network, Internet network, or other similar type of network environment. The network102may be a fixed wireless network, a wireless local area network (LAN), a wireless wide area network (WAN) a personal area network (PAN), a virtual private network (VPN), intranet or other suitable network system and includes equipment for receiving and transmitting signals.

FIG.2depicts a block diagram of an example implementation of the main processing unit105ofFIG.1.

The processing unit105may be configured to execute applications APP1-APPN using virtual machines213.1-213.N. A bootloader (not shown) may be used to configure and start at least part of the applications APP1-APPN. As shown inFIG.2, the memory111may include a hypervisor211that is up and running. The hypervisor211may, for example, be implemented as a software layer that runs directly on the computing hardware of the processing unit105or may be implemented as part of the OS115of the processing unit105. The hypervisor211may be configured to provide virtualized hardware elements for each virtual machine213.1-N. The hypervisor211may instantiate any number of Virtual Machines (VMs). As shown inFIG.2, the hypervisor211may instantiate VM instances213.1-N. For each VM, the hypervisor211may allocate a chunk of memory and other resources e.g., each VM213.1-N provides a virtualized computing platform with a virtual CPU, memory, storage, and networking interfaces. After being defined or created, the VMs213.1-N may be initiated or booted using, for example, the bootloader.FIG.2shows, for example, the VMs213.1-N after being booted. Each of the VMs213.1-N comprises a guest operating system and the application that is to be executed on the VMs.

FIG.3depicts a processing unit in accordance with an example of the present subject matter.FIG.3provides an example implementation of the converter unit107as a container-based virtualization system. The converter unit107comprises a memory311and other hardware components including, for example, a processor310and a network interface device314for coupling to the network102.

For example, the memory311may comprise an operating system301. The operating system301may be a minimal operating system. The memory311may comprise a container manager307executed at least in part by the operating system301for developing, delivering, installing, and executing software containers. The container manager307may for example be Docker® container manager or Pod Manager (PODMAN™) container manager. The converter unit107comprises software containers305.1-M. The containers305.1-M may be created using the container manager307. In another example, a container of the containers305.1-M may be received or imported and integrated in the converter unit107e.g., the received container may have been built in another system that has a same configuration (e.g., kernel configuration) as the converter unit107.

The operating system301in conjunction with the container manager307provides isolation between software processes executing in the converter unit107such as containers305.1-M. For example, the processes may be provisioned to have a private view of the operating system301such that two processes cannot access each other's resources. Although isolated, the processes may still be capable of intercommunication such as by way of network connections or the like between the processes in the same way as unrelated and isolated computer systems can communicated via a network if configured and permitted to do so.

The container manager307may for example be configured to receive a container image309for instantiation, installation, and/or execution in the operating system301. The container image309may be created and/or modified by the container manager or another software component such as an installer. The container image309may be a software component for execution as an isolated process in the operating system301. For example, the container image309may be a Docker® image obtained from a container repository such as the Docker® registry. For example, the container image309may be a read-only template with instructions for creating a container. Using the container image309a container may be instantiated by the container manager307for execution as one or more processes in the operating system301.

Each of the containers305.1-M may be configured to perform a respective task or application. The containers305.1-M may, for example, enable to perform the pre-processing of the monitoring data and the transmission of the pre-processed data according to the present subject matter. For example, the pre-processing step may perform multiple tasks. The tasks may be assigned to different pre-processing types such as a task of providing pre-processed data related to the CPU, and another task for providing pre-processed data related to the memory etc. In another example, the tasks may be assigned to different stages or phases of the pre-processing step e.g., such as cleansing task, selection task etc. Each container of the containers305.1-M may be configured to perform a respective task of the tasks. The result of each task may be pre-processed data. The resulting pre-processed data of all tasks may be combined and sent (e.g., by one of the containers) to one or more external systems. If sent to multiple external systems, each external system may check the respective part of the pre-processed data and decide its service actions. Or, the multiple external systems may analyse the whole pre-processed data and combine their analysis result in order to decide (jointly) service actions on the computer system. Alternatively, the pre-processed data of each task may be sent by the respective container to a respective external system. This may be advantageous in case each external system may require a different type of pre-processing.

FIG.4depicts a processing unit in accordance with an example of the present subject matter.FIG.4provides an example implementation of the converter unit107as a SoC. The converter unit107comprises a processor410comprising central processing units (CPUs) and graphics processing units (GPUs). The converter unit107comprises a random-access memory (RAM)411and an I/O device412. The converter unit107further comprises a network interface device414for coupling to the network102. The converter unit107further comprises a digital signal processor (DSP)416e.g., for digital signal processing. As illustrated inFIG.4, the RAM411may comprise a minimal operating system401such as microkernel Linux® and a container manager407such as PODMAN™ container manager or Docker® container manager for enabling containers in the converter unit107. The containers may be configured to perform the pre-processing step and the transmission of the pre-processed data as described with reference toFIG.3.

FIG.5depicts a motherboard500in accordance with an example of the present subject matter.FIG.5provides an example implementation of the computer system101. A main processing unit501, a converter unit503and a monitoring unit505are embedded in the motherboard500. The main processing unit501may be provided with hardware components such as a CPU and a RAM having a base OS and a hypervisor of type1and type2. The main processing unit501may further be provided with a network interface520for communication with a network.

The converter unit503may be a SoC provided with partitions510for data, containers, and container images. The converter unit503may comprise partition511for containers such as PODMAN™ containers. The converter unit503may comprise partition512for images such as PODMAN™ images. The converter unit503may comprise in component513a microkernel OS, drivers, and a container manager such as PODMAN™ container manager for managing the containers. The converter unit503may further be provided with a network interface521for communication with the network. The monitoring unit505may be a service processor such as Integrated Management Module (IMM), System Management Module (SMM) or XClarity Controller (XCC) which is configured to communicate according to a SNMP protocol.

The monitoring unit505may further be provided with a firmware such as BIOS or UEFI and a network interface522for communication with the network. The implementation ofFIG.5enables the three units to independently connect to the network using their respective network interfaces. As indicated inFIG.5, the main processing unit501, converter unit503and monitoring unit505may communicate with each other using internal IP secure API calls.

FIG.6depicts a management system600in accordance with an example of the present subject matter. The management system600comprises multiple computer systems e.g., two computer systems601and603. The management system600further comprises a database system605and an analysis system607. The database system605may, for example, comprise InfluxDB®. The analysis system607may, for example, comprise Grafana®. The computer system601may comprise hardware components such as RAM, CPU, and HDD storage. The RAM may comprise a base OS610and hypervisor such as VMware vSphere Hypervisor (ESXi) or VMware ESXi™. The computer system601may comprise a service processor611such as IMM, SMM, or XCC and a SoC612according to the present subject matter. The SoC612may, for example, comprise a converter unit configured as a container-based virtualization system having one or more containers. This is indicated inFIG.6, where the SoC612is associated with a container name631(e.g., the container name may be “snmp_exporter_Prometheus™”) of a container that may execute the pre-processing of the monitoring data and transmission of the pre-processed data according to the present subject matter. The result of the pre-processing may be sent to the database system605.

The computer system603may comprise a service processor621such as IMM, SMM, or XCC and a SoC622according to the present subject matter. The computer system603may comprise hardware components such as RAM, CPU, and HDD storage. The RAM may comprise a base OS620and hypervisor such as VMware vSphere Hypervisor (ESXi) or VMware ESXi™. The SoC622may, for example, comprise a processing unit configured as a container-based virtualization system having one or more containers. This is indicated inFIG.6, where the SoC622is associated with a container name632(e.g., the container name may be “snmp_exporter_InfluxDB®”) of a container that may execute the pre-processing of the monitoring data and transmission of the pre-processed data according to the present subject matter. The result of the pre-processing may be sent to the database system605. The analysis system607may analyse the monitoring data and based on that analysis, service actions may be performed in the computer system601and/or computer system603.

As indicated inFIG.6, the present subject matter may be advantageous as the converter unit may be provided as a universal plug-in that can be installed in different computer systems. The present subject matter may further be advantageous as it makes use of containers at the converter unit so that each provided converter unit may have its own container e.g., each different container (converter unit) may perform a different type of pre-processing.

FIG.7is a flowchart of a method for monitoring a computer system in accordance with an example of the present subject matter. For simplification purpose, the method ofFIG.7is described with reference toFIG.1's system but it is not limited to what is depicted (or described in association with)FIG.1. The converter unit107may receive in step701monitoring data from the monitoring unit109. The converter unit107may pre-process in step703the received monitoring data. Step703may be referred to as pre-processing step. The converter unit107may send in step705the resulting pre-processed data to at least one remote management system103.1-n. Step705may be referred to as sending step. In one example implementation, steps701to705may be repeatedly performed. For example, steps701to705may be repeated until a stop criterion is fulfilled. The stop criterion may, for example, require a maximum number of repetitions, or require a stop command is received at the second processing unit.

The present subject matter may comprise the following clauses.

Clause 1. A method for monitoring a computer system, the computer system comprising a first processing unit, herein referred to as main processing unit, the computer system further comprising a monitoring unit for monitoring operation of the computer system, the method comprising: providing the computer system with a second processing unit, herein referred to as converter unit, that is configured to communicate with the monitoring unit and the main processing unit; receiving at the converter unit monitoring data from the monitoring unit; pre-processing the received monitoring data at the converter unit; sending the resulting pre-processed data by the converter unit to at least one remote management system.

Clause 2. The method of clause 1, the computer system comprising a bus system connecting the main processing unit, the monitoring unit and the converter unit, wherein the converter unit receives the monitoring data via the bus system.

Clause 3. The method of any of the preceding clauses 1 to 2, further comprising: receiving by the converter unit further monitoring data from an operating system of the main processing unit, wherein the pre-processing is performed using the further received monitoring data.

Clause 4. The method of any of the preceding clauses 1 to 3, the converter unit comprising an application comprising instructions that, when executed, perform at least one of the pre-processing and the sending, the application being containerized in a container.

Clause 5. The method of any of the preceding clauses 1 to 3, the converter unit comprising multiple applications comprising instructions that, when executed, perform at least one of the pre-processing and the sending, each application of the multiple applications being containerized in a respective container.

Clause 6. The method of clause 5, further comprising: receiving by the converter unit container images from users; storing the container images in the converter unit; creating the multiple containers using the respective container images.

Clause 7. The method of clause 5 or 6, the pre-processing comprising: performing a first type analysis by executing a first container of the multiple containers, resulting in first pre-processed data; performing a second type analysis by executing a second container of the multiple containers, resulting in second pre-processed data; wherein the first pre-processed data is sent to the remote management system associated with the first container and the second pre-processed data is sent to another remote management system associated with the second container.

Clause 8. The method of any of the preceding clauses 1 to 7, further comprising: establishing a connection between the converter unit and the remote management system, for exclusive communication of data between the converter unit and the remote management system; and sending the pre-processed data to the remote management system through the established connection.

Clause 9. The method of any of the preceding clauses 1 to 8, the converter unit being configured to communicate with the monitoring unit and the main processing unit via a secure communication protocol.

Clause 10. The method of clause 9, the secure communication protocol requiring at least one of: encryption of transmitted data, read only requests from the converter unit.

Clause 11. The method of clause 9 or 10, the converter unit being configured to communicate with the monitoring unit and the main processing unit via an application programming interface whose agents are installed in the monitoring and main processing units.

Clause 12. The method of any of the preceding clauses 1 to 11, the converter unit being a system on chip (SoC) attached to a motherboard of the computer system, the main processing unit and the monitoring unit being attached to the motherboard, wherein a bus system connects the units on the motherboard.

Clause 13. The method of any of the preceding clauses 1 to 12, the monitoring unit comprising a service processor, the main processing unit comprising a base operating system (OS), the base OS being configured to acquire data descriptive of software components of the computer system, the service processor being configured to acquire data descriptive of hardware components of the computer system, wherein the monitoring data comprises the acquired data.

Clause 14. The method of any of the preceding clauses 1 to 13, the pre-processing comprising at least one of the following: filtering the received monitoring data using one or more filters; analysing the received data and providing one or more instructions based on the analysis; or formatting the filtered data according to a defined format.

Clause 15. The method of any of the preceding clauses 1 to 14, the main processing unit comprising a hypervisor supporting virtual machines.

Clause 16. The method of any of the preceding clauses 1 to 15, the remote management system being a database management system or a web server.

Clause 17. The method of any of the preceding clauses 1 to 16, further comprising: in response to sending the pre-processed data, receiving at the computer system a control signal for controlling operation of the computer system.

Clause 18. The method of any of the preceding clauses 1 to 17, wherein the receiving, the pre-processing and the sending is repeatedly performed by the converter unit.

Computing environment800contains an example of an environment for the execution of at least some of the computer code involved in performing the inventive methods, such as improved computer system monitoring code900. In addition to block900, computing environment800includes, for example, computer801, wide area network (WAN)802, end user device (EUD)803, remote server804, public cloud805, and private cloud806. In this embodiment, computer801includes processor set810(including processing circuitry820and cache821), communication fabric811, volatile memory812, persistent storage813(including operating system822and block900, as identified above), peripheral device set814(including user interface (UI), device set823, storage824, and Internet of Things (IoT) sensor set825), and network module815. Remote server804includes remote database830. Public cloud805includes gateway840, cloud orchestration module841, host physical machine set842, virtual machine set843, and container set844.

COMPUTER801may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer or any other form of computer or mobile device now known or to be developed in the future that is capable of running a program, accessing a network or querying a database, such as remote database830. As is well understood in the art of computer technology, and depending upon the technology, performance of a computer-implemented method may be distributed among multiple computers and/or between multiple locations. On the other hand, in this presentation of computing environment800, detailed discussion is focused on a single computer, specifically computer801, to keep the presentation as simple as possible. Computer801may be located in a cloud, even though it is not shown in a cloud inFIG.8. On the other hand, computer801is not required to be in a cloud except to any extent as may be affirmatively indicated.

PROCESSOR SET810includes one, or more, computer processors of any type now known or to be developed in the future. Processing circuitry820may be distributed over multiple packages, for example, multiple, coordinated integrated circuit chips. Processing circuitry820may implement multiple processor threads and/or multiple processor cores. Cache821is memory that is located in the processor chip package(s) and is typically used for data or code that should be available for rapid access by the threads or cores running on processor set810. Cache memories are typically organized into multiple levels depending upon relative proximity to the processing circuitry. Alternatively, some, or all, of the cache for the processor set may be located “off chip.” In some computing environments, processor set810may be designed for working with qubits and performing quantum computing.

VOLATILE MEMORY812is any type of volatile memory now known or to be developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, the volatile memory is characterized by random access, but this is not required unless affirmatively indicated. In computer801, the volatile memory812is located in a single package and is internal to computer801, but, alternatively or additionally, the volatile memory may be distributed over multiple packages and/or located externally with respect to computer801.

PERIPHERAL DEVICE SET814includes the set of peripheral devices of computer801. Data communication connections between the peripheral devices and the other components of computer801may be implemented in various ways, such as Bluetooth connections, Near-Field Communication (NFC) connections, connections made by cables (such as universal serial bus (USB) type cables), insertion type connections (for example, secure digital (SD) card), connections made though local area communication networks and even connections made through wide area networks such as the internet. In various embodiments, UI device set823may include components such as a display screen, speaker, microphone, wearable devices (such as goggles and smart watches), keyboard, mouse, printer, touchpad, game controllers, and haptic devices. Storage824is external storage, such as an external hard drive, or insertable storage, such as an SD card. Storage824may be persistent and/or volatile. In some embodiments, storage824may take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer801is required to have a large amount of storage (for example, where computer801locally stores and manages a large database) then this storage may be provided by peripheral storage devices designed for storing very large amounts of data, such as a storage area network (SAN) that is shared by multiple, geographically distributed computers. IoT sensor set825is made up of sensors that can be used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.

END USER DEVICE (EUD)803is any computer system that is used and controlled by an end user (for example, a customer of an enterprise that operates computer801), and may take any of the forms discussed above in connection with computer801. EUD803typically receives helpful and useful data from the operations of computer801. For example, in a hypothetical case where computer801is designed to provide a recommendation to an end user, this recommendation would typically be communicated from network module815of computer801through WAN802to EUD803. In this way, EUD803can display, or otherwise present, the recommendation to an end user. In some embodiments, EUD803may be a client device, such as thin client, heavy client, mainframe computer, desktop computer and so on.

REMOTE SERVER804is any computer system that serves at least some data and/or functionality to computer801. Remote server804may be controlled and used by the same entity that operates computer801. Remote server804represents the machine(s) that collect and store helpful and useful data for use by other computers, such as computer801. For example, in a hypothetical case where computer801is designed and programmed to provide a recommendation based on historical data, then this historical data may be provided to computer801from remote database830of remote server804.

PUBLIC CLOUD805is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and/or other computer capabilities, especially data storage (cloud storage) and computing power, without direct active management by the user. Cloud computing typically leverages sharing of resources to achieve coherence and economies of scale. The direct and active management of the computing resources of public cloud805is performed by the computer hardware and/or software of cloud orchestration module841. The computing resources provided by public cloud805are typically implemented by virtual computing environments that run on various computers making up the computers of host physical machine set842, which is the universe of physical computers in and/or available to public cloud805. The virtual computing environments (VCEs) typically take the form of virtual machines from virtual machine set843and/or containers from container set844. It is understood that these VCEs may be stored as images and may be transferred among and between the various physical machine hosts, either as images or after instantiation of the VCE. Cloud orchestration module841manages the transfer and storage of images, deploys new instantiations of VCEs and manages active instantiations of VCE deployments. Gateway840is the collection of computer software, hardware, and firmware that allows public cloud805to communicate through WAN802.

PRIVATE CLOUD806is similar to public cloud805, except that the computing resources are only available for use by a single enterprise. While private cloud806is depicted as being in communication with WAN802, in other embodiments a private cloud may be disconnected from the internet entirely and only accessible through a local/private network. A hybrid cloud is a composition of multiple clouds of different types (for example, private, community or public cloud types), often respectively implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technology that enables orchestration, management, and/or data/application portability between the multiple constituent clouds. In this embodiment, public cloud805and private cloud806are both part of a larger hybrid cloud.