IP Library Granted Patent US 11,675,692
Granted Patent B2
US 11,675,692 · App. 17/400,720 · Granted Jun 13, 2023

Testing agent for application dependency discovery, reporting, and management tool

Inventors: Muralidharan Balasubramanian (Gaithersburg, MD); Eric K. Barnum (Midlothian, VA); Julie Dallen (Vienna, VA); David Watson (Arlington, VA)
Assignee: Capital One Services, LLC
G06F11/3692G06F9/546G06F11/302G06F11/3495G06F11/3684G06F11/3688
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,675,692
App. No.
17/400,720
Granted
Jun 13, 2023
Kind
B2
Abstract

Techniques for monitoring operating statuses of an application and its dependencies are provided. A monitoring application may collect and report the operating status of the monitored application and each dependency. Through use of existing monitoring interfaces, the monitoring application can collect operating status without requiring modification of the underlying monitored application or dependencies. The monitoring application may determine a problem service that is a root cause of an unhealthy state of the monitored application. Dependency analyzer and discovery crawler techniques may automatically configure and update the monitoring application. Machine learning techniques may be used to determine patterns of performance based on system state information associated with performance events and provide health reports relative to a baseline status of the monitored application. Also provided are techniques for testing a response of the monitored application through modifications to API calls. Such tests may be used to train the machine learning model.

Claims (127)

1. A computer-implemented method comprising:

intercepting, by a testing agent and during a testing period associated with a first application, a first call in a computing system from the first application to a first Application Programming Interface (API);

modifying, by the testing agent, the first call by mutating at least one attribute of the first call, wherein the mutation to the at least one attribute is configured to simulate an artificial unhealthy operating status of the first API;

causing the computing system to process the modified first call and return a result to the first application based on the mutation to the at least one attribute; and

determining an impact of the modified first call on the operating status of the first application,

wherein a second call to the first API is unaffected by mutating the at least one attribute of the first call.

2. The method of claim 1 , wherein the mutation to the at least one attribute comprises a change to a function name associated with the first API.

3. The method of claim 1 , wherein the mutation to the at least one attribute comprises a change to a parameter included in the first call.

4. The method of claim 1 , wherein the mutation to the at least one attribute comprises a change to a destination, container, or scope associated with the first API.

5. The method of claim 1 , wherein determining the impact of the modified first call on the operating status of the first application comprises:

determining, by a monitoring application, the operating status of the first application using one or more monitoring interfaces; and

determining that the first application has an unhealthy operating status based on at least one metric provided by a first monitoring interface associated with the first application satisfying at least one unhealthy operating status threshold.

6. The method of claim 1 , wherein determining the impact of the modified first call on the operating status of the first application comprises:

determining that the first application was able to retrieve information associated with the first API from another source.

7. The method of claim 1 , wherein determining the impact of the modified first call on the operating status of the first application comprises:

determining that the first application was able to partially complete processing despite not receiving the information requested from the first API.

8. The method of claim 1 , further comprising:

caching, by the testing agent, the unmodified first call;

determining, by a monitoring application, whether the first application was able to recover from the modified first call returning a failed result; and

based on determining that the first application was not able to recover, causing the computing system to process the cached unmodified first call and return a result to the first application based on the at least one attribute.

9. The method of claim 1 , wherein intercepting the first call to the first API is based on determining that the first API is a dependency of the first application.

10. The method of claim 1 , wherein the testing agent is part of a monitoring application configured to monitor the first application using a plurality of monitoring interfaces,

wherein intercepting the first call to the first API is based on determining that the monitoring application is configured to monitor the first API.

11. A computer-implemented method comprising:

intercepting, by a testing agent and during a testing period associated with a first application, a first call in a computing system from the first application to a first Application Programming Interface (API);

causing the computing system to process the intercepted first call and return a modified result to the first application, wherein the modified result simulates an artificial unhealthy operating status of the first API; and

determining an impact of the modified result to the first call on the operating status of the first application,

wherein a second call to the first API is unaffected by modifying the result of the first call.

12. The method of claim 11 , wherein the modified result simulates an artificial unhealthy operating status of the first API by simulating a result with an artificially high response latency.

13. The method of claim 11 , wherein the modified result simulates an artificial unhealthy operating status of the first API by simulating a result with an artificially high error rate.

14. The method of claim 11 , wherein the modified result simulates an artificial unhealthy operating status of the first API by simulating a result with an artificially high likelihood of non-response.

15. The method of claim 11 , wherein determining the impact of the modified result on the operating status of the first application comprises:

determining, by a monitoring application, the operating status of the first application using one or more monitoring interfaces; and

determining that the first application has an unhealthy operating status based on at least one metric provided by a first monitoring interface associated with the first application satisfying at least one unhealthy operating status threshold.

16. The method of claim 11 , wherein determining the impact of the modified first call on the operating status of the first application comprises:

determining that the first application was able to retrieve information associated with the first API from another source.

17. The method of claim 11 , wherein determining the impact of the modified first call on the operating status of the first application comprises:

determining that the first application was able to partially complete processing despite not receiving the information requested from the first API.

18. The method of claim 11 , further comprising:

caching, by the testing agent, the first call;

determining, by a monitoring application, whether the first application was able to recover from the modified result to the first call; and

based on determining that the first application was not able to recover, causing the computing system to process the cached first call and return an unmodified result to the first application.

19. A non-transitory computer readable medium storing instructions that, when executed by one or more processors, cause a computing device to perform steps comprising:

intercepting, by a testing agent and during a testing period associated with a first application, a first call in a computing system from the first application to a first Application Programming Interface (API);

modifying, by the testing agent, the first call by mutating at least one attribute of the first call, wherein the mutation to the at least one attribute is configured to simulate an artificial unhealthy operating status of the first API;

causing the computing system to process the modified first call and return a result to the first application based on the mutation to the at least one attribute; and

determining an impact of the modified first call on the operating status of the first application,

wherein a second call to the first API is unaffected by mutating the at least one attribute of the first call.

20. The computer readable medium of claim 19 , wherein the mutation to the at least one attribute comprises at least one of:

a change to a function name associated with the first API;

a change to a parameter included in the first call; or

a change to a destination, container, or scope associated with the first API.

21. The computer readable medium of claim 19 , wherein determining the impact of the modified first call on the operating status of the first application comprises:

determining, by a monitoring application, the operating status of the first application using one or more monitoring interfaces; and

determining that the first application has an unhealthy operating status based on at least one metric provided by a first monitoring interface associated with the first application satisfying at least one unhealthy operating status threshold.

22. The computer readable medium of claim 19 , wherein determining the impact of the modified first call on the operating status of the first application comprises at least one of:

determining that the first application was able to retrieve information associated with the first API from another source; or

determining that the first application was able to partially complete processing despite not receiving the information requested from the first API.

23. The computer readable medium of claim 19 , wherein the instructions cause the computing device to perform further steps comprising:

caching, by the testing agent, the unmodified first call;

determining, by a monitoring application, whether the first application was able to recover from the modified first call returning a failed result; and

based on determining that the first application was not able to recover, causing the computing system to process the cached unmodified first call and return a result to the first application based on the at least one attribute.

24. The computer readable medium of claim 19 , wherein intercepting the first call to the first API is based on determining that the first API is a dependency of the first application.

25. The computer readable medium of claim 19 , wherein the testing agent is part of a monitoring application configured to monitor the first application using a plurality of monitoring interfaces,

wherein intercepting the first call to the first API is based on determining that the monitoring application is configured to monitor the first API.

26. A non-transitory computer readable medium storing instructions that, when executed by one or more processors, cause a computing device to perform steps comprising:

intercepting, by a testing agent and during a testing period associated with a first application, a first call in a computing system from the first application to a first Application Programming Interface (API);

causing the computing system to process the intercepted first call and return a modified result to the first application, wherein the modified result simulates an artificial unhealthy operating status of the first API; and

determining an impact of the modified result to the first call on the operating status of the first application,

wherein a second call to the first API is unaffected by modifying the result of the first call.

27. The computer readable medium of claim 26 , wherein the modified result simulates an artificial unhealthy operating status of the first API by simulating at least one of:

a result with an artificially high response latency;

a result with an artificially high error rate; or

a result with an artificially high likelihood of non-response.

28. The computer readable medium of claim 26 , wherein determining the impact of the modified result on the operating status of the first application comprises:

determining, by a monitoring application, the operating status of the first application using one or more monitoring interfaces; and

determining that the first application has an unhealthy operating status based on at least one metric provided by a first monitoring interface associated with the first application satisfying at least one unhealthy operating status threshold.

29. The computer readable medium of claim 26 , wherein determining the impact of the modified first call on the operating status of the first application comprises at least one of:

determining that the first application was able to retrieve information associated with the first API from another source; or

determining that the first application was able to partially complete processing despite not receiving the information requested from the first API.

30. The computer readable medium of claim 26 , wherein the instructions cause the computing device to perform further steps comprising:

caching, by the testing agent, the first call;

determining, by a monitoring application, whether the first application was able to recover from the modified result to the first call; and

based on determining that the first application was not able to recover, causing the computing system to process the cached first call and return an unmodified result to the first application.

31. A computing device, comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing device to:

intercept, by a testing agent and during a testing period associated with a first application, a first call in a computing system from the first application to a first Application Programming Interface (API);

modify, by the testing agent, the first call by mutating at least one attribute of the first call, wherein the mutation to the at least one attribute is configured to simulate an artificial unhealthy operating status of the first API;

cause the computing system to process the modified first call and return a result to the first application based on the mutation to the at least one attribute; and

determine an impact of the modified first call on the operating status of the first application,

wherein a second call to the first API is unaffected by mutating the at least one attribute of the first call.

32. The computing device of claim 31 , wherein the mutation to the at least one attribute comprises at least one of:

a change to a function name associated with the first API;

a change to a parameter included in the first call; or

a change to a destination, container, or scope associated with the first API.

33. The computing device of claim 31 , wherein the instructions cause the computing device to determine the impact of the modified first call on the operating status of the first application by causing the computing device to:

determine, by a monitoring application, the operating status of the first application using one or more monitoring interfaces; and

determine that the first application has an unhealthy operating status based on at least one metric provided by a first monitoring interface associated with the first application satisfying at least one unhealthy operating status threshold.

34. The computing device of claim 31 , wherein the instructions cause the computing device to determine the impact of the modified first call on the operating status of the first application by causing the computing device to:

determine that the first application was able to retrieve information associated with the first API from another source; or

determine that the first application was able to partially complete processing despite not receiving the information requested from the first API.

35. The computing device of claim 31 , wherein the instructions further cause the computing device to:

cache, by the testing agent, the unmodified first call;

determine, by a monitoring application, whether the first application was able to recover from the modified first call returning a failed result; and

based on determining that the first application was not able to recover, cause the computing system to process the cached unmodified first call and return a result to the first application based on the at least one attribute.

36. A computing device, comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing device to:

intercept, by a testing agent and during a testing period associated with a first application, a first call in a computing system from the first application to a first Application Programming Interface (API);

cause the computing system to process the intercepted first call and return a modified result to the first application, wherein the modified result simulates an artificial unhealthy operating status of the first API; and

determine an impact of the modified result to the first call on the operating status of the first application,

wherein a second call to the first API is unaffected by modifying the result of the first call.

37. The computing device of claim 36 , wherein the modified result simulates an artificial unhealthy operating status of the first API by simulating at least one of:

a result with an artificially high response latency;

a result with an artificially high error rate; or

a result with an artificially high likelihood of non-response.

38. The computing device of claim 36 , wherein the instructions cause the computing device to determine the impact of the modified first call on the operating status of the first application by causing the computing device to:

determine, by a monitoring application, the operating status of the first application using one or more monitoring interfaces; and

determine that the first application has an unhealthy operating status based on at least one metric provided by a first monitoring interface associated with the first application satisfying at least one unhealthy operating status threshold.

39. The computing device of claim 36 , wherein the instructions cause the computing device to determine the impact of the modified first call on the operating status of the first application by causing the computing device to:

determine that the first application was able to retrieve information associated with the first API from another source; or

determine that the first application was able to partially complete processing despite not receiving the information requested from the first API.

40. The computing device of claim 36 , wherein the instructions further cause the computing device to:

cache, by the testing agent, the first call;

determine, by a monitoring application, whether the first application was able to recover from the modified result to the first call; and

based on determining that the first application was not able to recover, cause the computing system to process the cached first call and return an unmodified result to the first application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2021
From: BALASUBRAMANIAN, MURALIDHARAN; BARNUM, ERIC K.; DALLEN, JULIE; WATSON, DAVID
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 057168/0147 →
Continuity (2)
Continuation 16454601 · Jun 27, 2019
Related Publication 20210374044A1 · Dec 2, 2021
Cited By (2)
US 12,499,241 US 12,591,506