Greetings all,
We make fairly extensive use of Hazelcast where I work, so I have built and contributed a PR for Hazelcast instrumentation to the Datadog APM:
Hazelcast Instrumentation by darylrobbins · Pull Request #2658 · DataDog/dd-trace-java (github.com)
The one thing I wasn't able to support was the propagation of context information between nodes to follow through a full requests (i.e from the message producer to consumer for a queue).
Datadog uses the Opentracing API for this, which supports injection as binary or via a map (i.e. a set of header properties). Looking at the ClientMessage, the format seems to be pretty rigid without any additional slots to inject this kind of context right now.
It would be way too invasive to try and wrap the message payload since that would break any node not running the agent. I know there is a correlationId field but Datadog needs to be able to inject their own internal ID's to trace the request.
Is there a way to do this that I'm missing or is there a possibility of an enhancement in the future to support?
Thanks very much,
Daryl