# US 10,372,466 B2 · Rule-based monitoring engine with tracing capabilities for multi-threaded logging

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,466 B2
- Document ID: US10372466B2
- Status: Granted
- Kind: B2
- Application number: 15/621,901
- Filed: 2017-06-13
- Published: 2018-12-13
- Granted: 2019-08-06
- Earliest claimed: 2017-06-13
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Timothy Demulder; Ruben De Zaeytijd
- Web page: https://patentgrep.com/patent/US10372466B2

## CPC

- G06F 9/44526: {Plug-ins; Add-ons}
- G06F 9/38585: {with result invalidation, e.g. nullification}
- G06F 9/541: {via adapters, e.g. between incompatible applications}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/3089: {Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents (software debugging using additional hardware using a specific debug interface G06F11/3656; performance evaluation by tracing or monitoring G06F11/3466)}
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 21/51: at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
- G06F 2201/865: Monitoring of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method embodied in a monitoring engine configured to create plug-ins to define functionality including rule-based configuration syntax adapted to intuitively and automatically launch the plug-ins as necessary in a software-based infrastructure or environment. The monitoring engine also includes a capability for tracing multi-threaded asynchronous logging onto a single file, by assigning a unique identification to each thread or rule initiated and facilitating each log according to a specific format and to formulate a combination of all the different thread identifications into a master unique identification that is easily traceable through an entire log file.

## Claims

### Claim 1

A system comprising:
a processor; and
memory storing instructions that, when executed, cause the processor to:
execute an application program interface to operate a monitoring engine configured to monitor a particular functionality within a software-based infrastructure based on a rule-based configuration;
define, by the monitoring engine, three separate categories of plug-ins, the three separate categories of plug-ins including:
a checker plug-in configured to return a value output after a checking operation;
a validator plug-in configured to:
receive the value output;
compare the value output to a threshold standard; and
return a status of a validation operation performed by the validator plug-in; and
an action plug-in configured to perform an action responsive to the status of the validation operation indicating action is required;
selectively launch a selected checker plug-in, a selected validator plug-in, and a selected action plug-in into the software-based infrastructure to monitor the particular functionality, wherein the selected checker plug-in, the selected validator plug-in, and the selected action plug-in comprise a rule for selectively executing a selected action in the selected action plug-in; and
determine whether to execute the selected action in the selected action plug-in based on the status of the validation operation of the selected validator plug-in.

### Claim 2 (depends on 1)

The system of claim 1, wherein the monitoring engine comprises a plug-ins module configured to use the selected checker plug-in for defining multiple rules.

### Claim 3 (depends on 1)

The system of claim 1, wherein a plug-ins module comprises:
a checker module for adding the selected checker plug-in;
a validator module for adding the selected validation plug-in; and
an action module for adding the selected action plug-in.

### Claim 4 (depends on 1)

The system of claim 1, further comprising:
a first module configured to:
identify a plurality of logging threads in the rule; and
assign an identification to each of the plurality of logging threads.

### Claim 5 (depends on 4)

The system of claim 4, further comprising:
a second module configured to generate a unique-combined identification for the plurality of logging threads.

### Claim 6 (depends on 1)

The system of claim 1, wherein the monitoring engine is further configured to:
responsive to executing the selected action for the particular functionality identified in the software-based infrastructure:
determine whether the selected action was not successful; and
responsive to determining the selected action was not successful, queue the rule to run on a next iteration in the monitoring engine.

### Claim 7

A method comprising:
executing an application program interface to operate a monitoring engine configured to monitor a particular functionality within a software-based infrastructure based on a rule-based configuration;
defining three separate categories of plug-ins, including:
a checker plug-in configured to return a value output from a particular situation;
a validator plug-in configured to:
receive the value output;
compare the value output to a threshold standard; and
return a status of a validation operation performed by the validator plug-in; and
an action plug-in configured to perform an action responsive to the status of the validation operation;
generating a selected checker plug-in, a selected validator plug-in, and a selected action plug-in to formulate a rule;
launching the selected checker plug-in, the selected validator plug-in, and the selected action plug-in in sequence into the software-based infrastructure to monitor the particular functionality; and
determining whether to execute the selected action in the selected action plug-in based on the status of the validation operation of the selected validator plug-in.

### Claim 8 (depends on 7)

The method of claim 7, wherein the monitoring engine comprises a plug-ins module configured to launch the selected checker plug-in, the selected validator plug-in, and the selected action plug-in in sequence responsive to determining a need for each of the selected checker plug-in, the selected validator plug-in, and the selected action plug-in.

### Claim 9 (depends on 7)

The method of claim 7, wherein a plug-ins module comprises:
a checker module configured to generate the selected checker plug-in;
a validator module configured to generate the selected validation plug-in; and
an action module configured to generate the selected action plug-in.

### Claim 10 (depends on 7)

The method of claim 7, further comprising:
identifying a plurality of logging threads in the rule; and
assigning an identification to each of the plurality of logging threads.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
generating a unique-combined identification for the plurality of logging threads; and
assigning the unique-combined identification to the plurality of logging threads.

### Claim 12 (depends on 7)

The method of claim 7, further comprising:
determining the status of the validation operation in the selected validation plug-in; and
executing, responsive to the status of the validation operation, the selected action of the selected action plug-in in the software-based infrastructure.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
determining whether the selected action was not successful; and
queuing, responsive to determining the selected action was not successful, the rule to run on a next iteration in the monitoring engine.

### Claim 14

A system comprising:
means for executing an application program interface to operate a monitoring engine configured to monitor a particular functionality within a software-based infrastructure based on a rule-based configuration;
means for defining three separate categories of plug-ins, including:
a checker plug-in configured to return a value output;
a validator plug-in configured to:
receive the value output;
compare the value output to a threshold standard; and
return a status of a validation operation performed by the validator plug-in; and
an action plug-in configured to perform an action responsive to the status of the validation operation indicating action is required; and
means for adding a selected checker plug-in, a selected validator plug-in, and a selected action plug-in into the software-based infrastructure to monitor the particular functionality, wherein the selected checker plug-in, the selected validator plug-in, and the selected action plug-in comprise a rule for selectively executing a selected action in the selected action plug-in; and
means for determining whether to execute the selected action in the selected action plug-in based on the status of the validation operation of the selected validator plug-in.

### Claim 15 (depends on 14)

The system of claim 14, wherein the monitoring engine comprises a plug-ins module configured to deploy the selected checker plug-in, the selected validator plug-in, and the selected action plug-in in sequence.

### Claim 16 (depends on 15)

The system of claim 15, further comprising:
means for defining a first task for the selected checker plug-in;
means for defining a second task for the selected validator plug-in; and
means for defining a third task for the selected action plug-in.

### Claim 17 (depends on 15)

The system of claim 15, further comprising:
means for identifying a plurality of logging threads in the rule; and
means for assigning an identification to each of the plurality of logging threads.

### Claim 18 (depends on 17)

The system of claim 17, further comprising:
means for generating a unique-combined identification for the plurality of logging threads; and
means for assigning the unique-combined identification to the plurality of logging threads.

### Claim 19 (depends on 14)

The system of claim 14, further comprising:
means for determining the status of the validation operation in the selected validation plug-in; and
means for executing, responsive to the status of the validation operation, the selected action in the software-based infrastructure.

### Claim 20 (depends on 19)

The system of claim 19, further comprising:
means for determining if the selected action was not successful; and
means for queuing, responsive to determining the selected action was not successful, the rule on a next iteration to run in the monitoring engine.
