View a markdown version of this page

Melacak data permintaan Step Functions di AWS X-Ray - AWS Step Functions

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

Melacak data permintaan Step Functions di AWS X-Ray

Anda dapat menggunakan AWS X-Ray untuk memvisualisasikan komponen mesin status Anda, mengidentifikasi hambatan performa, dan memecahkan masalah permintaan yang mengakibatkan kesalahan. Mesin status Anda mengirimkan data jejak ke X-Ray, dan X-Ray memproses data untuk menghasilkan peta layanan dan ringkasan jejak yang dapat dicari.

Dengan X-Ray diaktifkan untuk mesin status Anda, Anda dapat melacak permintaan saat dijalankan di Step Functions, di semua AWS Wilayah jika X-Ray tersedia. Hal ini memberi Anda detail gambaran umum seluruh permintaan Step Functions. Step Functions akan mengirim jejak X-Ray untuk eksekusi mesin status, bahkan ketika ID jejak tidak dilewatkan oleh layanan upstream. Anda dapat menggunakan peta X-Ray layanan untuk melihat latensi permintaan, termasuk AWS layanan apa pun yang terintegrasi dengannya X-Ray. Anda juga dapat mengonfigurasi aturan pengambilan sampel untuk memberi tahu permintaan X-Ray mana yang akan direkam, dan berapa laju pengambilan sampel, sesuai dengan kriteria yang Anda tentukan.

Bila tidak X-Ray diaktifkan untuk mesin status Anda, dan layanan upstream tidak meneruskan ID jejak, Step Functions tidak akan mengirim jejak X-Ray untuk eksekusi mesin status. Namun, jika ID pelacakan dilewatkan oleh layanan upstream, Step Functions kemudian akan mengirim jejak ke X-Ray untuk eksekusi mesin status.

Anda dapat menggunakan AWS X-Ray Step Functions di wilayah di mana keduanya didukung. Lihat halaman Step Functions dan X-Rayendpoint dan kuota untuk informasi tentang dukungan wilayah X-Ray dan Step Functions.

X-Ray dan Step Functions Gabungan Kuota

Anda dapat menambahkan data ke jejak hingga tujuh hari, dan menanyakan data jejak kembali tiga puluh hari, lamanya waktu yang X-Ray menyimpan data jejak. Jejak Anda akan tunduk pada X-Ray kuota. Selain kuota lainnya, X-Ray menyediakan ukuran jejak minimum yang dijamin 100 KiB untuk mesin status Step Functions. Jika lebih dari 100 KiB data jejak disediakan X-Ray, ini dapat mengakibatkan jejak beku. Lihat bagian kuota layanan pada halaman X-Ray titik akhir dan kuota untuk informasi lebih lanjut tentang kuota lainnya. X-Ray

penting

Step Functions tidak mendukung X-Ray penelusuran untuk eksekusi alur kerja anak yang dimulai oleh status Peta Terdistribusi karena mudah untuk melampaui batas ukuran dokumen Trace untuk eksekusi tersebut.

Penyiapan dan konfigurasi

Aktifkan X-Ray penelusuran saat membuat mesin status

Anda dapat mengaktifkan X-Ray penelusuran saat membuat mesin status baru dengan memilih Aktifkan X-Ray penelusuran di halaman Tentukan detail.

  1. Buka Konsol Step Functions dan pilih Buat mesin status.

  2. Pada halaman metode Choose authoring, pilih opsi yang sesuai untuk membuat mesin status Anda. Jika Anda memilih Jalankan proyek sampel, Anda tidak dapat mengaktifkan X-Ray penelusuran selama pembuatan mesin status, dan Anda harus mengaktifkan X-Ray penelusuran setelah mesin status Anda dibuat. Untuk informasi selengkapnya tentang mengaktifkan X-Ray mesin status yang ada, lihatAktifkan X-Ray di mesin status yang ada.

    Pilih Berikutnya.

  3. Pada halaman Tentukan Detail, konfigurasikan mesin status Anda.

  4. Pilih Aktifkan X-Ray penelusuran.

    Mesin status Step Functions Anda sekarang akan mengirim jejak X-Ray untuk eksekusi mesin status.

    catatan

    Jika Anda memilih untuk menggunakan peran IAM yang ada, Anda harus memastikan bahwa X-Ray penulisan diizinkan. Untuk informasi selengkapnya tentang izin yang Anda butuhkan, lihat topik berikut.

Kebijakan IAM menggunakan AWS X-Ray di Step Functions

Untuk mengaktifkan X-Ray penelusuran, Anda memerlukan kebijakan IAM dengan izin yang sesuai untuk memungkinkan penelusuran. Jika mesin status Anda menggunakan layanan terintegrasi lainnya, Anda mungkin memerlukan kebijakan IAM tambahan. Lihat kebijakan IAM untuk integrasi layanan khusus.

Jika Anda mengaktifkan X-Ray penelusuran untuk mesin status yang ada, Anda harus memastikan bahwa Anda menambahkan kebijakan dengan izin yang memadai untuk mengaktifkan X-Ray jejak.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": [ "*" ] } ] }

Aktifkan X-Ray di mesin status yang ada

Untuk mengaktifkan X-Ray di mesin status yang ada:

  1. Di konsol Step Functions, pilih mesin status yang ingin Anda aktifkan pelacakan.

  2. Pilih Edit.

  3. Pilih Aktifkan X-Ray penelusuran.

    Anda akan melihat notifikasi yang memberitahu Anda bahwa Anda mungkin perlu membuat perubahan tambahan.

    catatan

    Saat Anda mengaktifkan X-Ray mesin status yang ada, Anda harus memastikan bahwa Anda memiliki kebijakan IAM yang memberikan izin yang cukup X-Ray untuk melakukan penelusuran. Anda dapat menambahkan satu secara manual, atau menghasilkan satu. Untuk informasi selengkapnya, lihat bagian kebijakan IAM untuk Kebijakan IAM menggunakan AWS X-Ray di Step Functions.

  4. (Opsional) Auto-generate peran baru untuk mesin status Anda untuk menyertakan X-Ray izin.

  5. Pilih Simpan.

Konfigurasikan X-Ray penelusuran untuk Step Functions

Saat pertama kali menjalankan mesin status dengan X-Ray penelusuran diaktifkan, itu akan menggunakan nilai konfigurasi default untuk X-Ray melacak. AWS X-Ray tidak mengumpulkan data untuk setiap permintaan yang dikirim ke aplikasi. Sebaliknya, ia mengumpulkan data untuk sejumlah permintaan yang signifikan secara statistik. Default mencatat permintaan pertama setiap detik dan lima persen dari permintaan tambahan. Satu permintaan per detik adalah waduk. Tindakan ini memastikan bahwa setidaknya satu pelacakan dicatat setiap detik selama layanan melayani permintaan. Lima persen adalah laju tempat permintaan tambahan di luar ukuran reservoir diambil sampelnya.

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 penanganan Akun AWS atau transaksi. Untuk panggilan baca-saja dengan volume tinggi, seperti poling latar belakang, pemeriksaan kondisi, atau pemeliharaan koneksi, Anda dapat mengalami kecepatan rendah dan masih mendapatkan data yang cukup untuk mengamati masalah yang terjadi.

Untuk mengonfigurasi aturan pengambilan sampel untuk mesin status Anda:

  1. Pergi ke X-Ray konsol.

  2. Pilih Pengambilan sampel.

  3. Untuk membuat aturan, pilih Buat aturan pengambilan sampel.

    Untuk mengedit aturan, pilih nama aturan.

    Untuk menghapus aturan, pilih aturan dan gunakan menu Tindakan untuk menghapusnya.

Beberapa bagian aturan pengambilan sampel yang ada, seperti nama dan prioritas, tidak dapat diubah. Sebagai gantinya, tambahkan atau klon aturan yang ada, buat perubahan yang Anda inginkan, lalu gunakan aturan baru.

Untuk informasi rinci tentang aturan X-Ray pengambilan sampel dan cara mengonfigurasi berbagai parameter, lihat Mengonfigurasi aturan pengambilan sampel di konsol. X-Ray

Integrasikan layanan hulu

Untuk mengintegrasikan eksekusi alur kerja Step Functions, seperti alur kerja Express, Synchronous, dan Standard, dengan layanan upstream, Anda perlu menyetelnya. traceHeader Ini secara otomatis dilakukan untuk Anda jika Anda menggunakan API HTTP di API Gateway. Namun, jika Anda menggunakan fungsi and/or Lambda SDK, Anda perlu mengatur sendiri panggilan traceHeader on StartExecutionatau StartSyncExecutionAPI.

Anda harus menentukan traceHeader format sebagai\p{ASCII}∗. Selain itu, untuk membiarkan Step Functions menggunakan ID jejak yang sama, Anda harus menentukan formatnya sebagaiRoot={TRACE_ID};Sampled={1 or 0}. Jika Anda menggunakan fungsi Lambda, ganti TRACE_ID dengan ID jejak di segmen Anda saat ini dan atur bidang Sampel seolah-olah mode pengambilan sampel Anda benar dan 1 0 jika mode pengambilan sampel Anda salah. Menyediakan ID jejak dalam format ini memastikan bahwa Anda akan mendapatkan jejak lengkap.

Berikut ini adalah contoh yang ditulis dengan Python untuk menampilkan cara menentukan. traceHeader

state_machine = config.get_string_paramter("STATE_MACHINE_ARN") if (xray_recorder.current_subsegment() is not None and xray_recorder.current_subsegment().sampled) : trace_id = "Root={};Sampled=1".format( xray_recorder.current_subsegment().trace_id ) else: trace_id = "Root=not enabled;Sampled=0" LOGGER.info("trace %s", trace_id) # execute it response = states.start_sync_execution( stateMachineArn=state_machine, input=event['body'], name=context.aws_request_id, traceHeader=trace_id ) LOGGER.info(response)
X-Ray melacak di header atau payload

Untuk X-Ray jejak, semua AWS layanan menggunakan X-Amzn-Trace-Id header dari permintaan HTTP. Menggunakan header adalah mekanisme yang disukai untuk mengidentifikasi jejak. StartExecutiondan operasi StartSyncExecution API juga dapat digunakan traceHeader dari badan payload permintaan. Jika kedua sumber disediakan, Step Functions akan menggunakan nilai header (lebih disukai) di atas nilai di badan permintaan.

Konsep

X-Ray Konsol

Di AWS X-Ray konsol, Anda dapat melihat peta layanan dan jejak untuk permintaan yang disajikan aplikasi Anda saat X-Ray diaktifkan untuk mesin status Anda.

Lihat Melihat X-Ray konsol untuk informasi tentang cara mengakses X-Ray konsol untuk eksekusi mesin status Anda.

Untuk informasi rinci tentang X-Ray konsol, lihat dokumentasi X-Ray konsol.

Segmen, subsegmen, dan jejak

Segmen mencatat informasi tentang permintaan ke mesin status Anda. Segmen berisi informasi seperti pekerjaan yang dilakukan mesin status Anda, dan mungkin juga berisi subsegmen dengan informasi tentang panggilan hilir.

Jejak mengumpulkan semua segmen yang dihasilkan oleh satu permintaan.

Pengambilan sampel

Untuk memastikan penelusuran yang efisien dan memberikan sampel representatif dari permintaan yang dilayani aplikasi Anda, X-Ray terapkan algoritme pengambilan sampel untuk menentukan permintaan mana yang dilacak. Hal ini dapat diubah dengan mengedit aturan pengambilan sampel.

Metrik-metrik

Untuk mesin status Anda, X-Ray akan mengukur waktu pemanggilan, waktu transisi status, waktu eksekusi keseluruhan Step Functions, dan varians dalam waktu eksekusi ini. Informasi ini dapat diakses melalui X-Ray konsol.

Analitik

Konsol AWS X-Ray Analytics adalah alat interaktif untuk menafsirkan data jejak. Anda dapat mempersempit set data aktif dengan meningkatkan filter terperinci dengan mengeklik grafik dan panel metrik dan bidang yang terkait dengan set pelacakan saat ini. Anda dapat menganalisis kinerja mesin status Anda untuk menemukan dan mengidentifikasi masalah kinerja.

Untuk informasi rinci tentang X-Ray analitik, lihat Berinteraksi dengan konsol AWS X-Ray Analytics

Integrasi layanan Step Functions dan X-Ray

Beberapa AWS layanan yang terintegrasi dengan Step Functions menyediakan integrasi AWS X-Ray dengan menambahkan header tracing ke permintaan, menjalankan X-Ray daemon, atau membuat keputusan pengambilan sampel dan mengunggah data pelacakan ke. X-Ray Lainnya harus diinstrumentasi menggunakan AWS X-Ray SDK. Beberapa belum mendukung X-Ray integrasi. X-Ray integrasi diperlukan untuk menyediakan data jejak lengkap saat menggunakan integrasi layanan dengan Step Functions

X-Ray Dukungan asli

Integrasi layanan dengan X-Ray dukungan asli meliputi:

Instrumentasi diperlukan

Integrasi layanan yang membutuhkan X-Rayinstrumentasi:

  • Amazon Elastic Container Service

  • AWS Batch

  • AWS Fargate

Client-side jejak saja

Integrasi layanan lainnya tidak mendukung X-Ray jejak. Namun, jejak sisi klien masih dapat dikumpulkan:

  • Amazon DynamoDB

  • Amazon EMR

  • Amazon SageMaker AI

  • AWS CodeBuild

  • AWS Glue

Melihat X-Ray konsol

X-Ray menerima data dari layanan sebagai segmen. X-Ray mengelompokkan segmen yang memiliki permintaan umum ke dalam jejak. X-Ray memproses jejak untuk menghasilkan grafik layanan yang menyediakan representasi visual dari aplikasi Anda.

Setelah Anda memulai eksekusi mesin status Anda, Anda dapat melihat X-Ray jejaknya dengan memilih tautan peta X-Ray jejak di bagian Detail eksekusi.

Setelah mengaktifkan X-Ray mesin status, Anda dapat melihat informasi penelusuran untuk eksekusinya di X-Ray konsol.

Melihat informasi X-Ray penelusuran untuk Step Functions

Langkah-langkah berikut menggambarkan jenis informasi apa yang dapat Anda lihat di konsol setelah Anda mengaktifkan X-Ray dan menjalankan eksekusi. X-Ray jejak untuk proyek Buat contoh pola callback dengan Amazon SQS, Amazon SNS, dan Lambda sampel ditampilkan.

Jejak

Setelah eksekusi selesai, Anda dapat menavigasi ke X-Ray konsol, di mana Anda akan melihat halaman X-Ray Jejak. Ini menampilkan gambaran umum peta layanan serta informasi jejak dan segmen untuk mesin status Anda.

Screenshot ilustratif dari X-Ray jejak untuk mesin negara.

Peta layanan

Peta layanan di X-Ray konsol membantu Anda mengidentifikasi layanan di mana kesalahan terjadi, di mana ada koneksi dengan latensi tinggi, atau melihat jejak untuk permintaan yang tidak berhasil.

Screenshot ilustratif difokuskan pada peta layanan dalam X-Ray jejak.

Pada peta jejak, Anda dapat memilih simpul layanan untuk melihat permintaan bagi simpul tersebut, atau tepi antara dua simpul untuk melihat permintaan yang melewati koneksi tersebut. Di sini, simpul WaitForCallBack telah dipilih, dan Anda dapat melihat informasi tambahan tentang eksekusi dan status respons.

Contoh detail untuk node X-Ray jejak.

Anda dapat melihat bagaimana peta X-Ray layanan berkorelasi dengan mesin negara. Ada node peta layanan untuk setiap integrasi layanan yang disebut oleh Step Functions, asalkan mendukung X-Ray.

Contoh representasi grafis dari mesin negara yang dilacak.

Segmen dan subsegmen

Jejak adalah kumpulan segmen yang dihasilkan oleh permintaan tunggal. Setiap segmen menyediakan nama sumber daya, detail permintaan, dan detail pekerjaan yang dilakukan. Di halaman Jejak, Anda dapat melihat segmen dan jika diperluas, subsegmennya yang sesuai. Anda dapat memilih segmen atau subsegmen untuk melihat detail informasi hal tersebut.

Anda akan menjadi segmen yang berbeda untuk setiap node pada peta layanan.

Contoh tangkapan layar segmen dan subsegmen untuk mesin negara.

Memilih segmen menyediakan nama sumber daya, detail tentang permintaan dan pekerjaan yang dilakukan.

Segmen dapat memecah data tentang pekerjaan yang dilakukan menjadi subsegmen. Memilih subsegmen menunjukkan informasi dan detail waktu granular. Subsegmen dapat berisi rincian tambahan tentang panggilan ke AWS layanan, API HTTP eksternal, atau database SQL.

Analitik

Konsol AWS X-Ray Analytics adalah alat interaktif untuk menafsirkan data jejak. Anda dapat menggunakan ini untuk memahami performa mesin status dengan lebih mudah. Anda dapat menjelajahi, menganalisis, dan memvisualisasikan jejak melalui waktu respons interaktif dan grafik deret waktu untuk membantu menemukan masalah kinerja dan latensi.

Anda dapat mempersempit set data aktif dengan meningkatkan filter terperinci dengan mengeklik grafik dan panel metrik dan bidang yang terkait dengan set pelacakan saat ini.

Konfigurasi

Anda dapat mengonfigurasi opsi pengambilan sampel dan enkripsi dari X-Ray konsol.

  • Pilih Pengambilan sampel untuk melihat detail tingkat dan konfigurasi pengambilan sampel.

    Anda dapat mengubah aturan pengambilan sampel untuk mengontrol jumlah data yang Anda catat, dan mengubah perilaku pengambilan sampel sesuai dengan kebutuhan tertentu Anda.

  • Pilih Enkripsi untuk mengubah pengaturan enkripsi.

    Anda dapat menggunakan pengaturan default, di mana X-Ray mengenkripsi jejak dan data saat istirahat, atau, jika diperlukan, Anda dapat memilih kunci KMS. Biaya standar AWS KMS berlaku dalam kasus terakhir.

Bagaimana jika tidak ada data dalam peta jejak atau peta layanan?

Jika Anda telah mengaktifkan X-Ray, tetapi tidak dapat melihat data apa pun di X-Ray konsol, periksa apakah:

  • Peran IAM Anda diatur dengan benar untuk memungkinkan penulisan. X-Ray

  • Aturan pengambilan sampel memungkinkan pengambilan sampel data.

  • Karena dapat terjadi penundaan singkat sebelum penerapan IAM roles yang baru dibuat atau diubah, periksa jejak atau layanan peta lagi setelah beberapa menit.

  • Jika Anda melihat Data Tidak Ditemukan di panel X-Ray Jejak, periksa pengaturan akun IAM Anda dan pastikan itu AWS Security Token Service diaktifkan untuk wilayah yang dimaksud. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan AWS STS dalam Panduan Pengguna Wilayah AWS IAM.