Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Registra las anotaciones, los metadatos y el usuario IDs
nota
End-of-support aviso: el 25 de febrero de 2027, AWS X-Ray dejará de ofrecer soporte para AWS X-Ray SDKs and daemon. A partir del 25 de febrero de 2027, dejaréis de recibir actualizaciones ni versiones. Para obtener más información sobre el cronograma de soporte, consulteCronología del fin del soporte de X-Ray SDK y daemon. Se recomienda migrar a OpenTelemetry. Para obtener más información sobre la migración a OpenTelemetry, consulte Migración de una instrumentación de rayos X a una instrumentación. OpenTelemetry
En la clase de modelo de juego, la aplicación registra objetos Game
en un bloque de metadatos cada vez que se guarda un juego en DynamoDB. Por separado, la aplicación graba el juego IDs en anotaciones para usarlo con las expresiones de filtro.
ejemplo src/main/java/scorekeep/GameModel.java
: anotaciones y metadatos
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();
}
}
En el controlador de movimiento, la aplicación graba al usuario IDs consetUser
. IDsLos usuarios se registran en un campo separado en los segmentos y se indexan para usarlos en la búsqueda.
ejemplo src/main/java/scorekeep/MoveController.java: ID de usuario
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);
}