Tracing

The DLC utilizes the APM (ActivePivot’s Application Performance Monitoring library) to handle tracing of events. The library relies on openzipkin/brave for the tracing. All events will be traced with a TraceId and SpanId which are unique Hex Strings such as “7a8c982a87b050f2”

TraceContext

A TraceContext will be added to HealthEvents. This TraceContext object has a TraceId and SpandId property. Below we can see an example of how the TraceContex is used and tracked through child processes.

Example:

Here we can see for a CSV Source, two child processes will be spawned to load CSV files. In Thread 1 we have the CsvSource has a TraceContext of “A1/A1”. The first value is the TraceId and the second value is the SpanId. Since this thread / process is the root, the TraceId and SpanId are the same. We can see that the child threads share the same TraceId but each child process has a unique SpanId as they are their own process.

graph TB; MainThread(Thread 1: CsvSource A1/A1) MainThread -->|Creates Sub Process 1| ChildThread1[Thread 2: Process File A1/8E] MainThread -->|Creates Sub Process 2| ChildThread2[Thread 3: Process File A1/B4]
search.js