주석, 메타데이터 및 사용자 ID 기록 - AWS X-Ray

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

주석, 메타데이터 및 사용자 ID 기록

참고

End-of-support 알림 - 2027년 2월 25일에 AWS X-Ray는 AWS X-Ray SDKs. 2027년 2월 25일 이후에는 더 이상 업데이트 또는 릴리스를 받을 수 없습니다. 지원 타임라인에 대한 자세한 내용은 섹션을 참조하세요X-Ray SDK 및 데몬 지원 종료 타임라인. OpenTelemetry로 마이그레이션하는 것이 좋습니다. OpenTelemetry로 마이그레이션하는 방법에 대한 자세한 내용은 X-Ray 계측에서 OpenTelemetry 계측으로 마이그레이션을 참조하세요.

게임 모델 클래스에서 애플리케이션은 게임을 DynamoDB에 저장할 때마다 Game 객체를 메타데이터 블록에 기록합니다. 이와 별도로, 애플리케이션은 필터 표현식에 사용할 수 있도록 게임 ID를 주석 에 기록합니다.

src/main/java/scorekeep/GameModel.java – 주석 및 메타데이터
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(); } }

이동 컨트롤러의 경우, 애플리케이션은 사용자 IDsetUser와 함께 기록합니다. 사용자 ID는 세그먼트의 별도 필드에 기록되면 검색용으로 인덱스되지 않습니다.

src/main/java/scorekeep/MoveController.java – 사용자 ID
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); }