aws / aws/aws-xray-java-agent

FR: Support for Spring WebClient

Offen
#87 1 Kommentar 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement
Vorherrschende Sprache
Java
Sterne
46
Forks
20
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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

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=<redacted>:8080, accept=*/*}]

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem im Issue gezeigten Spring WebClient-Aufruf und untersuche die vorhandenen Einstiegspunkte zur Instrumentierung des HTTP-Clients im Agenten; es wird keine Repository-Datei und kein Test genannt. Als abgeschlossen gilt, wenn eine nachgelagerte WebClient-Anfrage den X-Ray-Trace-Header enthält und das Verhalten durch einen geeigneten Test abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, spring
Bereich
api, backend
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.