20 Sep 2019 09:24 AM - last edited on 13 Apr 2023 02:20 AM by Karolina_Linda
We have a Node JS microservice that processes any new event/message available in Kafka topic and then makes a rest call to another microservice (Java) to fetch additional details.
But we are unable to see any of these traces captured in Dynatrace. We don't have Dynatrace on Kafka Infra but we are expecting to capture the communication between NodeJs microservice to other microservice (Java technology) in our application. We want to monitor how much time it is consuming between these microservices.
Any idea how can I capture those traces?
Solved! Go to Solution.
I'm not absolutely sure here, but I think Kafka tracing is not yet publicly released and should be available as a preview at the moment.
The other method would be to adapt oneagent sdk and send the trace ids from your code - if this is acceptable for you and you can change your source code.
Yes we have included One Agent SDK in our code and implemented traceOutgoingRemoteCall() method to track the GET request made to another microservice in our application , But we see the requests captured as a "Request to unmonitored host" instead of creating a service in target microservice.
Unless you put your request id into the same header / metadata / .. as dynatrace expect (depending on the protocol), you will also have to trace the incoming call on the other side.
please also make sure that the channel and host information provided to traceOutgoingRemoteCall() match the actual target microservice. In that case you can expect to get a consistent trace across your services.
we are currently researching possibilities to support specific Kafka clients for Node.js out of the box. Which Kafka client (e.g.: kafkajs, node-kafka,..) are you using in your Node.JS microservice?