IP Library Granted Patent US 10,164,859
Granted Patent B2
US 10,164,859 · App. 15/249,984 · Granted Dec 25, 2018

Methods and apparatus to perform elastic monitoring of software applications using embedded watchdogs

Inventors: Christopher Patrick McNair (San Francisco, CA); Tuhin Kanti Sharma (San Mateo, CA)
Assignee: salesforce.com, inc.
H04L43/14H04L43/08H04L67/10
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 10,164,859
App. No.
15/249,984
Granted
Dec 25, 2018
Kind
B2
Abstract

A method for implementing software application monitoring techniques is provided. The method embeds, by at least one processor, a monitor in an application to create a self-monitoring application package, wherein the monitor is configured to generate metrics data associated with functional health of the application; deploys the self-monitoring application package to a remote computing system, via a communication device communicatively coupled to the at least one processor; executes the self-monitoring application package, by the remote computing system; automatically receives, via the communication device, the metrics data from the remote computing system; migrates the self-monitoring application package to a second remote computing system, wherein the monitor is configured to generate the metrics data independent of a remote computing system location of the self-monitoring application package; executes the self-monitoring application package by the second remote computing system; and automatically receives the metrics data from the second remote computing system.

Claims (76)

1. A method for implementing software application monitoring techniques, the method comprising:

embedding, by at least one processor, a monitor in an application to create a self-monitoring application package, wherein the monitor is configured to generate metrics data associated with functional health of the application;

deploying the self-monitoring application package to a remote computing system, via a communication device communicatively coupled to the at least one processor;

executing the self-monitoring application package, by the remote computing system;

automatically receiving, via the communication device, the metrics data from the remote computing system;

migrating the self-monitoring application package to a second remote computing system, wherein the monitor is configured to generate the metrics data independent of a remote computing system location of the self-monitoring application package;

executing the self-monitoring application package by the second remote computing system; and

automatically receiving, via the communication device, the metrics data from the second remote computing system.

2. The method of claim 1 , wherein the application comprises a first set of executable instructions, and wherein the monitor comprises a second set of executable instructions;

wherein executing the self-monitoring application package by the remote computing system further comprises executing in parallel the first set of executable instructions and the second set of executable instructions; and

wherein executing the self-monitoring application package by the second remote computing system further comprises executing in parallel the first set of executable instructions and the second set of executable instructions.

3. The method of claim 1 , further comprising:

establishing, by a communication device, communication connections to a plurality of secure servers and a second plurality of secure servers, wherein the remote computing system comprises the plurality of secure servers, and wherein the second remote computing system comprises a second plurality of secure servers;

transmitting, by the at least one processor, the self-monitoring application package via the communication connections; and

receiving, by the at least one processor, the metrics data via the communication connections.

4. The method of claim 1 , further comprising:

establishing, by a communication device, communication connections to a vehicle onboard computing system and a second vehicle onboard computing system, wherein the remote computing system comprises the vehicle onboard computing system, and wherein the second remote computing system comprises the second vehicle onboard computing system;

transmitting, by the at least one processor, the self-monitoring application package via the communication connections; and

receiving, by the at least one processor, the metrics data via the communication connections.

5. The method of claim 1 , further comprising:

establishing, by a communication device, communication connections to a smart home residential computing system and a second smart home residential computing system, wherein the remote computing system comprises the smart home residential computing system, and wherein the second remote computing system comprises the second smart home residential computing system;

transmitting, by the at least one processor, the self-monitoring application package via the communication connections; and

receiving, by the at least one processor, the metrics data via the communication connections.

6. The method of claim 1 , wherein the metrics data comprises a binary signal that indicates a healthy status or an unhealthy status of the application; and

wherein the functional health of the application comprises the healthy status or the unhealthy status.

7. The method of claim 6 , wherein, when the binary signal indicates an unhealthy status, the metrics data further comprises probable cause data that indicates a most likely cause of the unhealthy status.

8. A computer system for implementing software application monitoring techniques, the computer system comprising:

a system memory element;

a communication device, configured to transmit and receive data external to the computer system;

at least one processor communicatively coupled to the system memory element and the communication device, the at least one processor configured to:

embed a monitor in an application to create a self-monitoring application package, wherein the monitor is configured to generate metrics data associated with functional health of the application;

deploy, via the communication device, the self-monitoring application package to a remote computing system;

initiate execution of the self-monitoring application package, by the remote computing system;

automatically receive, via the communication device, the metrics data from the remote computing system, wherein the monitor is configured to generate the metrics data independent of a remote computing system location of the self-monitoring application package;

migrate the self-monitoring application package to a second remote computing system;

initiate execution of the self-monitoring application package, by the second remote computing system; and

automatically receive, via the communication device, the metrics data from the second remote computing system.

9. The computer system of claim 8 , wherein the application comprises a first set of executable instructions, and wherein the monitor comprises a second set of executable instructions;

wherein initiating execution of the self-monitoring application package by the remote computing system further comprises initiating parallel execution of the first set of executable instructions and the second set of executable instructions by the remote computing system; and

wherein initiating execution of the self-monitoring application package by the second remote computing system further comprises initiating parallel execution of the first set of executable instructions and the second set of executable instructions by the second remote computing system.

10. The computer system of claim 8 , wherein the communication device is further configured to establish communication connections to one or more secure servers; and

wherein the at least one processor is further configured to:

transmit the self-monitoring application package via the communication connections; and

receive the metrics data via the communication connections.

11. The computer system of claim 8 , wherein the communication device is further configured to establish a communication connection to a vehicle onboard computing system; and

wherein the at least one processor is further configured to:

transmit the self-monitoring application package via the communication connection; and

receive the metrics data via the communication connections.

12. The computer system of claim 8 , wherein the communication device is further configured to establish a communication connection to a smart home residential computing system; and

wherein the at least one processor is further configured to:

transmit the self-monitoring application package via the communication connection; and

receive the metrics data via the communication connections.

13. The computer system of claim 8 , wherein the at least one processor is further configured to receive, via the communication device, a binary signal that indicates a healthy status or an unhealthy status of the application;

wherein the metrics data comprises the binary signal; and

wherein the functional health of the application comprises the healthy status or the unhealthy status.

14. The computer system of claim 13 , wherein, when the binary signal indicates an unhealthy status, the at least one processor is further configured to receive, via the communication device, probable cause data that indicates a most likely cause of the unhealthy status; and

wherein the metrics data further comprises the probable cause data.

15. A non-transitory, computer-readable medium containing instructions thereon, which, when executed by a processor, are capable of performing a method comprising:

creating self-monitoring software application packages, each of the self-monitoring application packages comprising a software application and a health monitor application;

deploying the self-monitoring application packages to a first plurality of servers of a data storage network;

automatically receiving health data associated with the software application from the first plurality of servers, wherein the health data is generated by the health monitor application;

recognizing additional computing resources added to the data storage network, the additional computing resources comprising a second plurality of servers;

transferring the self-monitoring application packages to the second plurality of servers; and

continuously and automatically receiving the health data generated by the health monitor application from the second plurality of servers.

16. The non-transitory, computer-readable medium of claim 15 , wherein the method further comprises executing the self-monitoring application package by the first plurality of servers and executing the self-monitoring application package by the second plurality of servers;

wherein the health data is generated by the self-monitoring application package, when the self-monitoring application package is executed; and

automatically receiving the health data, after executing the self-monitoring application package.

17. The non-transitory, computer-readable medium of claim 16 , wherein the software application comprises a first set of executable instructions, and wherein the health monitor application comprises a second set of executable instructions;

wherein executing the self-monitoring application package by the first plurality of servers further comprises executing in parallel the first set of executable instructions and the second set of executable instructions; and

wherein executing the self-monitoring application package by the second remote computing system further comprises executing in parallel the first set of executable instructions and the second set of executable instructions.

18. The non-transitory, computer-readable medium of claim 15 , wherein deploying the self-monitoring application packages to a first plurality of servers of a data storage network further comprises:

establishing, by a communication device, communication connections to the first plurality of servers; and

transmitting the self-monitoring application packages via the communication connections; and

wherein automatically receiving health data associated with the software application from the first plurality of servers further comprises receiving the metrics data via the communication connections.

19. The non-transitory, computer-readable medium of claim 15 , wherein the health data comprises a binary signal that indicates a healthy status or an unhealthy status of the application.

20. The non-transitory, computer-readable medium of claim 19 , wherein, when the binary signal indicates an unhealthy status, the health data further comprises probable cause data that indicates a most likely cause of the unhealthy status.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2016
From: MCNAIR, CHRISTOPHER PATRICK; SHARMA, TUHIN KANTI
To: SALESFORCE.COM, INC.
Reel/Frame 039566/0087 →
Continuity (1)
Related Publication 20180062965A1 · Mar 1, 2018