US9270553B1ActiveUtility

Dynamic service debugging in a virtual environment

92
Assignee: AMAZON TECH INCPriority: Mar 26, 2014Filed: Mar 26, 2014Granted: Feb 23, 2016
Est. expiryMar 26, 2034(~7.7 yrs left)· nominal 20-yr term from priority
Inventors:Chris Higgins
G06F 11/3698H04L 43/0823H04L 67/10G06F 11/3636H04L 41/5041H04W 4/60
92
PatentIndex Score
17
Cited by
11
References
19
Claims

Abstract

A service oriented architecture (SOA) provides on-demand service call debugging and call stack tracing. The service call (e.g., an API) includes a new field and optional signature value. The field is a ‘debug-requested’ field, and the optional field is a unique call-id signature. The service provider can enable debugging in accordance with the debug-requested field for this service call, and tag all debugged data with the unique call-id. If it is necessary to call other services to fulfill the request, then the service can pass the ‘debug-requested’ field and the ‘unique id’ in the call to that service. Using this mechanism, detailed debugging can be supported across an entire stack for only those requests that need it and the performance/latency impact of having debugging enabled only applies to the subset of calls which need debugging.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of dynamically controlling a debugging mode in a service provider, the method comprising:
 receiving a request for a service to be performed by the service provider; 
 detecting, within the request, a debug-requested parameter controlling a debugging mode to be used while processing the request; 
 while processing the request, passing the debugging mode between services of the service provider so as to establish a consistent debugging behavior across services; and 
 logging data by services that receive the debugging mode, the logging data being in accordance with the debugging mode. 
 
     
     
       2. The method of  claim 1 , further including dynamically generating a unique debug identifier in response to receiving the request, and passing the unique debug identifier to the services used in processing the request. 
     
     
       3. The method of  claim 1 , further including receiving, with the request, a unique debug identifier and passing the unique debug identifier to the services used in processing the request. 
     
     
       4. The method of  claim 1 , wherein passing the debugging mode between services includes passing the debug-requested parameter itself and/or a unique debug identifier. 
     
     
       5. The method of  claim 1 , wherein logging data includes storing parameters indicating how the service processed the request. 
     
     
       6. The method of  claim 1 , wherein the request is an API request from a customer of the service provider. 
     
     
       7. A computer-readable storage including instructions thereon for executing a method of dynamically controlling debugging in a service provider, the method comprising:
 receiving a request for a service to be performed by the service provider; 
 in response to the request, reading a debug-requested parameter associated with the request; and 
 in accordance with the debug-requested parameter, controlling a debugging mode used by the service provider while processing the request; 
 wherein the service provider includes a plurality of services used for processing the request, and wherein the controlling of the debugging mode includes passing a debugging mode between the plurality of services of the service provider used to process the request so as to establish a consistent debug behavior across the plurality of services. 
 
     
     
       8. The computer-readable storage of  claim 7 , wherein controlling the debugging mode includes, for each service used to process the request, logging information associated with the request in accordance with the debugging mode. 
     
     
       9. The computer-readable storage of  claim 7 , wherein controlling the debugging mode includes one of the following: turning debugging off, turning debugging on, or adjusting a level of debugging. 
     
     
       10. The computer-readable storage of  claim 7 , wherein receiving the request includes receiving an API request from a customer of the service provider or from a service within the service provider. 
     
     
       11. The computer-readable storage of  claim 7 , wherein the service provider includes a plurality of services used for processing the request, and wherein the request includes an identifier associated with the debug-requested parameter and the identifier is passed between the plurality of services. 
     
     
       12. The computer-readable storage of  claim 11 , wherein controlling the debugging mode further includes logging metadata associated with the request and logging log data associated with processing the request in a log store using an identifier, and further including retrieving the metadata and log data using the identifier as a key. 
     
     
       13. The computer-readable storage of  claim 7 , wherein reading the debug-requested parameter includes reading a field within the request itself or reading a field in a document stored by the service provider, the document associated with a customer of the request. 
     
     
       14. The computer-readable storage of  claim 7 , wherein the debugging mode includes graduated levels of debugging and controlling the debugging mode includes selecting one of the graduated levels based on the request. 
     
     
       15. The computer-readable storage of  claim 7 , wherein the service provider includes a plurality of services used for processing the request, and the plurality of services have debugging switched off prior to receiving the request, and wherein controlling the debugging mode includes dynamically switching on debugging within the plurality of services while servicing the request and then switching debugging off once the request is processed. 
     
     
       16. The computer-readable storage of  claim 7 , wherein controlling the debugging mode includes, for each service used to process the request, logging one or more of the following parameters associated with the request: CPU cycles needed to service the request, memory used to service the request, disk I/O needed to service the request, or network I/O needed to service the request. 
     
     
       17. A system for dynamically controlling a debugging mode in a compute service provider, comprising:
 a plurality of host server computers for running services in the compute service provider; 
 an endpoint server computer responsive to receiving an API request including a debug-requested parameter that controls a debug mode to be used while processing the API request, the endpoint server computer for generating an identifier to be passed to a set of the plurality of host server computers running the services used to respond to the API request, so as to establish a consistent debugging behavior across the set of the plurality of host server computers; and 
 a log database coupled to the plurality of host server computers, for storing log data in association with the identifier. 
 
     
     
       18. The system of  claim 17 , further including a logging component associated with the plurality of services for obtaining at least CPU cycles and memory usage of one of the set of host server computers and storing the CPU cycles and memory usage in the log database. 
     
     
       19. The system of  claim 17 , wherein the debug-requested parameter includes graduated levels of debugging.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.