AWS X-Ray konsep - AWS X-Ray

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

AWS X-Ray konsep

AWS X-Ray menerima data dari layanan sebagai segmen. X-Ray kemudian mengelompokkan segmen yang memiliki permintaan umum ke penelusuran. X-Ray memproses pelacakan untuk menghasilkan Grafik layanan yang menyediakan representasi visual dari aplikasi Anda.

Segmen

Sumber daya komputasi menjalankan logika aplikasi Anda mengirim data tentang pekerjaan mereka sebagai segmen. Segmen menyediakan nama sumber daya, detail tentang permintaan dan pekerjaan yang dilakukan. Misalnya, ketika permintaan HTTP mencapai aplikasi Anda, dapat mencatat data berikut tentang:

  • Host – hostname, alias atau alamat IP

  • Permintaan – metode, alamat klien, path, agen pengguna

  • Tanggapan – status, konten

  • Pekerjaan yang dilakukan – waktu mulai dan akhir, subsegmen

  • Masalah yang terjadikesalahan, kesalahan dan pengecualian, termasuk penangkapan otomatis tumpukan pengecualian.

Segmen data untuk jejak X-Ray

X-Ray SDK mengumpulkan informasi dari header permintaan dan respons, kode dalam aplikasi Anda, dan metadata tentang AWS sumber daya yang dijalankannya. Anda memilih data yang akan dikumpulkan dengan memodifikasi konfigurasi atau kode aplikasi Anda untuk instrumen permintaan masuk, permintaan hilir, dan AWS klien SDK.

Permintaan yang Diteruskan

Jika penyeimbang beban atau perantara lainnya meneruskan permintaan ke aplikasi Anda, X-Ray akan mengambil IP klien dari header X-Forwarded-For dalam permintaan bukan dari sumber IP dalam paket IP. IP klien yang dicatat untuk permintaan diteruskan dapat ditempa, sehingga tidak dapat dipercaya.

Anda dapat menggunakan X-Ray SDK untuk mencatat informasi tambahan seperti anotasi dan metadata. Untuk detail mengenai struktur dan informasi yang dicatat dalam segmen dan subsegmen, lihat AWS X-Ray dokumen segmen. Dokumen segmen bisa berukuran hingga 64 kB.

Subsegmen

Segmen dapat memecah data tentang pekerjaan yang dilakukan menjadi subsegmen. Subsegmen memberikan informasi waktu yang lebih terperinci dan detail tentang panggilan hilir yang dibuat aplikasi Anda untuk memenuhi permintaan awal. Subsegmen dapat berisi rincian tambahan tentang panggilan ke layanan AWS, API HTTP eksternal, atau database SQL. Anda bahkan dapat menentukan subsegmen sewenang-wenang untuk instrumen fungsi tertentu atau baris kode dalam aplikasi Anda.

Subsegmen memberikan informasi terperinci

Untuk layanan yang tidak mengirim segmennya sendiri, seperti Amazon DynamoDB, X-Ray menggunakan subsegmen untuk menghasilkan segmen yang disimpulkan dan node hilir pada peta jejak. Hal ini memungkinkan Anda melihat semua dependensi hilir, meskipun tidak mendukung penelusuran, atau eksternal.

Subsegmen mewakili tampilan aplikasi Anda dari panggilan hilir sebagai klien. Jika layanan hilir juga diinstrumentasi, segmen yang mengirimkan menggantikan segmen disimpulkan yang dihasilkan dari subsegmen klien hulu. Simpul pada grafik layanan selalu menggunakan informasi dari segmen layanan, jika tersedia, ketika edge antara dua simpul menggunakan subsegmen layanan hulu ini.

Misalnya, saat Anda memanggil DynamoDB dengan klien SDK yang AWS diinstrumentasi, X-Ray SDK merekam subsegmen untuk panggilan tersebut. DynamoDB tidak mengirim segmen, sehingga segmen disimpulkan dalam penelusuran, simpul DynamoDB pada layanan grafik, dan edge antara layanan Anda dan DynamoDB semua berisi informasi dari subsegmen.

Edge antara aplikasi berinstrumen dan DynamoDB.

Ketika Anda memanggil layanan diinstrumentasi lain dengan aplikasi instrumen, layanan hilir mengirimkan segmen sendiri untuk mencatat pandangan panggilan yang sama bahwa layanan hulu dicatat dalam subsegmen. Dalam grafik layanan, simpul kedua layanan berisi informasi waktu dan kesalahan dari segmen layanan tersebut, sedangkan edge antara layanan berisi informasi dari subsegmen layanan hulu ini.

Aplikasi instrumentasi memanggil aplikasi lain yang diinstrumentasi.

Kedua sudut pandang bermanfaat, karena layanan hilir mencatat dengan tepat ketika mulai dan berakhir bekerja pada permintaan, dan layanan hulu mencatat latensi trip, termasuk waktu yang dihabiskan permintaan bepergian antara dua layanan.

Grafik layanan

X-Ray menggunakan data yang dikirimkan aplikasi Anda untuk menghasilkan Grafik layanan. Setiap AWS sumber daya yang mengirimkan data ke X-Ray muncul sebagai layanan dalam grafik. Edge menghubungkan layanan yang bekerja sama untuk melayani permintaan. Edge menghubungkan klien pada aplikasi Anda, dan aplikasi Anda untuk layanan hilir dan sumber daya yang menggunakan.

Nama Layanan

Segmen name mesti sesuai dengan nama domain atau nama logis dari layanan yang menghasilkan segmen. Walau bagaimanapun, ini tidak dipaksakan. Aplikasi apa pun yang memiliki izin untuk PutTraceSegments dapat mengirim segmen dengan nama apa pun.

Sebuah grafik layanan adalah dokumen JSON yang berisi informasi tentang layanan dan sumber daya yang membentuk aplikasi Anda. Konsol X-Ray menggunakan grafik layanan untuk menghasilkan visualisasi atau Peta layanan.

Peta jejak

Untuk aplikasi terdistribusi, X-Ray menggabungkan simpul dari semua layanan yang memproses permintaan dengan ID penelusuran yang sama ke dalam satu layanan grafik. Layanan pertama yang temuan permintaannya menambahkan Header penelusuran yang disebarkan antara front end dan layanan yang disebut.

Misalnya, Skorrekeep menjalankan API web yang memanggil microservice (sebuah fungsi AWS Lambda ) untuk menghasilkan nama acak dengan menggunakan pustaka Node.js. X-Ray SDK for Java menghasilkan ID penelusuran dan termasuk dalam panggilan ke Lambda. Lambda mengirimkan penelusuran data dan melewati penelusuran ID ke fungsi. SDK X-Ray untuk Node.js juga menggunakan ID penelusuran untuk mengirim data. Akibatnya, node untuk API, layanan Lambda, dan fungsi Lambda semuanya muncul sebagai node terpisah, tetapi terhubung, pada peta jejak.

Data grafik layanan dipertahankan selama 30 hari.

Pelacakan

ID Penelusuran menelusuri jalur permintaan melalui aplikasi Anda. Penelusuran mengumpulkan semua segmen yang dihasilkan oleh satu permintaan. Permintaan tersebut biasanya merupakan permintaan HTTP GET atau POST yang melakukan perjalanan melalui penyeimbang beban, menemui kode aplikasi Anda, dan menghasilkan panggilan hilir ke layanan AWS atau API web eksternal. Layanan pertama didukung bahwa permintaan HTTP berinteraksi dengan menambahkan penelusuran ID header untuk permintaan, dan menyebarkan hilir untuk melacak latensi, disposisi, dan data permintaan lainnya.

Gambaran linimasa dari penelusuran, yang mengumpulkan semua segmen yang dihasilkan oleh satu permintaan.

Lihat AWS X-Ray harga untuk informasi tentang bagaimana jejak X-Ray ditagih. Data jejak disimpan selama 30 hari.

Pengambilan sampel

SDK X-Ray menerapkan algoritme sampling untuk memastikan pelacakan efisien, seraya tetap memberikan sampel representatif dari permintaan yang dilayani oleh aplikasi Anda. Secara default, SDK X-Ray mencatat permintaan pertama setiap detik, dan lima persen permintaan tambahan apa pun.

Untuk menghindari timbulnya biaya layanan ketika Anda memulai, hitungan sampling default adalah konservatif. Anda dapat mengonfigurasi X-Ray untuk mengubah aturan pengambilan sampel default dan mengonfigurasi aturan tambahan yang menerapkan pengambilan sampel berdasarkan properti layanan atau permintaan.

Misalnya, Anda mungkin ingin menonaktifkan sampling dan melacak semua permintaan panggilan yang mengubah status atau menangani pengguna atau transaksi. Untuk panggilan baca-saja dengan volume tinggi, seperti polling latar belakang, pemeriksaan kondisi, atau pemeliharaan koneksi, Anda dapat mengalami kecepatan rendah dan masih mendapatkan data yang cukup untuk melihat masalah yang muncul.

Untuk informasi selengkapnya, lihat Mengonfigurasi aturan pengambilan sampel.

Header penelusuran

Semua permintaan ditelusuri, hingga minimum yang dapat dikonfigurasi. Setelah mencapai tahap minimum itu, persentase permintaan ditelusuri untuk menghindari biaya yang tidak perlu. Keputusan pengambilan sampel dan penelusuran ID ditambahkan ke permintaan HTTP pada Penelusuran header bernama X-Amzn-Trace-Id. Layanan X-Ray-terintegrasi pertama yang temuan permintaannya menambahkan header pelacakan, dibaca oleh X-Ray SDK dan termasuk dalam respon.

contoh Header pelacakan dengan akar pelacakan ID dan pengambilan sampel keputusan
X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Sampled=1
Keamanan Header Pelacakan

Header penelusuran dapat berasal dari X-Ray SDK layanan AWS, atau permintaan klien. Aplikasi Anda dapat menghapus X-Amzn-Trace-Id dari permintaan masuk untuk menghindari masalah yang disebabkan oleh pengguna penambahan ID penelusuran atau pengambilan sampel keputusan untuk permintaan mereka.

Header pelacakan juga dapat berisi ID segmen induk jika permintaan berasal dari aplikasi terinstrumen. Misalnya, jika aplikasi Anda memanggil API web HTTP hilir dengan klien HTTP yang diinstrumentasi, SDK X-Ray menambahkan ID segmen untuk permintaan asli ke header pelacakan permintaan hilir. Aplikasi instrumen yang melayani permintaan hilir dapat mencatat ID segmen induk untuk menghubungkan dua permintaan.

contoh Header pelacakan dengan akar penelusuran ID dan pengambilan sampel keputusan
X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1

Lineagedapat ditambahkan ke header jejak oleh Lambda dan layanan AWS lainnya sebagai bagian dari mekanisme pemrosesan mereka, dan tidak boleh digunakan secara langsung.

contoh Menelusuri header dengan Lineage
X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Sampled=1;Lineage=a87bd80c:1|68fd508a:5|c512fbe3:2

Ekspresi filter

Bahkan dengan sampling, aplikasi yang kompleks menghasilkan banyak data. AWS X-Ray Konsol menyediakan easy-to-navigate tampilan grafik layanan. Ini menunjukkan kondisi dan performa informasi yang membantu Anda mengidentifikasi masalah dan peluang untuk optimasi dalam aplikasi Anda. Untuk penelusuran lanjutan, Anda dapat menelusuri pelacakan permintaan individual, atau menggunakan ekspresi filter untuk menemukan pelacakan yang terkait dengan jalur atau pengguna tertentu.

Menelusuri pelacakan untuk permintaan individu

Grup

Memperluas ekspresi filter, X-Ray juga mendukung fitur grup. Menggunakan ekspresi filter, Anda dapat menentukan kriteria yang digunakan untuk menerima penelusuran ke dalam grup.

Anda dapat memanggil grup berdasarkan nama atau dengan Amazon Resource Name (ARN) untuk menghasilkan grafik layanannya sendiri, ringkasan jejak, dan metrik Amazon. CloudWatch Setelah grup dibuat, pelacakan masuk diperiksa terhadap ekspresi filter grup seperti yang disimpan dalam layanan X-Ray layanan . Metrik untuk jumlah jejak yang cocok dengan setiap kriteria dipublikasikan untuk CloudWatch setiap menit.

Memperbarui ekspresi filter grup tidak mengubah data yang sudah dicatat. Pembaruan hanya berlaku untuk pelacakan berikutnya. Hal ini dapat mengakibatkan grafik gabungan dari ekspresi baru dan lama. Untuk menghindari hal tersebut, hapus grup saat ini dan buat yang baru.

catatan

Grup ditagih berdasarkan jumlah pelacakan yang diambil dan cocok dengan ekspresi filter. Untuk informasi selengkapnya, lihat Harga AWS X-Ray.

Untuk informasi selengkapnya tentang grup, lihat Mengkonfigurasi grup.

Anotasi dan metadata

Saat Anda menginstruksikan aplikasi Anda, X-Ray SDK mencatat informasi tentang permintaan masuk dan keluar, AWS sumber daya yang digunakan, dan aplikasi itu sendiri. Anda dapat menambahkan informasi lain ke dokumen segmen sebagai anotasi dan metadata. Anotasi dan metadata dikumpulkan pada tingkat penelusuran, dan dapat ditambahkan ke setiap segmen atau subsegmen.

Anotasi adalah pasangan kunci-nilai sederhana yang diindeks untuk digunakan dengan ekspresi filter. Gunakan anotasi untuk mencatat data yang ingin Anda gunakan untuk mengelompokkan penelusuran pada konsol, atau saat memanggil API GetTraceSummaries.

Indeks X-Ray hingga 50 anotasi per penelusuran.

Metadata adalah pasangan kunci-nilai dengan nilai-nilai dari tipe apa pun, termasuk objek dan daftar, tapi itu tidak diindeks. Gunakan metadata untuk mencatat data yang ingin Anda simpan di penelusuran tetapi tidak perlu digunakan untuk mencari pelacakan.

Anda dapat melihat anotasi dan metadata di jendela detail segmen atau subsegmen, di dalam halaman Trace details di konsol. CloudWatch

Anotasi dan metadata dapat dilihat di detail segmen atau subsegmen di konsol CloudWatch

Kesalahan, cacat, dan pengecualian

X-Ray melacak kesalahan yang terjadi dalam kode aplikasi Anda, dan kesalahan yang dikembalikan oleh layanan hilir. Kesalahan dikategorikan sebagai berikut.

  • Error – Kesalahan klien (400 seri kesalahan)

  • Fault – Server kesalahan (500 seri kesalahan)

  • Throttle – Kesalahan throttling (429 Terlalu Banyak Permintaan)

Ketika pengecualian terjadi saat aplikasi Anda melayani permintaan instrumented, SDK X-Ray mencatat detail tentang pengecualian, termasuk pelacakan tumpukan, jika tersedia. Anda dapat melihat pengecualian di bawah Detail Segment di konsol X-Ray.