Merekam anotasi, metadata, dan pengguna IDs - AWS X-Ray

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Merekam anotasi, metadata, dan pengguna IDs

catatan

End-of-support pemberitahuan — Pada tanggal 25 Februari 2027, AWS X-Ray akan menghentikan dukungan untuk AWS X-Ray SDKs dan daemon. Setelah 25 Februari 2027, Anda tidak akan lagi menerima pembaruan atau rilis. Untuk informasi selengkapnya tentang garis waktu dukungan, lihatX-Ray SDK dan daemon akhir garis waktu dukungan. Kami merekomendasikan untuk bermigrasi ke OpenTelemetry. Untuk informasi lebih lanjut tentang migrasi ke OpenTelemetry, lihat Migrasi dari instrumentasi X-Ray ke instrumentasi. OpenTelemetry

Di kelas model game, aplikasi mencatat objek Game di blok metadata setiap kali game disimpan di DynamoDB. Secara terpisah, aplikasi merekam game IDs dalam anotasi untuk digunakan dengan ekspresi filter.

contoh src/main/java/scorekeep/GameModel.java – Anotasi dan metadata
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(); } }

Dalam pengontrol bergerak, aplikasi merekam pengguna IDs dengansetUser. Pengguna IDs direkam dalam bidang terpisah pada segmen dan diindeks untuk digunakan dengan pencarian.

contoh src/main/java/scorekeep/MoveController.java — ID Pengguna
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); }