# Transaction id is not propagated to a NodeJS application through org.springframework.web.reactive.function.client.WebClient call

**URL:** <https://discuss.elastic.co/t/transaction-id-is-not-propagated-to-a-nodejs-application-through-org-springframework-web-reactive-function-client-webclient-call/221004>\
**Category:** APM\
**Tags:** java\
**Created:** [February 26, 2020, 10:11am UTC](https://discuss.elastic.co/t/transaction-id-is-not-propagated-to-a-nodejs-application-through-org-springframework-web-reactive-function-client-webclient-call/221004 "2020-02-26T10:11:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kfrajtak](https://avatars.discourse-cdn.com/v4/letter/k/c0e974/32.png) [@kfrajtak](https://discuss.elastic.co/u/kfrajtak)\
**Post date:** [February 26, 2020, 10:11am UTC](https://discuss.elastic.co/t/transaction-id-is-not-propagated-to-a-nodejs-application-through-org-springframework-web-reactive-function-client-webclient-call/221004/1 "2020-02-26T10:11:25Z")

</div>

Hi,  
I have a Spring Boot application running with agent attached. I have also created some in-app spans and I can see them in Kibana.  
What I don't see in nested span for the external call to a NodeJS application

```
  import org.springframework.web.reactive.function.client.WebClient;
  String baseUrl = "http://localhost:3001";
  WebClient client = WebClient.create(baseUrl);

```

Logs in Spring Boot app are showing the transaction id: `getting info 79e6160b55bdd66c (transaction id)`. I am just explicitly reading it and dumping it to log.

Logs in the NodeJS app (with APM enabled) do not show any related HTTP header (on the 2nd line) and new transaction id:

```
  Called / with swa-app.
  {"accept-encoding":"gzip","user-agent":"ReactorNetty/0.9.4.RELEASE","host":"localhost:3001","content-type":"application/json","accept":"application/json"}
  transaction id=1e049f946ecfcbca, traceId = 9e43cbfc094199b33f0612db5a3382e3

```

My understanding is that the agent JAR is instrumenting the HTTP calls on the JVM level.  
Can anybody help?

Thanks,  
Karel

---

<div class="post-metadata">

**Author:** ![Sylvain\_Juge](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sylvain_juge/32/55521_2.png) [@Sylvain\_Juge](https://discuss.elastic.co/u/Sylvain_Juge)\
**Post date:** [February 26, 2020, 2:51pm UTC](https://discuss.elastic.co/t/transaction-id-is-not-propagated-to-a-nodejs-application-through-org-springframework-web-reactive-function-client-webclient-call/221004/2 "2020-02-26T14:51:13Z")

</div>

Hi @kfrajtak,

Do you see spans for HTTP calls made from Spring Boot application to your NodeJS application ?

From the HTTP headers I see that those are made using `ReactorNetty` HTTP client, and this one is not covered by an agent plugin (yet).

However, what you could do is to explicitly provide those headers when the HTTP request is made using API.

---

<div class="post-metadata">

**Author:** ![kfrajtak](https://avatars.discourse-cdn.com/v4/letter/k/c0e974/32.png) [@kfrajtak](https://discuss.elastic.co/u/kfrajtak)\
**Post date:** [February 26, 2020, 9:05pm UTC](https://discuss.elastic.co/t/transaction-id-is-not-propagated-to-a-nodejs-application-through-org-springframework-web-reactive-function-client-webclient-call/221004/3 "2020-02-26T21:05:04Z")

</div>

I see. I tried to emit a call with `RestTemplate` and that worked.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 18, 2020, 5:13pm UTC](https://discuss.elastic.co/t/transaction-id-is-not-propagated-to-a-nodejs-application-through-org-springframework-web-reactive-function-client-webclient-call/221004/4 "2020-03-18T17:13:28Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
