Instrumentasi aplikasi Anda untuk AWS X-Ray - AWS X-Ray

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

Instrumentasi aplikasi Anda untuk AWS X-Ray

Instrumentasi aplikasi Anda melibatkan pengiriman data jejak untuk permintaan masuk dan keluar dan peristiwa lain dalam aplikasi Anda, bersama dengan metadata tentang setiap permintaan. Ada beberapa opsi instrumentasi berbeda yang dapat Anda pilih atau gabungkan, berdasarkan kebutuhan khusus Anda:

  • Instrumentasi otomatis — instrumen aplikasi Anda dengan nol perubahan kode, biasanya melalui perubahan konfigurasi, menambahkan agen instrumentasi otomatis, atau mekanisme lainnya.

  • Instrumentasi pustaka — buat perubahan kode aplikasi minimal untuk menambahkan instrumentasi bawaan yang menargetkan pustaka atau kerangka kerja tertentu, seperti klien Apache, atau klien AWS SDK. HTTP SQL

  • Instrumentasi manual — tambahkan kode instrumentasi ke aplikasi Anda di setiap lokasi tempat Anda ingin mengirim informasi jejak.

Ada beberapa agenSDKs, dan alat yang dapat digunakan untuk instrumen aplikasi Anda untuk penelusuran X-Ray.

Menginstrumentasi aplikasi Anda dengan AWS Distro untuk OpenTelemetry

AWS Distro for OpenTelemetry (ADOT) adalah AWS distribusi berdasarkan OpenTelemetry proyek Cloud Native Computing Foundation (CNCF). OpenTelemetry menyediakan satu set open sourceAPIs, perpustakaan, dan agen untuk mengumpulkan jejak dan metrik terdistribusi. Toolkit ini adalah distribusi OpenTelemetry komponen hulu termasukSDKs, agen instrumentasi otomatis, dan kolektor yang diuji, dioptimalkan, diamankan, dan didukung oleh. AWS

DenganADOT, para insinyur dapat menginstruksikan aplikasi mereka sekali dan mengirim metrik dan jejak yang berkorelasi ke beberapa solusi AWS pemantauan termasuk Amazon CloudWatch, AWS X-Ray, dan Amazon OpenSearch Service.

Menggunakan ADOT X-Ray dengan membutuhkan dua komponen: OpenTelemetry SDKdiaktifkan untuk digunakan dengan X-Ray, dan AWS Distro untuk OpenTelemetry Kolektor diaktifkan untuk digunakan dengan X-Ray. Untuk informasi selengkapnya tentang menggunakan AWS Distro untuk OpenTelemetry with AWS X-Ray dan lainnya Layanan AWS, lihat AWS Distro untuk OpenTelemetry Dokumentasi.

Untuk informasi selengkapnya tentang dukungan dan penggunaan bahasa, lihat AWS Observabilitas di GitHub.

catatan

Anda sekarang dapat menggunakan CloudWatch agen untuk mengumpulkan metrik, log, dan jejak dari EC2 instans Amazon dan server di lokasi. CloudWatch agen versi 1.300025.0 dan yang lebih baru dapat mengumpulkan jejak dari atau klien OpenTelemetryX-RaySDKs, dan mengirimkannya ke X-Ray. Menggunakan CloudWatch agen alih-alih AWS Distro for OpenTelemetry (ADOT) Collector atau daemon X-Ray untuk mengumpulkan jejak dapat membantu Anda mengurangi jumlah agen yang Anda kelola. Lihat topik CloudWatch agen di Panduan CloudWatch Pengguna untuk informasi selengkapnya.

ADOTtermasuk yang berikut:

ADOTsaat ini termasuk dukungan instrumentasi otomatis untuk Java dan Python. Selain itu, ADOT memungkinkan instrumentasi otomatis fungsi AWS Lambda dan permintaan hilirnya menggunakan runtime Java, Node.js, dan Python, melalui Lapisan Lambda Terkelola. ADOT

ADOTSDKsuntuk Java dan Go mendukung aturan pengambilan sampel terpusat X-Ray. Jika Anda memerlukan dukungan untuk aturan pengambilan sampel X-Ray dalam bahasa lain, pertimbangkan untuk menggunakan file AWS X-Ray SDK.

catatan

Anda dapat mengirim sekarang mengirim jejak W3C ke IDs X-Ray. Secara default, jejak yang dibuat dengan OpenTelemetry memiliki format ID jejak yang didasarkan pada spesifikasi W3C Trace Context. Ini berbeda dari format untuk jejak IDs yang dibuat menggunakan X-Ray SDK atau dengan AWS layanan yang terintegrasi dengan X-Ray. Untuk memastikan bahwa jejak IDs dalam format W3C diterima oleh X-Ray, Anda harus menggunakan AWS X-Ray Exporter versi 0.86.0 atau yang lebih baru, yang disertakan dengan ADOT Collector versi 0.34.0 dan yang lebih baru. Versi eksportir sebelumnya memvalidasi cap waktu ID jejak, yang dapat menyebabkan jejak W3C ditolak. IDs

Menginstrumentasi aplikasi Anda dengan AWS X-Ray SDKs

AWS X-Ray termasuk satu set bahasa khusus SDKs untuk instrumentasi aplikasi Anda untuk mengirim jejak ke X-Ray. Setiap SDK X-Ray menyediakan yang berikut:

  • Pencegat untuk ditambahkan ke kode Anda untuk melacak permintaan yang masuk HTTP

  • Penangan klien ke AWS SDK klien instrumen yang digunakan aplikasi Anda untuk memanggil orang lain Layanan AWS

  • HTTPKlien ke panggilan instrumen ke layanan HTTP web internal dan eksternal lainnya

X-Ray SDKs juga mendukung panggilan instrumentasi ke SQL database, instrumentasi AWS SDK klien otomatis, dan fitur lainnya. Alih-alih mengirim data jejak langsung ke X-Ray, SDK mengirimkan dokumen JSON segmen ke proses daemon mendengarkan lalu lintas. UDP X-Ray Daemon menyangga segmen dalam antrean dan mengunggah segmen tersebut ke X-Ray dalam batch.

Khusus bahasa berikut disediakanSDKs:

X-Ray saat ini menyertakan dukungan instrumentasi otomatis untuk Java.

Memilih antara AWS Distro untuk OpenTelemetry dan X-Ray SDKs

Yang SDKs disertakan dengan X-Ray adalah bagian dari solusi instrumentasi terintegrasi yang ditawarkan oleh AWS. AWS Distro for OpenTelemetry adalah bagian dari solusi industri yang lebih luas di mana X-Ray hanyalah salah satu dari banyak solusi penelusuran. Anda dapat menerapkan end-to-end penelusuran di X-Ray menggunakan salah satu pendekatan, tetapi penting untuk memahami perbedaan untuk menentukan pendekatan yang paling berguna bagi Anda.

Kami merekomendasikan instrumentasi aplikasi Anda dengan AWS Distro untuk OpenTelemetry jika Anda membutuhkan yang berikut:

  • Kemampuan untuk mengirim jejak ke beberapa ujung belakang penelusuran yang berbeda tanpa harus menginstruksikan ulang kode Anda

  • Support untuk sejumlah besar instrumentasi perpustakaan untuk setiap bahasa, dikelola oleh komunitas OpenTelemetry

  • Lapisan Lambda yang dikelola sepenuhnya yang mengemas semua yang Anda butuhkan untuk mengumpulkan data telemetri, tanpa memerlukan perubahan kode saat menggunakan Java, Python, atau Node.js

    catatan

    AWS Distro for OpenTelemetry menawarkan pengalaman memulai yang lebih sederhana untuk menginstrumentasi fungsi Lambda Anda. Namun, karena OpenTelemetry penawaran fleksibilitas, fungsi Lambda Anda akan memerlukan memori tambahan dan pemanggilan mungkin mengalami peningkatan latensi start dingin, yang dapat menyebabkan biaya tambahan. Jika Anda mengoptimalkan latensi rendah dan tidak memerlukan OpenTelemetry kemampuan lanjutan seperti tujuan back end yang dapat dikonfigurasi secara dinamis, Anda mungkin ingin menggunakan AWS SDK X-Ray untuk instrumen aplikasi Anda.

Sebaiknya pilih X-Ray SDK untuk menginstrumentasi aplikasi Anda jika Anda membutuhkan yang berikut:

  • Solusi vendor tunggal yang terintegrasi erat

  • Integrasi dengan aturan sampling terpusat X-Ray, termasuk kemampuan untuk mengonfigurasi aturan pengambilan sampel dari konsol X-Ray dan secara otomatis menggunakannya di beberapa host, saat menggunakan Node.js, Python, Ruby, atau. NET