IP Library Granted Patent US 10,785,138
Granted Patent B2
US 10,785,138 · App. 16/190,837 · Granted Sep 22, 2020

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/025H04L67/10H04L67/1097H04L67/22H04L67/2833
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,785,138
App. No.
16/190,837
Granted
Sep 22, 2020
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 (68)

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

embedding a monitor comprising a first set of executable instructions into an application comprising a second set of executable instructions, to create a self-monitoring application package, by at least one processor, wherein the first set of executable instructions and the second set of executable instructions comprise distinct software applications configured to execute in parallel, and wherein the monitor is configured to generate metrics data associated with functional health of the application during parallel execution of the first set of executable instructions and the second set of executable instructions;

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

receiving the metrics data automatically generated during the parallel execution of the first set of executable instructions and the second set of executable instructions by the remote computing system, via the communication device;

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

receiving the metrics data automatically generated during the parallel execution of the first set of executable instructions and the second set of executable instructions by the second remote computing system, via the communication device.

2. The method of claim 1 , further comprising:

establishing communication connections to a plurality of secure servers and a second plurality of secure servers, by the communication device, 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 the self-monitoring application package via the communication connections, by the at least one processor; and

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

3. The method of claim 1 , further comprising:

establishing communication connections to a vehicle onboard computing system and a second vehicle onboard computing system, by the communication device, 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 the self-monitoring application package via the communication connections, by the at least one processor; and

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

4. The method of claim 1 , further comprising:

establishing communication connections to a smart home residential computing system and a second smart home residential computing system, by the communication device, 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 the self-monitoring application package via the communication connections, by the at least one processor; and

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

5. 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.

6. The method of claim 5 , 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.

7. The method of claim 1 , further comprising:

generating analysis and trending data associated with operation of the software application, based on the metrics data, by the at least one processor.

8. The method of claim 1 , further comprising:

providing alerts associated with operation of the software application, based on the metrics data, by the at least one processor.

9. 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 comprising a first set of executable instructions into an application comprising a second set of executable instructions, to create a self-monitoring application package, wherein the first set of executable instructions and the second set of executable instructions comprise distinct software applications configured to execute in parallel, and wherein the monitor is configured to generate metrics data associated with functional health of the application during parallel execution of the first set of executable instructions and the second set of executable instructions;

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

receive the metrics data automatically generated during the parallel execution of the first set of executable instructions and the second set of executable instructions by the remote computing system, via the communication device;

migrate 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; and

receive the metrics data automatically generated during the parallel execution of the first set of executable instructions and the second set of executable instructions by the second remote computing system, via the communication device.

10. The computer system of claim 9 , wherein the communication device is further configured to:

establish 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; 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 9 , wherein the communication device is further configured to:

establish 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; and

wherein the at least one processor is further configured to:

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

receive the metrics data via the communication connections.

12. The computer system of claim 9 , wherein the communication device is further configured to:

establish 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; 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.

13. The computer system of claim 9 , 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.

14. The computer system of claim 13 , 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.

15. The computer system of claim 9 , wherein the at least one processor is further configured to:

generate analysis and trending data associated with operation of the software application, based on the metrics data; and

provide alerts associated with operation of the software application, based on the metrics data.

16. 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, by the processor, each of the self-monitoring application packages comprising a health monitor application comprising a first set of executable instructions and a software application comprising a second set of executable instructions, wherein the first set of executable instructions and the second set of executable instructions comprise distinct software applications configured to execute in parallel;

deploying the self-monitoring application packages to a first plurality of servers of a data storage network, via a communication device communicatively coupled to the processor;

automatically receiving health data associated with the software application from the first plurality of servers, via the communication device, wherein the health data comprises metrics data generated by the health monitor application during parallel execution of the first set of executable instructions and the second set of executable instructions;

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

transferring the self-monitoring application packages to the second plurality of servers, by the processor, wherein the health monitor application is configured to generate the metrics data independent of a location of the self-monitoring application packages; and

continuously and automatically receiving the health data generated by the health monitor application during the parallel execution of the first set of executable instructions and the second set of executable instructions by the second plurality of servers, via the communication device.

17. The non-transitory, computer-readable medium of claim 16 , 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.

18. The non-transitory, computer-readable medium of claim 17 , 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.

19. The non-transitory, computer-readable medium of claim 16 , wherein the method further comprises: generating analysis and trending data associated with operation of the software application, based on the metrics data, by the processor.

20. The non-transitory, computer-readable medium of claim 16 , wherein the method further comprises:

providing alerts associated with operation of the software application, based on the metrics data, by the processor.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2018
From: MCNAIR, CHRISTOPHER PATRICK; SHARMA, TUHIN KANTI
To: SALESFORCE.COM, INC.
Reel/Frame 047502/0791 →
Continuity (2)
Continuation 15249984 · Aug 29, 2016
Related Publication 20190081880A1 · Mar 14, 2019