![]() ![]() In Pinpoint, the core of data structure consists of Spans, Traces, and TraceIds. The tag data consists of a collection of keys, which is defined as a TraceId. Pinpoint is modeled on the tracing technique of Google’s Dapper but has been modified to add application-level tag data in the call header to trace distributed transactions at a remote call. For example, it includes tag information for a message in the HTTP header at an HTTP request and traces the message using this tag.įor more information on Google’s Dapper, see “ Dapper, a Large-Scale Distributed Systems Tracing Infrastructure.” The solution is to add application-level tags that can be a link between messages when sending a message. However, a simple solution to resolve such issues has been implemented in Google’s Dapper. In addition, it was difficult to accurately trace messages. However, implementation complexity was high with low performance because it should be implemented separately for each protocol. An attempt was made to trace messages at TCP or operating system level. In other words, when X-th message is sent from Node 1, the X-th message cannot be identified among N’ messages received in Node 2. For example, we cannot recognize relationships between N messages sent from Node 1 and N’ messages received in Node 2. ![]() The problem is that there is no way to identify relationships between messages. Message relationship in a distributed system The purpose of a distributed tracing system is to identify relationships between Node 1 and Node 2 in a distributed system when a message is sent from Node 1 to Node 2 (Figure 1).įigure 1. How Distributed Transaction Tracing Works in Google’s Dapper Pinpoint traces distributed requests in a single transaction, modeled after Google’s Dapper. Distributed Transaction Tracing, Modeled after Google’s Dapper ![]() And we explain the optimization method applied to Pinpoint Agent, which modifies bytecode and record performance data. In this article, we describe the Pinpoint’s techniques such as transaction tracing and bytecode instrumentation. ![]()
0 Comments
Leave a Reply. |