aws / aws/aws-xray-java-agent

FR: Support for Spring WebClient

Aperta
#87 1 commento 2 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Java
Stelle
46
Fork
20
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### FR: Support for Spring WebClient
In my sample application using Spring WebClient with X-Ray Java agent auto-instrumentation, the trace header is not injected into the http header.

This is the code block for the downstream http call using Spring webclient
```java
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
@Slf4j
public class GoodbyeController {

private final WebClient additionWebClient;

@GetMapping("/goodbye")
public ResponseEntity goodbye() throws InterruptedException {

MathResult addResult =
this.additionWebClient
.get()
.uri(
uri ->
uri.path("/add")
.queryParam("x", Long.toString(x))
.queryParam("y", Long.toString(y))
.build())
.retrieve()
.bodyToMono(MathResult.class)
.block();
}
}
```

In the downstream http request handler, I printed out the request header and found that no trace id,

`
2021-03-04 16:19:18.841 INFO [Addition App,604108865e2cf420e5d967d9c6dc0ec3,e5d967d9c6dc0ec3,true] 25 --- [nio-8080-exec-8] c.g.t.s.tracingpoc.AdditionController : Starting to add... x: [100], y: [1000]. RequestHeaders: [{accept-encoding=gzip, user-agent=ReactorNetty/0.9.8.RELEASE, host=:8080, accept=*/*}]
`

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con la chiamata a Spring WebClient mostrata nell’issue ed esamina i punti di ingresso esistenti per la strumentazione del client HTTP dell’agent; non vengono indicati né un file del repository né un test. Il lavoro è completato quando una richiesta WebClient downstream contiene l’header di traccia X-Ray e il comportamento è coperto da un test appropriato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java, spring
Ambito
api, backend
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.