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.