AWS X-Ray dokumen segmen - 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 dokumen segmen

Segmen penelusuran adalah representasi JSON dari permintaan yang digunakan aplikasi Anda. Segmen pelacakan mencatat informasi tentang permintaan asli, informasi tentang pekerjaan yang dilakukan aplikasi Anda secara lokal, dan subsegmen dengan informasi tentang panggilan hilir yang dibuat aplikasi Anda ke AWS sumber daya, API HTTP, dan database SQL.

Sebuah dokumen segmen menyampaikan informasi tentang segmen ke X-Ray. Dokumen segmen dapat sebesar 64 kB dan berisi seluruh segmen dengan subsegment, fragmen segmen yang menunjukkan bahwa permintaan sedang berlangsung, atau subsegmen tunggal yang dikirim secara terpisah. Anda dapat mengirim dokumen segmen langsung ke X-Ray dengan menggunakan API PutTraceSegments.

X-Ray menghimpun dan memproses dokumen segmen untuk menghasilkan ringkasan penelusuran dan penelusuran penuh yang dapat Anda akses menggunakan API GetTraceSummaries dan BatchGetTraces, secara berturut-turut. Selain segmen dan subsegmen yang Anda kirim ke X-Ray, layanan ini menggunakan informasi dalam subsegmen untuk menghasilkan segmen yang disimpulkan serta menambahkan segmen tersebut ke penelusuran penuh. Segmen yang disimpulkan mewakili layanan hilir dan sumber daya di peta jejak.

X-Ray menyediakan Skema JSON untuk dokumen segmen. Anda dapat mengunduh skema di sini: xray-segmentdocument-schema-v1.0.0. Bidang dan objek yang tercantum dalam skema dijelaskan lebih detail pada bagian berikut.

Bagian dari bidang segmen diindeks oleh X-Ray untuk digunakan dengan ekspresi filter. Misalnya, jika Anda mengatur bidang user pada sebuah segmen ke pengenal unik, Anda dapat mencari segmen yang terkait dengan pengguna tertentu di konsol X-Ray atau menggunakan API GetTraceSummaries. Untuk informasi selengkapnya, lihat Menggunakan ekspresi filter.

Saat Anda melengkapi aplikasi Anda dengan SDK X-Ray, SDK akan menghasilkan dokumen segmen untuk Anda. Alih-alih mengirim dokumen segmen secara langsung ke X-Ray, SDK mentransmisikannya melalui port UDP lokal kepada Daemon X-Ray. Untuk informasi selengkapnya, lihat Mengirim dokumen segmen ke daemon X-Ray.

Bidang segmen

Segmen mencatat informasi pelacakan tentang permintaan yang digunakan aplikasi Anda. Minimal, segmen mencatat nama, ID, waktu mulai, penelusuran ID, dan waktu akhir permintaan.

contoh Segmen minimal yang lengkap
{ "name" : "example.com", "id" : "70de5b6f19ff9a0a", "start_time" : 1.478293361271E9, "trace_id" : "1-581cf771-a006649127e371903a2de979", "end_time" : 1.478293361449E9 }

Bidang berikut diperlukan, atau secara kondisional diperlukan, untuk segmen.

catatan

Nilai mesti menjadi string (hingga 250 karakter) kecuali dicatat sebaliknya.

Bidang Segment yang Diperlukan
  • name – Nama logis dari layanan yang menangani permintaan, hingga 200 karakter. Misalnya, nama aplikasi atau nama domain Anda. Nama dapat berisi huruf Unicode, angka, dan spasi, serta simbol-simbol berikut: _, ., :, /, %, &, #, =, +, \, -, @

  • id – Pengenal 64-bit untuk segmen, unik di antara segmen dalam penelusuran yang sama, dalam 16 digit heksadesimal.

  • trace_id – Pengenal unik yang menghubungkan semua segmen dan subsegmen yang berasal dari permintaan klien tunggal.

    Format ID jejak X-Ray

    trace_idX-Ray terdiri dari tiga angka yang dipisahkan oleh tanda hubung. Contohnya, 1-58406520-a006649127e371903a2de979. Hal ini mencakup:

    • Nomor versi, yaitu1.

    • Waktu permintaan asli dalam waktu epoch Unix menggunakan 8 digit heksadesimal.

      Misalnya, 10:00 AM 1 Desember 2016 PST dalam waktu epoch adalah 1480615200 detik atau 58406520 dalam digit heksadesimal.

    • Pengidentifikasi 96-bit yang unik secara global untuk jejak dalam 24 digit heksadesimal.

    catatan

    X-Ray sekarang mendukung ID jejak yang dibuat menggunakan OpenTelemetry dan kerangka kerja lain yang sesuai dengan spesifikasi W3C Trace Context. ID jejak W3C harus diformat dalam format X-Ray Trace ID saat mengirim ke X-Ray. Misalnya, ID jejak W3C 4efaaf4d1e8720b39541901950019ee5 harus diformat seperti 1-4efaaf4d-1e8720b39541901950019ee5 saat mengirim ke X-Ray. ID jejak X-Ray menyertakan cap waktu permintaan asli dalam waktu epoch Unix, tetapi ini tidak diperlukan saat mengirim ID jejak W3C dalam format X-Ray.

    Keamanan ID Penelusuran

    ID penelusuran terlihat di header respons. Menghasilkan penelusuran ID dengan algoritme acak yang aman untuk memastikan bahwa penyerang tidak dapat mengalkulasi pelacakan ID dimasa mendatang dan mengirim permintaan dengan ID tersebut pada aplikasi Anda.

  • start_timebilangan yang merupakan waktu ketika segmen dibuat, di detik titik mengambang dalam jangka waktu zaman. Misalnya, 1480615200.010 atau 1.480615200010E9. Gunakan tempat desimal sebanyak yang Anda butuhkan. Resolusi microsecond dianjurkan bila tersedia.

  • end_timeangka yang merupakan waktu segmen ditutup. Contohnya, 1480615200.090 atau 1.480615200090E9. Tentukan salah satu dari end_time atau in_progress.

  • in_progressboolean, atur ke true alih-alih menentukan sebuah end_time untuk mencatat bahwa segmen dimulai, tetapi tidak lengkap. Kirim segmen yang sedang berlangsung saat aplikasi Anda menerima permintaan yang akan memakan waktu lama untuk melayani, untuk melacak tanda terima permintaan. Ketika respons dikirim, mengirim segmen lengkap untuk menimpa segmen sedang berlangsung. Hanya mengirim satu segmen lengkap, dan satu atau nol segmen dalam proses, per permintaan.

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.

Bidang berikut opsional untuk segmen.

Bidang Segmen Opsional
  • service – Objek dengan informasi tentang aplikasi Anda.

    • version – String yang mengidentifikasi versi aplikasi Anda yang melayani permintaan.

  • user – Sebuah string yang mengidentifikasi pengguna yang mengirim permintaan.

  • origin— Jenis AWS sumber daya yang menjalankan aplikasi Anda.

    Nilai yang Didukung
    • AWS::EC2::Instance – Luncurkan Instans Amazon EC2

    • AWS::ECS::Container – Kontainer Amazon ECS.

    • AWS::ElasticBeanstalk::Environment – Lingkungan Elastic Beanstalk

    Ketika beberapa nilai yang berlaku untuk aplikasi Anda, gunakan salah satu yang paling spesifik. Misalnya, lingkungan Multicontainer Docker Elastic Beanstalk menjalankan aplikasi Anda pada kontainer Amazon ECS, yang pada gilirannya berjalan pada instans Amazon EC2. Dalam hal ini Anda akan mengatur asal untuk AWS::ElasticBeanstalk::Environment karena lingkungan adalah induk dari dua sumber daya lainnya.

  • parent_id – ID subsegmen yang Anda tentukan jika permintaan berasal dari aplikasi yang diinstrumentasi. X-Ray SDK menambahkan ID subsegmen induk ke Header pelacakan untuk panggilan HTTP hilir. Dalam kasus subsegment yang di-nest, subsegmen dapat memiliki segmen atau subsegmen sebagai induknya.

  • http – objek http dengan informasi tentang permintaan HTTP asli.

  • awsawsobjek dengan informasi tentang AWS sumber daya tempat aplikasi Anda melayani permintaan.

  • error, throttle, fault, dan cause – bidang kesalahan yang menunjukkan kesalahan terjadi dan yang mencakup informasi tentang pengecualian yang menyebabkan kesalahan.

  • annotations – Objek annotations dengan pasangan nilai kunci yang ingin Anda X-Ray untuk indeks pencarian.

  • metadata – Objek metadata dengan data tambahan yang ingin Anda simpan di segmen.

  • subsegmentssusunan objek subsegment.

Subsegmen

Anda dapat membuat subsegmen untuk merekam panggilan layanan AWS dan sumber daya yang Anda buat dengan AWS SDK, panggilan ke API web HTTP internal atau eksternal, atau kueri database SQL. Anda juga dapat membuat subsegment untuk debug atau anotasi blok kode dalam aplikasi Anda. Subsegmen dapat berisi subsegmen lain, sehingga subsegmen kustom yang mencatat metadata tentang panggilan fungsi internal dapat berisi subsegmen dan subsegmen kustom lainnya untuk panggilan hilir.

Sebuah subsegmen mencatat panggilan hilir dari sudut pandang layanan yang menyebutnya. X-Ray menggunakan subsegmen untuk mengidentifikasi layanan hilir yang tidak mengirim segmen dan membuat entri untuk mereka di grafik layanan.

Sebuah subsegmen dapat tertanam dalam dokumen segmen penuh atau dikirim secara independen. Kirim subsegment secara terpisah untuk asynchronously melacak panggilan hilir untuk permintaan berjalan lama, atau untuk menghindari melampaui ukuran dokumen segmen maksimum.

contoh Segmen dengan subsegmen tertanam

Subsegmen independen memiliki type dari subsegment dan parent_id yang mengidentifikasi segmen induk.

{ "trace_id" : "1-5759e988-bd862e3fe1be46a994272793", "id" : "defdfd9912dc5a56", "start_time" : 1461096053.37518, "end_time" : 1461096053.4042, "name" : "www.example.com", "http" : { "request" : { "url" : "https://www.example.com/health", "method" : "GET", "user_agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7", "client_ip" : "11.0.3.111" }, "response" : { "status" : 200, "content_length" : 86 } }, "subsegments" : [ { "id" : "53995c3f42cd8ad8", "name" : "api.example.com", "start_time" : 1461096053.37769, "end_time" : 1461096053.40379, "namespace" : "remote", "http" : { "request" : { "url" : "https://api.example.com/health", "method" : "POST", "traced" : true }, "response" : { "status" : 200, "content_length" : 861 } } } ] }

Untuk permintaan yang berjalan lama, Anda dapat mengirim segmen yang sedang berlangsung untuk memberi tahu X-Ray bahwa permintaan telah diterima, lalu mengirim subsegmen secara terpisah untuk melacaknya sebelum menyelesaikan permintaan awal.

contoh Segmen yang sedang berlangsung
{ "name" : "example.com", "id" : "70de5b6f19ff9a0b", "start_time" : 1.478293361271E9, "trace_id" : "1-581cf771-a006649127e371903a2de979", "in_progress": true }
contoh Subsegmen independen

Subsegmen independen memiliki type dari subsegment, trace_id, dan parent_id yang mengidentifikasi segmen induk.

{ "name" : "api.example.com", "id" : "53995c3f42cd8ad8", "start_time" : 1.478293361271E9, "end_time" : 1.478293361449E9, "type" : "subsegment", "trace_id" : "1-581cf771-a006649127e371903a2de979" "parent_id" : "defdfd9912dc5a56", "namespace" : "remote", "http" : { "request" : { "url" : "https://api.example.com/health", "method" : "POST", "traced" : true }, "response" : { "status" : 200, "content_length" : 861 } } }

Ketika permintaan selesai, tutup segmen dengan mengirim ulangnya bersama end_time. Segmen lengkap menimpa segmen yang sedang berlangsung.

Anda juga dapat mengirim subsegment secara terpisah untuk permintaan selesai yang memicu alur kerja asinkron. Misalnya, web API dapat mengembalikan respons OK 200 segera sebelum memulai pekerjaan yang diminta pengguna. Anda dapat mengirim segmen lengkap ke X-Ray segera setelah respons dikirim, diikuti oleh subsegmen untuk pekerjaan yang diselesaikan nanti. Seperti segmen, Anda juga dapat mengirim fragmen subsegmen untuk mencatat bahwa subsegmen telah dimulai, dan kemudian menimpa dengan subsegmen penuh setelah panggilan hilir selesai.

Bidang berikut diperlukan, atau kondisional diperlukan, untuk subsegment.

catatan

Nilai adalah string hingga 250 karakter kecuali dicatat sebaliknya.

Bidang Subsegmen yang Wajib
  • id – Pengenal 64-bit untuk subsegmen, unik di antara segmen di penelusuran yang sama, dalam 16 digit heksadesimal.

  • name – Nama logis dari subsegmen. Untuk panggilan hilir, nama subsegmen setelah sumber daya atau layanan yang disebut. Untuk subsegment kustom, nama subsegmen setelah kode yang instrumen (misalnya, nama fungsi).

  • start_timeangka yang merupakan waktu subsegment dibuat, di floating point detik dalam waktu zaman, akurat untuk milidetik. Misalnya, 1480615200.010 atau 1.480615200010E9.

  • end_timeangka yang merupakan waktu segmen ditutup. Misalnya, 1480615200.090 atau 1.480615200090E9. Tentukan sebuah end_time atau in_progress.

  • in_progressboolean yang diatur ke true alih-alih menentukan sebuah end_time untuk mencatat bahwa segmen dimulai, tetapi tidak lengkap. Hanya kirim satu subsegmen lengkap, dan satu atau nol subsegmen dalam proses, per permintaan hilir.

  • trace_id – Penelusuran ID dari segmen induk subsegmen ini. Diperlukan hanya jika mengirim subsegmen secara terpisah.

    Format ID jejak X-Ray

    trace_idX-Ray terdiri dari tiga angka yang dipisahkan oleh tanda hubung. Contohnya, 1-58406520-a006649127e371903a2de979. Hal ini mencakup:

    • Nomor versi, yaitu1.

    • Waktu permintaan asli dalam waktu epoch Unix menggunakan 8 digit heksadesimal.

      Misalnya, 10:00 AM 1 Desember 2016 PST dalam waktu epoch adalah 1480615200 detik atau 58406520 dalam digit heksadesimal.

    • Pengidentifikasi 96-bit yang unik secara global untuk jejak dalam 24 digit heksadesimal.

    catatan

    X-Ray sekarang mendukung ID jejak yang dibuat menggunakan OpenTelemetry dan kerangka kerja lain yang sesuai dengan spesifikasi W3C Trace Context. ID jejak W3C harus diformat dalam format X-Ray Trace ID saat mengirim ke X-Ray. Misalnya, ID jejak W3C 4efaaf4d1e8720b39541901950019ee5 harus diformat seperti 1-4efaaf4d-1e8720b39541901950019ee5 saat mengirim ke X-Ray. ID jejak X-Ray menyertakan cap waktu permintaan asli dalam waktu epoch Unix, tetapi ini tidak diperlukan saat mengirim ID jejak W3C dalam format X-Ray.

  • parent_id – Segmen ID dari segmen induk subsegmen ini. Diperlukan hanya jika mengirim subsegmen secara terpisah. Dalam kasus subsegment yang di-nest, subsegmen dapat memiliki segmen atau subsegmen sebagai induknya.

  • typesubsegment. Diperlukan hanya jika mengirim subsegmen secara terpisah.

Bidang berikut adalah opsional untuk subsegment.

Kolom Subsegmen opsional
  • namespaceaws untuk panggilan AWS SDK; remote untuk panggilan hilir lainnya.

  • http – objek http dengan informasi tentang panggilan HTTP keluar.

  • awsawsobjek dengan informasi tentang AWS sumber daya hilir yang disebut aplikasi Anda.

  • error, throttle, fault, dan cause – bidang kesalahan yang menunjukkan kesalahan terjadi dan yang mencakup informasi tentang pengecualian yang menyebabkan kesalahan.

  • annotations – Objek annotations dengan pasangan nilai kunci yang ingin Anda X-Ray untuk indeks pencarian.

  • metadata – Objek metadata dengan data tambahan yang ingin Anda simpan di segmen.

  • subsegmentssusunan objek subsegment.

  • precursor_idssusunan ID subsegmen yang mengidentifikasi subsegment dengan induk yang sama yang diselesaikan sebelum subsegmen ini.

Data permintaan HTTP

Gunakan blok HTTP untuk mencatat detail permintaan HTTP bahwa aplikasi Anda sediakan (dalam segmen) atau yang aplikasi Anda buat untuk HTTP API hilir (dalam subsegmen). Sebagian besar bidang dalam peta objek ini untuk informasi yang ditemukan dalam permintaan HTTP dan respon.

http

Semua kolom lain bersifat opsional.

  • request – Informasi tentang permintaan.

    • method – Metode permintaan Misalnya, GET.

    • url – URL lengkap dari permintaan, disusun dari protokol, hostname, dan path dari permintaan.

    • user_agent – String agen pengguna dari klien peminta.

    • client_ip – Alamat IP peminta. Dapat diambil dari paket IP Source Address atau, untuk permintaan yang diteruskan, dari header X-Forwarded-For.

    • x_forwarded_for – (hanya segmen)boolean menunjukkan bahwa client_ip dibaca dari header X-Forwarded-For dan tidak dapat diandalkan karena mungkin telah ditempa.

    • traced – (hanya subsegmen)booleanmenunjukkan bahwa panggilan hilir adalah untuk layanan lain ditelusuri. Jika bidang ini diatur ke true, X-Ray menganggap penelusuran tersebut rusak hingga layanan hilir mengunggah segmen dengan parent_id yang cocok dengan id dari subsegmen yang berisi blok ini.

  • response – Informasi tentang respon.

    • statusbilangan bulat yang menunjukkan status HTTP dari respons.

    • content_lengthbilangan bulat yang menunjukkan panjang badan respons dalam byte.

Ketika Anda instrumen panggilan ke api web hilir, mencatat subsegmen dengan informasi tentang permintaan HTTP dan respon. X-Ray menggunakan subsegmen untuk menghasilkan segmen disimpulkan untuk API jarak jauh.

contoh Segmen untuk panggilan HTTP yang dilayani oleh aplikasi yang berjalan di Amazon EC2
{ "id": "6b55dcc497934f1a", "start_time": 1484789387.126, "end_time": 1484789387.535, "trace_id": "1-5880168b-fd5158284b67678a3bb5a78c", "name": "www.example.com", "origin": "AWS::EC2::Instance", "aws": { "ec2": { "availability_zone": "us-west-2c", "instance_id": "i-0b5a4678fc325bg98" }, "xray": { "sdk_version": "2.11.0 for Java" }, }, "http": { "request": { "method": "POST", "client_ip": "78.255.233.48", "url": "http://www.example.com/api/user", "user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0", "x_forwarded_for": true }, "response": { "status": 200 } }
contoh Subsegmen untuk panggilan HTTP hilir
{ "id": "004f72be19cddc2a", "start_time": 1484786387.131, "end_time": 1484786387.501, "name": "names.example.com", "namespace": "remote", "http": { "request": { "method": "GET", "url": "https://names.example.com/" }, "response": { "content_length": -1, "status": 200 } } }
contoh Segmen yang disimpulkan untuk panggilan HTTP downstream
{ "id": "168416dc2ea97781", "name": "names.example.com", "trace_id": "1-62be1272-1b71c4274f39f122afa64eab", "start_time": 1484786387.131, "end_time": 1484786387.501, "parent_id": "004f72be19cddc2a", "http": { "request": { "method": "GET", "url": "https://names.example.com/" }, "response": { "content_length": -1, "status": 200 } }, "inferred": true }

Anotasi

Segmen dan subsegmen dapat mencakup objek annotations yang berisi satu atau lebih bidang yang X-Ray indeks untuk digunakan dengan ekspresi filter. Fields dapat memiliki string, angka, atau nilai Boolean (tidak ada objek atau array). Indeks X-Ray hingga 50 anotasi per penelusuran.

contoh Segmen untuk panggilan HTTP dengan anotasi
{ "id": "6b55dcc497932f1a", "start_time": 1484789187.126, "end_time": 1484789187.535, "trace_id": "1-5880168b-fd515828bs07678a3bb5a78c", "name": "www.example.com", "origin": "AWS::EC2::Instance", "aws": { "ec2": { "availability_zone": "us-west-2c", "instance_id": "i-0b5a4678fc325bg98" }, "xray": { "sdk_version": "2.11.0 for Java" }, }, "annotations": { "customer_category" : 124, "zip_code" : 98101, "country" : "United States", "internal" : false }, "http": { "request": { "method": "POST", "client_ip": "78.255.233.48", "url": "http://www.example.com/api/user", "user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0", "x_forwarded_for": true }, "response": { "status": 200 } }

Kunci harus alfanumerik agar bisa bekerja dengan filter. Garis bawah diperbolehkan. Simbol dan spasi lainnya tidak diperbolehkan.

Metadata

Segmen dan subsegmen dapat mencakup objek metadata yang berisi satu atau lebih bidang dengan nilai-nilai dari tipe apa pun, termasuk objek dan array. X-Ray tidak mengindeks metadata, dan nilai dapat berupa ukuran apa pun, selama dokumen segmen tidak melebihi ukuran maksimum (64 kB). Anda dapat melihat metadata dalam dokumen segmen penuh dikembalikan oleh API BatchGetTraces. Kunci bidang (debugdalam contoh berikut) yang dimulai dengan AWS. dicadangkan untuk digunakan oleh SDK dan klien yang AWS disediakan.

contoh Subsegmen kustom dengan metadata
{ "id": "0e58d2918e9038e8", "start_time": 1484789387.502, "end_time": 1484789387.534, "name": "## UserModel.saveUser", "metadata": { "debug": { "test": "Metadata string from UserModel.saveUser" } }, "subsegments": [ { "id": "0f910026178b71eb", "start_time": 1484789387.502, "end_time": 1484789387.534, "name": "DynamoDB", "namespace": "aws", "http": { "response": { "content_length": 58, "status": 200 } }, "aws": { "table_name": "scorekeep-user", "operation": "UpdateItem", "request_id": "3AIENM5J4ELQ3SPODHKBIRVIC3VV4KQNSO5AEMVJF66Q9ASUAAJG", "resource_names": [ "scorekeep-user" ] } } ] }

AWS data sumber daya

Untuk segmen, aws objek berisi informasi tentang sumber daya tempat aplikasi Anda berjalan. Beberapa bidang dapat berlaku untuk sumber daya tunggal. Misalnya, aplikasi yang berjalan di lingkungan Docker multicontainer pada Elastic Beanstalk bisa memiliki informasi tentang instans Amazon EC2, kontainer Amazon ECS berjalan pada instans, dan lingkungan Elastic Beanstalk itu sendiri.

aws (Segmen)

Semua bidang bersifat opsional.

  • account_id— Jika aplikasi Anda mengirim segmen ke yang berbeda Akun AWS, catat ID akun yang menjalankan aplikasi Anda.

  • cloudwatch_logs— Array objek yang menggambarkan grup CloudWatch log tunggal.

    • log_group— Nama Grup CloudWatch Log.

    • arn— Grup CloudWatch Log ARN.

  • ec2— Informasi tentang instans Amazon EC2.

    • instance_id – ID instans dari instans EC2.

    • instance_size— Jenis instans EC2.

    • ami_id— ID Gambar Mesin Amazon.

    • availability_zone - Availability Zone tempat instans berjalan.

  • ecs – Informasi tentang kontainer Amazon ECS.

    • container— Nama host wadah Anda.

    • container_id— ID kontainer lengkap wadah Anda.

    • container_arn— ARN dari instance kontainer Anda.

  • eks— Informasi tentang cluster Amazon EKS.

    • pod— Nama host pod EKS Anda.

    • cluster_name— Nama cluster EKS.

    • container_id— ID kontainer lengkap wadah Anda.

  • elastic_beanstalk – Informasi tentang lingkungan Elastic Beanstalk. Anda dapat menemukan informasi ini dalam sebuah file bernama /var/elasticbeanstalk/xray/environment.conf pada platform Elastic Beanstalk terbaru.

    • environment_name – Nama lingkungan.

    • version_label– Nama versi aplikasi yang saat ini digunakan untuk instans yang melayani permintaan.

    • deployment_idangkayang menunjukkan ID dari deployment berhasil terakhir ke instans yang melayani permintaan.

  • xray— Metadata tentang jenis dan versi instrumentasi yang digunakan.

    • auto_instrumentation— Boolean menunjukkan apakah instrumentasi otomatis digunakan (misalnya, Agen Java).

    • sdk_version— Versi SDK atau agen yang digunakan.

    • sdk— Jenis SDK.

contoh AWS blokir dengan plugin
"aws":{ "elastic_beanstalk":{ "version_label":"app-5a56-170119_190650-stage-170119_190650", "deployment_id":32, "environment_name":"scorekeep" }, "ec2":{ "availability_zone":"us-west-2c", "instance_id":"i-075ad396f12bc325a", "ami_id": }, "cloudwatch_logs":[ { "log_group":"my-cw-log-group", "arn":"arn:aws:logs:us-west-2:012345678912:log-group:my-cw-log-group" } ], "xray":{ "auto_instrumentation":false, "sdk":"X-Ray for Java", "sdk_version":"2.8.0" } }

Untuk subsegmen, catat informasi tentang layanan AWS dan sumber daya yang diakses aplikasi Anda. X-Ray menggunakan informasi ini untuk membuat segmen yang disimpulkan yang mewakili layanan hilir di peta layanan Anda.

aws (Subsegmen)

Semua bidang bersifat opsional.

  • operation— Nama tindakan API yang dipanggil terhadap sumber daya layanan AWS atau.

  • account_id— Jika aplikasi Anda mengakses sumber daya di akun yang berbeda, atau mengirim segmen ke akun yang berbeda, catat ID akun yang memiliki AWS sumber daya yang diakses aplikasi Anda.

  • region – Jika sumber daya berada di wilayah yang berbeda dari aplikasi Anda, catat wilayahnya. Misalnya, us-west-2.

  • request_id – Pengenal unik untuk permintaan.

  • queue_url – Untuk operasi pada antrean Amazon SQS, URL antrean ini.

  • table_name – Untuk operasi pada tabel DynamoDB, nama 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", } }

Kesalahan dan pengecualian

Ketika terjadi kesalahan, Anda dapat mencatat detail tentang kesalahan dan pengecualian yang dihasilkan. Catatan kesalahan dalam segmen ketika aplikasi Anda kembali kesalahan ke pengguna, dan di subsegment ketika panggilan hilir kembali kesalahan.

Tipe kesalahan

Tetapkan satu atau beberapa bidang berikut ketrueuntuk menunjukkan bahwa kesalahan terjadi. Beberapa tipe dapat berlaku jika kesalahan berlipat ganda. Misalnya,429 Too Many Requestskesalahan dari panggilan hilir dapat menyebabkan aplikasi Anda kembali500 Internal Server Error, dalam hal ini ketiga tipe akan berlaku.

  • errorbooleanmenunjukkan bahwa kesalahan klien terjadi (kode status respons adalah 4XX klien Error).

  • throttlebooleanmenunjukkan bahwa permintaan telah dicekik (kode status respon429 Terlalu Banyak Permintaan).

  • faultbooleanmenunjukkan bahwa kesalahan server terjadi (kode status respons adalah 5XX Server Error).

Menunjukkan penyebab kesalahan dengan memasukkanPenyebabobjek dalam segmen atau subsegmen.

cause

Penyebab bisa berupa16 karakterpengecualian ID atau objek dengan bidang-bidang berikut:

  • working_directory– Jalur lengkap direktori kerja ketika pengecualian terjadi.

  • pathsSusunandari path ke pustaka atau modul yang digunakan ketika pengecualian terjadi.

  • exceptionsSusunandaripengecualianobjek.

Sertakan informasi rinci tentang kesalahan dalam satu atau lebihpengecualianobjek.

exception

Semua bidang bersifat opsional.

  • id – Pengenal 64-bit untuk segmen, unik di antara segmen dalam penelusuran yang sama, dalam 16 digit heksadesimal.

  • message– Pesan pengecualian.

  • type – Tipe pengecualian.

  • remotebooleanmenunjukkan bahwa pengecualian disebabkan oleh kesalahan yang dikembalikan oleh layanan hilir.

  • truncatedInteger menunjukkan jumlah frame tumpukan yang dihilangkan dari stack.

  • skippedIntegermenunjukkan jumlah pengecualian yang dilewati antara pengecualian ini dan anaknya, yaitu pengecualian yang ditimbulkannya.

  • cause– Exception ID dari induk pengecualian ini, yaitu, pengecualian yang menyebabkan pengecualian ini.

  • stackSusunan dari objek stackFrame.

Jika tersedia, catat informasi tentang tumpukan panggilan di objek stackFrame.

stackFrame

Semua kolom lain bersifat opsional.

  • path– Jalur relatif ke file.

  • line– Baris di file.

  • label– Fungsi atau nama metode.

Kueri SQL

Anda dapat membuat subsegmen untuk kueri bahwa aplikasi Anda membuat basis data SQL.

sql

Semua kolom lain bersifat opsional.

  • connection_string – Untuk SQL Server atau koneksi basis data lain yang tidak menggunakan string koneksi URL, mencatat string koneksi, tidak termasuk kata sandi.

  • url– Untuk koneksi database yang menggunakan string koneksi URL, catat URL, tidak termasuk password.

  • sanitized_query – Kueri basis data, dengan setiap pengguna diberikan nilai-nilai dihapus atau diganti dengan placeholder.

  • database_type– Nama mesin basis data.

  • database_version – nomor versi mesin basis data yang akan ditingkatkan.

  • driver_version– Nama dan nomor versi driver mesin basis data yang digunakan aplikasi Anda.

  • user– Nama pengguna basis data.

  • preparationcall jika kueri menggunakan PreparedCall; statement jika kueri menggunakan PreparedStatement.

contoh Subsegmen dengan Kueri SQL
{ "id": "3fd8634e78ca9560", "start_time": 1484872218.696, "end_time": 1484872218.697, "name": "ebdb@aawijb5u25wdoy.cpamxznpdoq8.us-west-2.rds.amazonaws.com", "namespace": "remote", "sql" : { "url": "jdbc:postgresql://aawijb5u25wdoy.cpamxznpdoq8.us-west-2.rds.amazonaws.com:5432/ebdb", "preparation": "statement", "database_type": "PostgreSQL", "database_version": "9.5.4", "driver_version": "PostgreSQL 9.4.1211.jre7", "user" : "dbuser", "sanitized_query" : "SELECT * FROM customers WHERE customer_id=?;" } }