Distributed code tracing system

US2020073785A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2020073785-A1
Application numberUS-201916679952-A
CountryUS
Kind codeA1
Filing dateNov 11, 2019
Priority dateNov 27, 2016
Publication dateMar 5, 2020
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Disclosed are various embodiments for a distributed code tracing system that provides code tracing as a service in a multi-tenant computing environment. In one embodiment, a code trace is received that is associated with a request submitted to a particular application hosted in a computing environment, where multiple applications are hosted in the computing environment. The code trace documents calls to multiple component services of the particular application in order to respond to the request. The code trace is then stored in a data store that is indexed by a unique identifier of the request.

First claim

Opening claim text (preview).

1 . A system, comprising: at least one computing device; and at least one application executable in the at least one computing device, wherein when executed the at least one application causes the at least one computing device to at least: receive a code trace segment associated with a request submitted to a particular application of a plurality of applications hosted in a computing environment, wherein the code trace segment documents at least one call to at least one component service of the particular application to respond to the request; select one of a plurality of trace processing entities; and forward the code trace segment to the selected one of the plurality of trace processing entities. 2 . The system of claim 1 , wherein the code trace segment is received from a service executed on a same machine instance in the computing environment as the particular application. 3 . The system of claim 1 , wherein the selected one of the plurality of trace processing entities is selected to evenly balance a processing load across the plurality of trace processing entities. 4 . The system of claim 1 , wherein the selected one of the plurality of trace processing entities is selected based at least in part on the request. 5 . The system of claim 1 , wherein the selected one of the plurality of trace processing entities is selected based at least in part by applying a hashing function to a data item included in the code trace segment. 6 . The system of claim 1 , wherein when executed the at least one application further causes the at least one computing device to at least: determine a current resource load for the plurality of trace processing entities; compare the current resource load to a threshold; and automatically scale a quantity of the plurality of trace processing entities. 7 . A method, comprising: receiving, by at least one computing device, a code trace associated with a request submitted to a particular application of a plurality of applications hosted in a computing environment, wherein the code trace documents a plurality of calls to a plurality of component services of the particular application to respond to the request; and storing, by the at least one computing device, the code trace in a data store indexed by a unique identifier of the request. 8 . The method of claim 7 , further comprising selecting, by the at least one computing device, one of a plurality of trace processing entities to process the code trace. 9 . The method of claim 8 , further comprising: monitoring, by the at least one computing device, a resource load associated with the plurality of trace processing entities; and automatically scaling, by the at least one computing device, a number of the plurality of trace processing entities based at least in part on comparing the resource load to a threshold. 10 . The method of claim 7 , further comprising performing, by the at least one computing device, a transformation on the code trace before storing the code trace. 11 . The method of claim 10 , wherein performing the transformation further comprises compressing, by the at least one computing device, the code trace. 12 . The method of claim 7 , wherein at least a portion of the code trace is received from a service executed by a machine instance in the computing environment upon which at least one of the component services executes. 13 . The method of claim 7 , further comprising: receiving, by the at least one computing device, an additional segment of the code trace corresponding to an additional call to a component service of the particular application; modifying, by the at least one computing device, the code trace to incorporate the additional segment; and storing, by the at least one computing device, the modified code trace in the data store indexed by the unique identifier of the request. 14 . The method of claim 7 , wherein the code trace includes local runtime information. 15 . The method of claim 7 , wherein at least two of the plurality of applications are operated by different customers of a plurality of customers of a hosting provider that operates the computing environment. 16 . The method of claim 15 , further comprising assessing, by the at least one computing device, a cost to an individual customer of the plurality of customers based at least in part on a volume of code traces stored within a time window. 17 . A non-transitory computer-readable medium embodying a program executable in at least one computing device, wherein when executed the program causes the at least one computing device to at least: receive a plurality of code trace segments associated with a request submitted to a particular application of a plurality of applications hosted in a computing environment, wherein the plurality of code trace segments document a plurality of calls to a plurality of component services of the particular application to respond to the request; forward the plurality of code trace segments to one of a plurality of trace processing entities; aggregate, in a volatile memory of the one of the plurality of trace processing entities, the plurality of code trace segments that are received within a first time window; and store the code trace segments in a data store indexed by a unique identifier of the request. 18 . The non-transitory computer-readable medium of claim 17 , wherein when executed the program further causes the at least one computing device to at least generate a latency histogram visually representing respective latencies for individual ones of the plurality of component services, wherein the respective latencies are computed by analyzing a plurality of code traces for a plurality of requests received by the particular application. 19 . The non-transitory computer-readable medium of claim 17 , wherein when executed the program further causes the at least one computing device to at least generate an index for the plurality of code trace segments asynchronously with respect to storing the code trace segments. 20 . The non-transitory computer-readable medium of claim 17 , wherein when executed the program further causes the at least one computing device to at least compress the plurality of code trace segments before storing the code trace segments.

Assignees

Inventors

Classifications

  • for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029) · CPC title

  • Indexing; Data structures therefor; Storage structures · CPC title

  • where the computing system is implementing multitasking (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50) · CPC title

  • by tracing the execution of the program · CPC title

  • monitoring of user actions (tracking the activity of the user H04L67/535) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2020073785A1 cover?
Disclosed are various embodiments for a distributed code tracing system that provides code tracing as a service in a multi-tenant computing environment. In one embodiment, a code trace is received that is associated with a request submitted to a particular application hosted in a computing environment, where multiple applications are hosted in the computing environment. The code trace documents…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3636. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Mar 05 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).