IP Library Granted Patent US 11,323,348
Granted Patent B2
US 11,323,348 · App. 16/415,688 · Granted May 3, 2022

API dependency error and latency injection

Inventors: Jeremy White (Fort Lauderdale, FL); Shawn Edmondson (Raleigh, NC); Chiradeep Vittal (Santa Clara, CA)
Assignee: CITRIX SYSTEMS, INC.
H04L43/0823H04L43/04H04L43/0876H04L47/822
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,323,348
App. No.
16/415,688
Filed
May 17, 2019
Granted
May 3, 2022
Kind
B2
Examiner
CHACKO, JOE
Art Unit
2457
USPC
709/224
Abstract

The disclosure is directed towards systems and methods for injecting or introducing synthetic errors and latency for testing purposes into microservices provided by one or more servers. A device acting as an intermediary to communication can inject errors into responses or requests traversing the device. The errors can include additional latency, dropped packets, or memory or disk errors. Introducing errors and latency for testing purposes can be used to proactively monitor and identify issues with resources.

Claims (40)

1. A method for validating a microservice, the method comprising:

(a) identifying, by a device intermediary to a plurality of microservices, a synthetic error and a first criteria relating to a status or condition of a first microservice of the plurality of microservices, the first criteria comprising a standard operating status or condition;

(b) comparing, by the device, the status or condition of the first microservice to a threshold associated with the standard operating status or condition;

(c) responsive to a determination that the monitored status or condition is within the threshold associated with the standard operating status or condition, implementing the synthetic error by:

(d) receiving, by the device, a request from the first microservice to access a second microservice of the plurality of microservices, the request provided to the second microservice by the device,

(e) receiving, by the device, a response to the request from the second microservice, and

(f) communicating, by the device responsive to the determination, to the first microservice, the response from the second microservice while implementing the synthetic error; and

(g) validating, by the device, that the first microservice one of handled or did not handle the synthetic error.

2. The method of claim 1 , wherein the first criteria comprises one of a time period, a duration, or a frequency.

3. The method of claim 1 , wherein the first criteria comprises identification of a type of request.

4. The method of claim 3 , wherein (d) further comprises determining, by the device, that the request corresponds to the type of request of the first criteria.

5. The method of claim 1 , wherein (a) further comprises identifying, by the device, a latency time and a second criteria for implementing the latency.

6. The method of claim 5 , further comprising determining, by the device, that the second criteria has been met.

7. The method of claim 6 , further comprising:

receiving, by the device, a second request from the first microservice to access one of the plurality of microservices;

delaying, by the device, a second response to the second request in accordance with the latency time; and

validating, by the device, that the first microservice one of handled or did not handle the latency.

8. The method of claim 1 , further comprising:

identifying, by the device, one of a plurality of synthetic errors or a plurality of latency times to implement responsive to a plurality of criteria to validate one or more of the plurality of microservices; and

responding, by the device, to requests by implementing the one of the plurality of synthetic errors or one of the plurality of latency times.

9. The method of claim 1 , wherein the threshold is based on at least one of: a usage of the first microservice, a central processing unit of the first microservice, a memory load of the first microservice, a number of concurrent users, a number of concurrent connections, or an uptime duration.

10. The method of claim 1 , wherein validating, by the device, that the first microservice one of handled or did not handle the synthetic error comprises at least one of determining that the first microservice returned to the standard operating status or condition within a predetermined time or reported an error in an error log.

11. A system for implementing a synthetic error to validate a microservice, the system comprising:

a device comprising one or more processors, coupled to memory and intermediary to a plurality of microservices, the device configured to:

identify the synthetic error and a first criteria relating to a status or condition of a first microservice of the plurality of microservices for implementing the synthetic error to validate the first microservice of the plurality of microservices, the first criteria comprising a standard operating status or condition;

compare the status or condition of the first microservice to a threshold associated with the standard operating status or condition;

responsive to a determination that the monitored status or condition is within the threshold associated with the standard operating status or condition, implementing the synthetic error by:

receiving a request from the first microservice to access a second microservice of the plurality of microservices, the request provided to the second microservice by the device,

receiving a response to the request from the second microservice, and

communicating, responsive to the determination, to the first microservice, the response from the second microservice while implementing the synthetic error; and

validate that the first microservice one of handled or did not handle the synthetic error.

12. The system of claim 11 , wherein the first criteria comprises one of a time period, a duration or a frequency.

13. The system of claim 11 , wherein the first criteria comprises identification of a type of request.

14. The system of claim 13 , wherein the device is further configured to determine the request corresponds to the type of request of the first criteria.

15. The system of claim 11 , wherein the device is further configured to identify a latency time and a second criteria for implementing the latency.

16. The system of claim 15 , wherein the device is further configured to determine that the second criteria has been met.

17. The system of claim 16 , wherein the device is further configured to receive a second request from the first microservice to access one of the plurality of microservices; delay a second response to the second request in accordance with the latency time; and validate that the first microservice one of handled or did not handle the latency.

18. The system of claim 11 , wherein the device is further configured to identify, in order to validate one or more of the plurality of microservices, one of a plurality of synthetic errors or a plurality of latency times to implement responsive to a plurality of criteria; and respond to requests to implement the one of the plurality of synthetic errors or one of the plurality of latency times.

19. The system of claim 11 , wherein the threshold is based on at least one of: a usage of the first microservice, a central processing unit of the first microservice, a memory load of the first microservice, a number of concurrent users, a number of concurrent connections, or an uptime duration.

20. The system of claim 11 , wherein validating that the first microservice one of handled or did not handle the synthetic error comprises at least one of determining that the first microservice returned to the standard operating status or condition within a predetermined time or reported an error in an error log.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2019
From: WHITE, JEREMY; EDMONDSON, SHAWN; VITTAL, CHIRADEEP
To: CITRIX SYSTEMS, INC.
Reel/Frame 049848/0064 →
Continuity (1)
Related Publication 20200366587A1 · Nov 19, 2020