Menelusuri panggilan AWS SDK dengan X-Ray SDK for Java - AWS X-Ray

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

Menelusuri panggilan AWS SDK dengan X-Ray SDK for Java

Saat aplikasi Anda melakukan panggilan Layanan AWS untuk menyimpan data, menulis ke antrian, atau mengirim notifikasi, X-Ray SDK for Java melacak panggilan hilir di subsegmen. Ditelusuri Layanan AWS dan sumber daya yang Anda akses dalam layanan tersebut (misalnya, bucket Amazon S3 atau antrean Amazon SQS), muncul sebagai node hilir pada peta jejak di konsol X-Ray.

X-Ray SDK for Java secara otomatis menginstrumentasikan semua klien AWS SDK ketika Anda menyertakan submodul aws-sdk dan suatu aws-sdk-instrumentor dalam pembangunan Anda. Jika Anda tidak menyertakan submodul Instrumentor, Anda dapat memilih untuk menginstrumentasikan beberapa klien selagi mengeliminasi yang lain.

Untuk menginstrumentasikan klien individual, hapus aws-sdk-instrumentor submodule dari build Anda dan tambahkan XRayClient as a TracingHandler pada klien AWS SDK Anda menggunakan pembuat klien layanan.

Misalnya, untuk menginstrumentasikan klien AmazonDynamoDB, teruskan penangan pelacakan ke AmazonDynamoDBClientBuilder.

contoh MyModel.java - DynamoDB klien
import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.handlers.TracingHandler; ... public class MyModel { private AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.fromName(System.getenv("AWS_REGION"))) .withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder())) .build(); ...

Untuk semua layanan, Anda dapat melihat nama API yang dipanggil di konsol X-Ray. Untuk subset layanan, X-Ray SDK menambahkan informasi ke segmen untuk memberikan lebih banyak perincian di peta layanan.

Sebagai contoh, ketika Anda melakukan panggilan dengan klien DynamoDB berinstrumen, SDK menambahkan nama tabel ke segmen untuk panggilan yang menargetkan tabel. Di konsol tersebut, setiap tabel muncul sebagai simpul terpisah di peta layanan, dengan simpul DynamoDB generik untuk panggilan yang tidak menargetkan tabel.

contoh Subsegmen untuk panggilan ke DynamoDB untuk menyimpan item
{ "id": "24756640c0d0978a", "start_time": 1.480305974194E9, "end_time": 1.4803059742E9, "name": "DynamoDB", "namespace": "aws", "http": { "response": { "content_length": 60, "status": 200 } }, "aws": { "table_name": "scorekeep-user", "operation": "UpdateItem", "request_id": "UBQNSO5AEM8T4FDA4RQDEB94OVTDRVV4K4HIRGVJF66Q9ASUAAJG", } }

Ketika Anda mengakses sumber daya bernama, panggilan ke layanan berikut membuat simpul tambahan di peta layanan. Panggilan yang tidak menargetkan sumber daya tertentu membuat simpul generik untuk layanan tersebut.

  • Amazon DynamoDB – Nama tabel

  • Amazon Simple Storage Service – Bucket dan nama kunci

  • Amazon Simple Queue Service – Nama antrean

Untuk menginstrumentasikan panggilan hilir ke Layanan AWS AWS SDK for Java 2.2 dan yang lebih baru, Anda dapat menghilangkan aws-xray-recorder-sdk-aws-sdk-v2-instrumentor modul dari konfigurasi build Anda. Sebaliknya, sertakan aws-xray-recorder-sdk-aws-sdk-v2 module, lalu instrumentasikan klien individu dengan mengonfigurasi mereka dengan TracingInterceptor.

contoh AWS SDK for Java 2.2 dan kemudian - melacak pencegat
import com.amazonaws.xray.interceptors.TracingInterceptor; import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration import software.amazon.awssdk.services.dynamodb.DynamoDbClient; //... public class MyModel { private DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_WEST_2) .overrideConfiguration(ClientOverrideConfiguration.builder() .addExecutionInterceptor(new TracingInterceptor()) .build() ) .build(); //...