cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

NodeJS tracing for actions initiated from incoming Kafka messages

mn473h
Newcomer

Hi,

We have a Node JS microservice that processes any new event/message available in kafka topic and then make 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 dont have Dynatrace on Kafka Infra but we are expecting to capture 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?


5 REPLIES 5

Julius_Loman
Leader

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.


TEMPEST a.s., Slovakia, Dynatrace Master Partner

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.


TEMPEST a.s., Slovakia, Dynatrace Master Partner

Hi,

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.


tom_rothschaedl
Dynatrace Helper
Dynatrace Helper

Hi,

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?