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

Instrumen 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 AWS SDK, klien HTTP Apache, atau klien SQL.

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

Ada beberapa SDK, agen, 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 proyek Cloud Native Computing Foundation (CNCF). OpenTelemetry OpenTelemetry menyediakan satu set API open source, pustaka, dan agen untuk mengumpulkan jejak dan metrik terdistribusi. Toolkit ini adalah distribusi OpenTelemetry komponen hulu termasuk SDK, agen instrumentasi otomatis, dan kolektor yang diuji, dioptimalkan, diamankan, dan didukung oleh. AWS

Dengan ADOT, 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 Service. OpenSearch

Menggunakan X-Ray dengan ADOT memerlukan dua komponen: OpenTelemetry SDK diaktifkan 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 instans Amazon EC2 dan server di lokasi. CloudWatch agen versi 1.300025.0 dan yang lebih baru dapat mengumpulkan jejak dari atau SDK klien OpenTelemetryX-Ray, 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.

ADOT meliputi:

ADOT saat ini menyertakan 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.

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

catatan

Anda dapat mengirim sekarang mengirim ID jejak W3C ke 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 ID jejak yang dibuat menggunakan X-Ray SDK atau oleh AWS layanan yang terintegrasi dengan X-Ray. Untuk memastikan bahwa ID jejak 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 ID jejak W3C ditolak.

Menginstrumentasi aplikasi Anda dengan AWS X-Ray SDK

AWS X-Ray menyertakan serangkaian SDK khusus bahasa untuk menginstrumentasi aplikasi Anda untuk mengirim jejak ke X-Ray. Setiap X-Ray SDK menyediakan yang berikut:

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

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

  • Klien HTTP untuk panggilan instrumen ke layanan web HTTP internal dan eksternal lainnya

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

SDK khusus bahasa berikut disediakan:

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

Memilih antara AWS Distro for OpenTelemetry dan X-Ray SDK

SDK yang 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 X-Ray SDK untuk instrumen aplikasi Anda.

Sebaiknya pilih X-Ray SDK untuk menginstrumentasi aplikasi Anda jika Anda memerlukan 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