Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tambahkan anotasi dan metadata ke segmen dengan X-Ray untuk Java SDK
Anda dapat mencatat informasi tambahan tentang permintaan, lingkungan, atau aplikasi Anda dengan anotasi dan metadata. Anda dapat menambahkan anotasi dan metadata ke segmen yang SDK dibuat X-Ray, atau ke subsegmen kustom yang Anda buat.
Anotasi adalah pasangan kunci-nilai dengan string, nomor, atau nilai-nilai Boolean. Anotasi diindekskan untuk digunakan dengan Ekspresi filter. Gunakan anotasi untuk merekam data yang ingin Anda gunakan untuk mengelompokkan jejak di konsol, atau saat memanggil. GetTraceSummaries
API
Metadata adalah pasangan kunci-nilai yang dapat memiliki nilai dari setiap tipe, termasuk objek dan daftar, tetapi tidak diindekskan untuk digunakan dengan ekspresi filter. Gunakan metadata untuk mencatat data tambahan yang ingin disimpan dalam pelacakan tetapi tidak perlu digunakan dengan pencarian.
Selain anotasi dan metadata, Anda juga dapat mencatat string ID pengguna pada segmen. Pengguna IDs direkam dalam bidang terpisah pada segmen dan diindeks untuk digunakan dengan pencarian.
Bagian-bagian
Merekam anotasi dengan X-Ray SDK untuk Java
Gunakan anotasi untuk mencatat informasi pada segmen atau subsegmen yang ingin diindeks untuk pencarian.
Persyaratan Anotasi
-
Tombol — Kunci untuk anotasi X-Ray dapat memiliki hingga 500 karakter alfanumerik. Anda tidak dapat menggunakan spasi atau simbol selain titik atau titik (.)
-
Nilai — Nilai untuk anotasi X-Ray dapat memiliki hingga 1.000 karakter Unicode.
-
Jumlah Anotasi — Anda dapat menggunakan hingga 50 anotasi per jejak.
Untuk mencatat anotasi
-
Dapatkan referensi ke segmen atau subsegmen saat ini dari
AWSXRay
.import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();
atau
import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Subsegment; ... Subsegment document = AWSXRay.getCurrentSubsegment();
-
Panggil
putAnnotation
dengan kunci String, serta nilai Boolean, Nomor, atau String.document.putAnnotation("mykey", "my value");
Contoh berikut menunjukkan cara memanggil
putAnnotation
dengan kunci String yang mencakup titik, dan nilai Boolean, Number, atau String.document.putAnnotation("testkey.test", "my value");
SDKCatatan anotasi sebagai pasangan kunci-nilai dalam annotations
objek dalam dokumen segmen. Memanggil putAnnotation
dua kali dengan tombol yang sama akan menimpa nilai yang tercatat sebelumnya pada segmen atau subsegmen yang sama.
Untuk menemukan penelusuran yang memiliki anotasi dengan nilai-nilai tertentu, gunakan kata kunci annotation[
dalam ekspresi filter.key
]
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();
}
}
Merekam metadata dengan SDK X-Ray untuk Java
Gunakan metadata untuk mencatat informasi pada segmen atau subsegmen yang tidak perlu diindeks untuk pencarian. Nilai metadata dapat berupa string, angka, Boolean, atau objek apa pun yang dapat diserialisasikan menjadi objek atau array. JSON
Untuk mencatat metadata
-
Dapatkan referensi ke segmen atau subsegmen saat ini dari
AWSXRay
.import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();
atau
import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Subsegment; ... Subsegment document = AWSXRay.getCurrentSubsegment();
-
Panggil
putMetadata
dengan namespace String, kunci String, dan nilai Boolean, Nomor, String, atau Objek.document.putMetadata("
my namespace
", "my key
", "my value
");atau
Panggil
putMetadata
hanya dengan kunci dan nilai.document.putMetadata("
my key
", "my value
");
Jika Anda tidak menentukan namespace, kegunaannya. SDK default
Memanggil putMetadata
dua kali dengan tombol yang sama akan menimpa nilai yang tercatat sebelumnya pada segmen atau subsegmen yang sama.
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();
}
}
Merekam pengguna IDs dengan X-Ray SDK untuk Java
Rekam segmen pengguna IDs berdasarkan permintaan untuk mengidentifikasi pengguna yang mengirim permintaan.
Untuk merekam pengguna IDs
-
Dapatkan referensi ke segmen saat ini dari
AWSXRay
.import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();
-
Panggil
setUser
dengan ID String pengguna yang mengirim permintaan.document.setUser("
U12345
");
Anda dapat menelepon setUser
di pengendali Anda untuk mencatat ID pengguna segera setelah aplikasi mulai memproses permintaan. Jika Anda hanya akan menggunakan segmen untuk mengatur ID pengguna, Anda dapat mengaitkan panggilan dalam satu baris.
contoh src/main/java/scorekeep/ .java MoveController — User 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);
}
Untuk menemukan pelacakan untuk ID pengguna, gunakan kata kunci user
dalam Ekspresi filter.