Initial version of transactions tracking implementation for DSM by kr-igor · Pull Request #9899 · DataDog/dd-trace-java
What Does This Do
Initial transaction tracking implementation.
- Support for extractors configuration
- Serialization for extractors
- API for transaction tracking
- Extractors for http / kafka (in/out)
- Updated / added unit tests
Motivation
Multiple customers mentioned the need to track individual message across multiple service and environments and log messages which haven't reached the end of the pre-defined pipeline.
See this document for details.
Additional Notes
Transaction tracking is currently in closed beta, so the configuration flags will be documented after public availability.
Technical details
trackTransaction method can be used to add transaction information to the DSM payload.
Transactions are accumulated in the in-mem container until they reach 512kb in size or until the DSM flush loop executes.
All http requests / kafka produce and consume operations now check for DSM extractors and apply them if any were registered. The overhead for customers without DSM / Extractors should not be noticeable, as we only execute 1 additional EnumMap lookup.