Tambahkan anotasi dan metadata ke segmen dengan X-Ray untuk Java SDK - AWS X-Ray

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. GetTraceSummariesAPI

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.

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
  1. 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();
  2. 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[key] dalam 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(); } }

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
  1. 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();
  2. 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
  1. Dapatkan referensi ke segmen saat ini dari AWSXRay.

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();
  2. 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.