Aggiungi annotazioni e metadati ai segmenti con X-Ray for Java SDK - AWS X-Ray

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à.

Aggiungi annotazioni e metadati ai segmenti con X-Ray for Java SDK

È possibile registrare informazioni aggiuntive sulle richieste, sull'ambiente o sull'applicazione con annotazioni e metadati. È possibile aggiungere annotazioni e metadati ai segmenti creati da X-Ray o ai sottosegmenti personalizzati SDK creati dall'utente.

Le annotazioni sono coppie chiave-valore con stringhe, numeri o valori booleani. Le annotazioni sono indicizzate per essere utilizzate con le espressioni di filtro. Utilizza le annotazioni per registrare i dati che desideri utilizzare per raggruppare le tracce nella console o quando chiami il. GetTraceSummariesAPI

I metadati sono coppie chiave-valore che possono avere valori di qualsiasi tipo, inclusi oggetti ed elenchi, ma non sono indicizzati per l'uso con le espressioni di filtro. Utilizzate i metadati per registrare dati aggiuntivi che desiderate archiviare nella traccia ma che non è necessario utilizzare con la ricerca.

Oltre ad annotazioni e metadati, sui segmenti puoi anche registrare le stringhe degli ID utente. IDsGli utenti vengono registrati in un campo separato sui segmenti e indicizzati per essere utilizzati nella ricerca.

Registrazione di annotazioni con SDK X-Ray for Java

Utilizza le annotazioni per memorizzare le informazioni su segmenti o sottosegmenti che desideri siano indicizzate per la ricerca.

Requisiti per le annotazioni
  • Chiavi: la chiave per un'annotazione a raggi X può contenere fino a 500 caratteri alfanumerici. Non è possibile utilizzare spazi o simboli diversi da un punto o un punto (.)

  • Valori: il valore di un'annotazione X-Ray può contenere fino a 1.000 caratteri Unicode.

  • Il numero di annotazioni: è possibile utilizzare fino a 50 annotazioni per traccia.

Per registrare le annotazioni
  1. Ottenere un riferimento al segmento o sottosegmento corrente da AWSXRay.

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();

    oppure

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Subsegment; ... Subsegment document = AWSXRay.getCurrentSubsegment();
  2. Chiamare putAnnotation con una chiave di tipo Stringa e un valore booleano, numerico o di tipo Stringa.

    document.putAnnotation("mykey", "my value");

    L'esempio seguente mostra come effettuare una chiamata putAnnotation con una chiave String che include un punto e un valore booleano, numerico o stringa.

    document.putAnnotation("testkey.test", "my value");

SDKRegistra le annotazioni come coppie chiave-valore in un annotations oggetto nel documento del segmento. Se chiami putAnnotation due volte con la stessa chiave, il valore precedentemente memorizzato nello stesso segmento o sottosegmento viene sovrascritto.

Per trovare tracciamenti con annotazioni contenenti valori specifici, utilizza la parola chiave annotation[key] in un'espressione filtro.

Esempio src/main/java/scorekeep/GameModel.java— Annotazioni e metadati
import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; import com.amazonaws.xray.entities.Subsegment; ... public void saveGame(Game game) throws SessionNotFoundException { // wrap in subsegment Subsegment subsegment = AWSXRay.beginSubsegment("## GameModel.saveGame"); try { // check session String sessionId = game.getSession(); if (sessionModel.loadSession(sessionId) == null ) { throw new SessionNotFoundException(sessionId); } Segment segment = AWSXRay.getCurrentSegment(); subsegment.putMetadata("resources", "game", game); segment.putAnnotation("gameid", game.getId()); mapper.save(game); } catch (Exception e) { subsegment.addException(e); throw e; } finally { AWSXRay.endSubsegment(); } }

Registrazione di metadati con SDK X-Ray for Java

Utilizza i metadati per memorizzare le informazioni su segmenti o sottosegmenti che non è necessario che siano indicizzate per la ricerca. I valori dei metadati possono essere stringhe, numeri, valori booleani o qualsiasi oggetto che può essere serializzato in un oggetto o in un array. JSON

Per registrare i metadati
  1. Ottenere un riferimento al segmento o sottosegmento corrente da AWSXRay.

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();

    oppure

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Subsegment; ... Subsegment document = AWSXRay.getCurrentSubsegment();
  2. Chiamare putMetadata con un namespace di tipo stringa, una chiave di tipo Stringa e un valore booleano, numerico, di tipo Stringa o di tipo oggetto.

    document.putMetadata("my namespace", "my key", "my value");

    oppure

    Invocare putMetadata semplicemente con una chiave e un valore.

    document.putMetadata("my key", "my value");

Se non si specifica uno spazio dei nomi, utilizza. SDK default Se chiami putMetadata due volte con la stessa chiave, il valore precedentemente memorizzato nello stesso segmento o sottosegmento viene sovrascritto.

Esempio src/main/java/scorekeep/GameModel.java— Annotazioni e metadati
import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; import com.amazonaws.xray.entities.Subsegment; ... public void saveGame(Game game) throws SessionNotFoundException { // wrap in subsegment Subsegment subsegment = AWSXRay.beginSubsegment("## GameModel.saveGame"); try { // check session String sessionId = game.getSession(); if (sessionModel.loadSession(sessionId) == null ) { throw new SessionNotFoundException(sessionId); } Segment segment = AWSXRay.getCurrentSegment(); subsegment.putMetadata("resources", "game", game); segment.putAnnotation("gameid", game.getId()); mapper.save(game); } catch (Exception e) { subsegment.addException(e); throw e; } finally { AWSXRay.endSubsegment(); } }

Utente che registra IDs con X-Ray for Java SDK

Registra i segmenti dell'utente IDs su richiesta per identificare l'utente che ha inviato la richiesta.

Per registrare l'utente IDs
  1. Ottenere un riferimento al segmento corrente da AWSXRay.

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();
  2. Chiamare setUser con una stringa che rappresenta l'ID dell'utente che ha inviato la richiesta.

    document.setUser("U12345");

Puoi chiamare setUser nel tuo controller per registrare l'ID utente non appena l'applicazione inizia ad elaborare una richiesta. Se usi il segmento solo per impostare l'ID utente, puoi concatenare le chiamate in un'unica riga.

Esempio src/main/java/scorekeep/ .java MoveController — ID utente
import com.amazonaws.xray.AWSXRay; ... @RequestMapping(value="/{userId}", method=RequestMethod.POST) public Move newMove(@PathVariable String sessionId, @PathVariable String gameId, @PathVariable String userId, @RequestBody String move) throws SessionNotFoundException, GameNotFoundException, StateNotFoundException, RulesException { AWSXRay.getCurrentSegment().setUser(userId); return moveFactory.newMove(sessionId, gameId, userId, move); }

Per trovare tracciamenti associati ad un ID utente, utilizza la parola chiave user in un'espressione filtro.