Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menginstrumentasi kode perusahaan rintisan
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
X-Ray SDK for Java secara otomatis membuat segmen untuk permintaan masuk. Selama permintaan berada dalam cakupan, Anda dapat menggunakan klien berinstrumen dan mencatat subsegmen tanpa masalah. Namun, jika Anda mencoba menggunakan klien yang diinstrumentasi dalam kode startup, Anda akan mendapatkan SegmentNotFoundExceptionfile.
Kode startup berjalan di luar request/response aliran standar aplikasi web, jadi Anda perlu membuat segmen secara manual untuk menginstrumennya. Scorekeep menunjukkan instrumentasi kode perusahaan rintisan dalam file WebConfig
. Scorekeep memanggil basis data SQL dan Amazon SNS selama perusahaan rintisan.

Kelas WebConfig
default membuat langganan Amazon SNS untuk notifikasi. Untuk menyediakan segmen bagi SDK X-Ray untuk menulis ketika klien Amazon SNS digunakan, Scorekeep memanggil beginSegment
dan endSegment
pada catatan global.
contoh src/main/java/scorekeep/WebConfig.java
– Klien AWS yang diinstrumentasi dalam kode perusahaan rintisan
AWSXRay.beginSegment("Scorekeep-init");
if ( System.getenv("NOTIFICATION_EMAIL") != null ){
try { Sns.createSubscription(); }
catch (Exception e ) {
logger.warn("Failed to create subscription for email "+ System.getenv("NOTIFICATION_EMAIL"));
}
}
AWSXRay.endSegment();
Di RdsWebConfig
, yang Scorekeep gunakan saat basis data Amazon RDS terhubung, konfigurasi juga membuat segmen untuk klien SQL yang digunakan Hibernate saat menerapkan skema basis data selama perusahaan rintisan.
contoh src/main/java/scorekeep/RdsWebConfig.java
– Klien basis data SQL yang diinstrumentasi dalam kode perusahaan rintisan
@PostConstruct
public void schemaExport() {
EntityManagerFactoryImpl entityManagerFactoryImpl = (EntityManagerFactoryImpl) localContainerEntityManagerFactoryBean.getNativeEntityManagerFactory();
SessionFactoryImplementor sessionFactoryImplementor = entityManagerFactoryImpl.getSessionFactory();
StandardServiceRegistry standardServiceRegistry = sessionFactoryImplementor.getSessionFactoryOptions().getServiceRegistry();
MetadataSources metadataSources = new MetadataSources(new BootstrapServiceRegistryBuilder().build());
metadataSources.addAnnotatedClass(GameHistory.class);
MetadataImplementor metadataImplementor = (MetadataImplementor) metadataSources.buildMetadata(standardServiceRegistry);
SchemaExport schemaExport = new SchemaExport(standardServiceRegistry, metadataImplementor);
AWSXRay.beginSegment("Scorekeep-init");
schemaExport.create(true, true);
AWSXRay.endSegment();
}
SchemaExport
berjalan secara otomatis dan menggunakan klien SQL. Karena klien diinstrumentasi, Scorekeep harus mengganti implementasi default dan menyediakan segmen SDK untuk digunakan ketika klien dipanggil.