IP Library Granted Patent US 11,630,747
Granted Patent B1
US 11,630,747 · App. 17/561,703 · Granted Apr 18, 2023

Techniques for automated service monitoring and remediation in a distributed computing system

Inventors: Scott Alan Deboy (Portland, OR); David Fernando Saes (Austin, TX); Naveen Pilli (Milton, CA)
Assignee: Oracle International Corporation
G06F11/3006G06F9/44526G06F11/0793G06F11/3409
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,630,747
App. No.
17/561,703
Granted
Apr 18, 2023
Kind
B1
Abstract

Techniques are disclosed to provide automated remediation of services within a distributed computing system. A remediation module may be executed in the distributed computing system to monitor one or more services. Each service can have a corresponding monitor plugin that is loaded into the remediation module and configured to allow the remediation module to interface with the services. The monitor plugin may specify the dependencies of its corresponding service and remediation tasks to be performed on the service if it fails. The remediation module may generate a dependency tree for the services using the specified dependencies from each monitor plugin. The remediation module may query a service to obtain the service's health status, and then use the dependency tree to determine whether upstream services on which the unhealthy service depends are also unhealthy. If the upstream services are healthy, the remediation module may automatically perform remediation tasks on the service.

Claims (78)

1. A method implemented by a distributed computing system, the method comprising:

executing a remediation service;

executing a first monitor plugin configured to interface with the remediation service and corresponding to a first service hosted by the distributed computing system, the first monitor plugin comprising dependency information for the first service;

executing a second monitor plugin configured to interface with the remediation service and corresponding to a second service hosted by the distributed computing system;

generating, by the remediation service and based at least in part on the dependency information, a dependency tree specifying a dependency of the first service on the second service;

obtaining, by the remediation service via the first monitor plugin, a first health metric of the first service;

obtaining, by the remediation service via the second monitor plugin, a second health metric of the second service;

determining, by the remediation service and based at least in part on the dependency tree and the second health metric, whether the second service is healthy;

in accordance with a determination that the second service is healthy, determining, by the remediation service and based at least in part on the first health metric, whether the first service is unhealthy; and

in accordance with an additional determination that the first service is unhealthy, performing, by the remediation service, a remediation task for the first service.

2. The method of claim 1 , further comprising:

executing a third monitor plugin configured to interface with the remediation service, the third monitor plugin corresponding to a third service hosted by the distributed computing system, the third monitor plugin comprising additional dependency information of the third service; and

generating, by the remediation service and based at least in part on the additional dependency information, an updated dependency tree specifying the dependency of the first service on the second service and an additional dependency of the third service on the first service.

3. The method of claim 1 , further comprising:

in accordance with another determination that the second service is unhealthy, storing, by the remediation service, remediation information comprising the first health metric, the second health metric, and the dependency of the first service on the second service.

4. The method of claim 1 , wherein performing the remediation task for the first service comprises:

generating, by the remediation service, an alert comprising the first health metric; and

sending the alert to a monitoring system.

5. The method of claim 1 , wherein performing the remediation task for the first service comprises:

sending, to a monitoring system, an approval request;

receiving, from the monitoring system, an indication that the approval request was approved; and

responsive to the indication, performing the remediation task for the first service.

6. The method of claim 1 , wherein performing the remediation task for the first service comprises restarting the first service.

7. The method of claim 1 , wherein performing the remediation task for the first service comprises updating the first service according to a patch.

8. The method of claim 1 , wherein obtaining the first health metric comprises:

identifying, by the remediation service using a system inventory, one or more hosts executing the first service;

establishing, by the remediation service, a connection with the one or more hosts; and

executing, by the remediation service at the one or more hosts via the connection, a command to query the first health metric.

9. The method of claim 8 , wherein the system inventory specifies a configuration of the one or more hosts executing the first service, and further comprising:

identifying, by the remediation service according to a schedule, a change to the configuration of the one or more hosts; and

updating, by the remediation service, the system inventory.

10. The method of claim 1 , wherein the first monitor plugin includes a monitoring interval, and wherein obtaining the first health metric comprises querying the first service according to the monitoring interval.

11. A distributed computing system comprising:

one or more processors; and

one or more memories storing computer-executable instructions that, when executed with the one or more processors, cause the distributed computing system to at least:

execute a remediation service;

execute a first monitor plugin configured to interface with the remediation service and corresponding to a first service hosted by the distributed computing system, the first monitor plugin comprising dependency information for the first service;

execute a second monitor plugin configured to interface with the remediation service and corresponding to a second service hosted by the distributed computing system;

generate, by the remediation service and based at least in part on the dependency information, a dependency tree specifying a dependency of the first service on the second service;

obtain, by the remediation service via the first monitor plugin, a first health metric of the first service;

obtain, by the remediation service via the second monitor plugin, a second health metric of the second service;

determine, by the remediation service and based at least in part on the dependency tree and the second health metric, whether the second service is healthy;

in accordance with a determination that the second service is healthy, determine, by the remediation service and based at least in part on the first health metric, whether the first service is unhealthy; and

in accordance with an additional determination that the first service is unhealthy, perform, by the remediation service, a remediation task for the first service.

12. The distributed computing system of claim 11 , wherein the one or more memories store further instructions that, when executed with the one or more processors, cause the distributed computing system to further:

executing a third monitor plugin configured to interface with the remediation service, the third monitor plugin corresponding to a third service hosted by the distributed computing system, the third monitor plugin comprising additional dependency information of the third service; and

generating, by the remediation service and based at least in part on the additional dependency information, an updated dependency tree specifying the dependency of the first service on the second service and an additional dependency of the third service on the first service.

13. The distributed computing system of claim 11 , wherein the one or more memories store further instructions that, when executed with the one or more processors, cause the distributed computing system to further:

in accordance with another determination that the second service is unhealthy, storing, by the remediation service, remediation information comprising the first health metric, the second health metric, and the dependency of the first service on the second service.

14. The distributed computing system of claim 11 , wherein performing the remediation task for the first service comprises:

generating, by the remediation service, an alert comprising the first health metric; and

sending the alert to a monitoring system.

15. The distributed computing system of claim 11 , wherein performing the remediation task for the first service comprises:

sending, to a monitoring system, an approval request;

receiving, from the monitoring system, an indication that the approval request was approved; and

responsive to the indication, performing the remediation task for the first service.

16. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed with one or more processors of a distributed computing system, cause the distributed computing system to perform operations comprising:

executing a remediation service;

executing a first monitor plugin configured to interface with the remediation service and corresponding to a first service hosted by the distributed computing system, the first monitor plugin comprising dependency information for the first service;

executing a second monitor plugin configured to interface with the remediation service and corresponding to a second service hosted by the distributed computing system;

generating, by the remediation service and based at least in part on the dependency information, a dependency tree specifying a dependency of the first service on the second service;

obtaining, by the remediation service via the first monitor plugin, a first health metric of the first service;

obtaining, by the remediation service via the second monitor plugin, a second health metric of the second service;

determining, by the remediation service and based at least in part on the dependency tree and the second health metric, whether the second service is healthy;

in accordance with a determination that the second service is healthy, determining, by the remediation service and based at least in part on the first health metric, whether the first service is unhealthy; and

in accordance with an additional determination that the first service is unhealthy, performing, by the remediation service, a remediation task for the first service.

17. The non-transitory computer-readable storage medium of claim 16 storing additional instructions that, when executed with one or more processors of a distributed computing system, cause the distributed computing system to perform additional operations comprising:

executing a third monitor plugin configured to interface with the remediation service, the third monitor plugin corresponding to a third service hosted by the distributed computing system, the third monitor plugin comprising additional dependency information of the third service; and

generating, by the remediation service and based at least in part on the additional dependency information, an updated dependency tree specifying the dependency of the first service on the second service and an additional dependency of the third service on the first service.

18. The non-transitory computer-readable storage medium of claim 16 storing additional instructions that, when executed with one or more processors of a distributed computing system, cause the distributed computing system to perform additional operations comprising:

in accordance with another determination that the second service is unhealthy, storing, by the remediation service, remediation information comprising the first health metric, the second health metric, and the dependency of the first service on the second service.

19. The non-transitory computer-readable storage medium of claim 16 , wherein performing the remediation task for the first service comprises:

generating, by the remediation service, an alert comprising the first health metric; and

sending the alert to a monitoring system.

20. The non-transitory computer-readable storage medium of claim 16 , wherein performing the remediation task for the first service comprises:

sending, to a monitoring system, an approval request;

receiving, from the monitoring system, an indication that the approval request was approved; and

responsive to the indication, performing the remediation task for the first service.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: DEBOY, SCOTT ALLAN; SAES, DAVID FERNANDO; PILLI, NAVEEN
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 058490/0369 →
Cited By (11)
US 12,323,308 US 12,348,553 US 12,401,579 US 12,407,584 US 12,432,113 US 12,450,530 US 12,495,051 US 12,549,440 US 12,609,874 US 12,645,464 US 12,719,897