Registrando anotações, metadados e IDs de usuário - AWS X-Ray

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Registrando anotações, metadados e IDs de usuário

Na classe de modelos de jogos, o aplicação registra objetos Game em um bloco de metadados toda vez que salva um jogo no DynamoDB. Separadamente, o aplicativo registra IDs de jogos em anotações para serem usados com expressões de filtragem.

exemplo src/main/java/scorekeep/GameModel.java: anotações e metadados
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(); } }

No controlador de movimento, o aplicativo registra IDs de usuário com setUser. Os IDs de usuário são registrados em um campo separado nos segmentos e são indexados para serem usados com pesquisa.

exemplo src/main/java/scorekeep/ .java MoveController — ID do usuário
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); }