Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tracciamento delle chiamate ai servizi Web HTTP downstream con X-Ray SDK for Java
Nota
End-of-support avviso — Il 25 febbraio 2027, AWS X-Ray interromperà il supporto per e daemon. AWS X-Ray SDKs Dopo il 25 febbraio 2027, non riceverai più aggiornamenti o versioni. Per ulteriori informazioni sulla tempistica del supporto, consulta. Cronologia della fine del supporto per X-Ray SDK e daemon Ti consigliamo di migrare a. OpenTelemetry Per ulteriori informazioni sulla migrazione a OpenTelemetry, vedere Migrazione dalla strumentazione a raggi X alla strumentazione. OpenTelemetry
Quando l'applicazione effettua chiamate a microservizi o a HTTP pubblico APIs, è possibile utilizzare la versione HttpClient di X-Ray SDK per Java per strumentare tali chiamate e aggiungere l'API al service graph come servizio downstream.
L'X-Ray SDK for Java include DefaultHttpClient HttpClientBuilder classi che possono essere utilizzate al posto degli  HttpComponents equivalenti di Apache per strumentare le chiamate HTTP in uscita.
- 
      com.amazonaws.xray.proxies.apache.http.DefaultHttpClient-org.apache.http.impl.client.DefaultHttpClient
- 
      com.amazonaws.xray.proxies.apache.http.HttpClientBuilder-org.apache.http.impl.client.HttpClientBuilder
Queste librerie sono contenute nel sottomodulo aws-xray-recorder-sdk-apache-http.
È possibile sostituire le istruzioni di importazione esistenti con l'equivalente X-Ray di Instrument all client o utilizzare il nome completo quando si inizializza un client su client specifici dello strumento.
Esempio HttpClientBuilder
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import com.amazonaws.xray.proxies.apache.http.HttpClientBuilder;
...
  public String randomName() throws IOException {
    CloseableHttpClient httpclient = HttpClientBuilder.create().build();
    HttpGet httpGet = new HttpGet("http://names.example.com/api/");
    CloseableHttpResponse response = httpclient.execute(httpGet);
    try {
      HttpEntity entity = response.getEntity();
      InputStream inputStream = entity.getContent();
      ObjectMapper mapper = new ObjectMapper();
      Map<String, String> jsonMap = mapper.readValue(inputStream, Map.class);
      String name = jsonMap.get("name");
      EntityUtils.consume(entity);
      return name;
    } finally {
      response.close();
    }
  }Quando si effettua una chiamata a un'API Web downstream, l'X-Ray SDK for Java registra un sottosegmento con informazioni sulla richiesta e sulla risposta HTTP. X-Ray utilizza il sottosegmento per generare un segmento dedotto per l'API remota.
Esempio Sottosegmento per una chiamata HTTP a valle
{
  "id": "004f72be19cddc2a",
  "start_time": 1484786387.131,
  "end_time": 1484786387.501,
  "name": "names.example.com",
  "namespace": "remote",
  "http": {
    "request": {
      "method": "GET",
      "url": "https://names.example.com/"
    },
    "response": {
      "content_length": -1,
      "status": 200
    }
  }
}Esempio Segmento dedotto per una chiamata HTTP a valle
{
  "id": "168416dc2ea97781",
  "name": "names.example.com",
  "trace_id": "1-62be1272-1b71c4274f39f122afa64eab",
  "start_time": 1484786387.131,
  "end_time": 1484786387.501,
  "parent_id": "004f72be19cddc2a",
  "http": {
    "request": {
      "method": "GET",
      "url": "https://names.example.com/"
    },
    "response": {
      "content_length": -1,
      "status": 200
    }
  },
  "inferred": true
}