Menggunakan Debug

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat Dokumentasi Apigee Edge.

Bagian ini menjelaskan cara membuat dan mengelola sesi debug, serta melihat permintaan dan respons data menggunakan UI Apigee dan API.

Menggunakan Offline Debug untuk melihat dan menganalisis sesi debug yang telah diunduh sebelumnya.

Membuat sesi debug

Saat membuat sesi debug, Anda bisa menampilkan data permintaan dan respons di UI untuk permintaan yang dibuat di API atau sumber eksternal lainnya.

Buat sesi debug menggunakan UI atau API Apigee, seperti yang dijelaskan di bagian berikut.

Editor Proxy Baru

Untuk membuat sesi debug di Proxy Editor baru:

  1. Jika Anda menggunakan UI Apigee di Konsol Cloud: Pilih Pengembangan proxy > Proxy API.

    Jika Anda menggunakan UI Apigee klasik: Pilih Develop > Proxy API Di panel Proxies, pilih lingkungan untuk proxy yang ingin di-debug.

  2. Pilih proxy API yang ingin Anda debug. Tindakan ini akan menampilkan Editor Proxy Tampilan Ringkasan.

  3. Klik tab Debug di kiri atas jendela.
  4. Klik Start Debug Session di kanan atas panel Debug. Ini menampilkan dialog Start debug session.

    Mulai dialog sesi debug.

    Dalam dialog:

    1. Pilih Environment tempat Anda ingin menjalankan sesi debug.
    2. (Opsional) Dari menu drop-down Filter, pilih filter yang akan diterapkan. semua transaksi dalam sesi debug yang Anda buat. Defaultnya adalah None (All transactions), yang menyertakan semua transaksi di data debug.

      Untuk informasi tentang cara menggunakan filter, lihat Menggunakan filter dalam sesi debug. Untuk mengetahui informasi tentang filter bawaan, lihat Menggunakan filter standar.

    3. Klik Mulai.

UI Apigee kini menampilkan tampilan Debug session in progress.

Sesi debug sedang berlangsung

Sesi debug mencatat permintaan selama 10 menit setelah Anda membuat sesi. Tujuan Kolom Berakhir dalam menampilkan jumlah waktu yang tersisa dalam sesi.

Anda tidak akan melihat informasi apa pun ditampilkan dalam panel Debug hingga Anda mengirim permintaan ke yang sedang Anda debug di lingkungan yang dipilih. khusus untuk sesi debug.

Setelah dikirim, permintaan akan ditampilkan di bagian bawah panel kiri.

Mulai dialog sesi debug.

Catatan: Selama sesi debug aktif, Anda dapat memulai sesi lain dalam UI Apigee. Untuk melakukannya, cukup klik Start Debug Session lagi.

Melihat diagram Gantt untuk transaksi

Untuk melihat detail transaksi (permintaan dan respons) dalam tampilan Debug, klik untuk transaksi, seperti yang ditunjukkan dalam gambar di atas.

Ini menampilkan Diagram Gantt di yang menunjukkan langkah-langkah dalam permintaan dan respons.

Diagram Gantt dari langkah-langkah transaksi di panel sebelah kanan.

Sumbu horizontal pada diagram menunjukkan waktu terjadinya setiap langkah, yang diukur dalam milidetik. Setiap langkah ditunjukkan oleh persegi panjang yang memanjang dari waktu mulai hingga waktu berakhir langkah.

Anda dapat menjalani sesi debug menggunakan tombol Kembali dan Berikutnya di di kanan bawah panel debug. Klik:

  • Kembali untuk memindahkan baris yang dipilih ke langkah sebelumnya dalam diagram.
  • Berikutnya untuk memindahkan baris yang dipilih ke langkah berikutnya dalam diagram.

Pada contoh yang ditampilkan di atas, diagram menampilkan dua kebijakan yang dijalankan dalam respons:

  • ResponsePayload
  • Tambahkan CORS

Anda dapat mengklik salah satu langkah ini untuk melihat detailnya. Misalnya, jika mengklik kebijakan Add CORS, Anda akan melihat detail seperti satu yang ditampilkan di bawah ini yang ditampilkan di sebelah bagan Gantt.

Tambahkan detail kebijakan CORS.

Jika Anda kemudian memutuskan untuk mengubah sesuatu dalam konfigurasi kebijakan, Anda dapat mengklik Develop untuk beralih ke tampilan Develop, yang akan menampilkan dua kebijakan yang sama dalam Respons PostFlow.

Melihat tab Pengembangan yang berkaitan dengan sesi debug.

Membagikan sesi debug

Anda dapat membagikan sesi debug dengan pengguna lain yang memiliki akses ke organisasi Anda dan izin yang diperlukan. Untuk melakukannya, cukup kirimkan URL yang ditampilkan di browser Anda kepada mereka saat Anda melihat sesi debug. Tautan ini hanya berlaku selama 24 jam setelah sesi debug dibuat.

Mendownload sesi debug

Setelah sesi debug selesai, Anda dapat mendownloadnya sehingga Anda dapat menganalisisnya nanti di alat Offline Debug. Kepada Kemudian, klik Download Session di panel sebelah kiri.

Mendownload sesi debug.

Perhatikan bahwa sesi debug dihapus dalam waktu 24 jam setelah sesi selesai, jadi jika Anda ingin melihat sesi debug setelah itu, Anda harus mendownloadnya sebelum tanggal tersebut.

Saat Anda mengunduh sesi debug, nama file download memiliki format 'debug-{session ID}.json', dengan {session id} adalah ID sesi debug. Namun, Anda dapat mengganti nama file jika diinginkan.

Editor Proxy Klasik

Untuk membuat sesi debug di Proxy Editor klasik:

  1. Login ke UI Apigee.
  2. Pilih Proxy API dari tampilan utama.
  3. Pilih proxy API yang ingin Anda debug.

    Tab Ringkasan akan ditampilkan.

  4. Klik tab Debug di kanan atas halaman:

    Tabs

    Tampilan Debug menampilkan:

    Tampilan debug dengan panel Mulai sesi debug, Sesi debug terbaru, dan panel Kirim permintaan

  5. Di panel Start a debug session:
    1. Dari menu drop-down Env, pilih lingkungan + nomor revisi proxy API yang ingin Anda debug.
    2. Contoh berikut menampilkan panel Start a debug session:

      Memulai panel sesi debug

    3. (Opsional) Dari menu drop-down Filter, pilih filter yang akan diterapkan. semua transaksi dalam sesi debug yang Anda buat. Defaultnya adalah None, yang menyertakan semua transaksi dalam data debug.

      Untuk informasi tentang cara menggunakan filter, lihat Menggunakan filter dalam sesi debug. Untuk mengetahui informasi tentang filter bawaan, lihat Menggunakan filter standar.

    4. Klik Start Debug Session.

      UI Apigee kini menampilkan detail tentang sesi debug saat ini, termasuk ID-nya, di panel Debug details.

      Meskipun UI membuat sesi debug, Anda tetap harus mengirim permintaan sebelum ada data yang harus dikumpulkan.

      Dari panel Debug details, Anda dapat melakukan hal berikut:

      Ikon Fungsi Deskripsi
      Ikon download Download Mendownload data debug sesi aktif, yang kemudian dapat Anda lihat offline.
      Ikon kembali Kembali Kembali ke panel sebelumnya, tempat Anda dapat memulai sesi debug lainnya. Tujuan sesi debug saat ini berlanjut hingga mencapai waktu tunggu atau transaksi penghitungan.
      Hapus ikon Hapus Hapus data sesi debug yang saat ini dipilih. Tindakan ini akan menghapus data, namun tidak menghentikan sesi.

      Ada batas waktu tunggu default selama 10 menit untuk sesi debug yang Anda mulai UI (berbeda untuk sesi yang dimulai dengan API).

      Jam dimulai berjalan segera setelah Anda mengklik Start Debug Session, sehingga Anda dapat memilih untuk tunggu hingga langkah berikutnya sebelum mengklik Start Debug Session untuk memaksimalkan jumlah data yang Anda kumpulkan.

  6. Di panel Kirim Permintaan:
    1. Di kolom URL, masukkan endpoint yang ingin Anda kirim permintaan tempat mesin terhubung. Atau, tambahkan parameter string kueri ke URL. Anda tidak dapat mengirimkan permintaan selain GET.
      Cara menemukan URL endpoint
      1. Buka Admin > Lingkungan > Grup
      2. URL adalah Nama host untuk lingkungan masing-masing yang ingin Anda gunakan untuk menjalankan sesi debug Anda.
    2. Panel Kirim Permintaan hanya menampilkan data untuk berbasis UI permintaan. Namun, perhatikan bahwa debug juga mencatat data untuk permintaan yang tidak dimulai oleh UI.

    3. Klik Kirim.

      Apigee mengirimkan permintaan ke URL yang ditentukan. Setiap kali Anda mengklik Kirim, UI Apigee mencatat permintaan tersebut di panel Debug details.

      Contoh berikut menunjukkan beberapa permintaan yang berhasil (yang menghasilkan status HTTP kode 200):

      Permintaan debug yang direkam

      Klik Copy untuk menyalin ID debug untuk referensi atau kueri pada masa mendatang.

      Selain itu, UI menampilkan data debug dalam Peta Transaksi dan Detail Fase pada panel Kirim Permintaan, dan mengisi Endpoint Proxy, Bagian Header Permintaan, Konten Permintaan, dan Properti, sebagai contoh berikut menampilkan:

      Permintaan debug yang direkam

      Untuk informasi selengkapnya tentang fase, peta transaksi, dan bagian lain dari Kirim Permintaan, lihat Cara membaca debug.

    Sesi debug sekarang aktif dan mencatat data tentang semua permintaan (kecuali permintaan difilter). Sesi akan tetap aktif hingga waktu tunggu habis atau jumlah permintaan yang dicatat dalam sesi terlampaui.

  7. Anda dapat membuat sesi debug dalam jumlah berapa pun di UI. Untuk informasi selengkapnya, lihat Memulai sesi debug lainnya.

Memulai sesi debug lain di UI

Selama sesi debug aktif, Anda dapat memulai sesi lain dalam UI Apigee. Untuk melakukannya, klik ikon panah kembali () di bagian Debug details panel:

Panah kembali yang mengembalikan Anda ke panel Mulai sesi debug

UI akan kembali ke panel Start a debug session, tempat Anda dapat memulai sesi debug.

Kapan sesi debug berakhir?

Anda tidak bisa begitu saja menghentikan sesi debug aktif. Namun, Anda dapat menghapus data sesi aktif, yang dijelaskan dalam Menghapus data sesi debug.

Saat Anda membuat sesi debug, dua properti akan menentukan kapan sesi berakhir:

  • timeout: Durasi waktu Anda mengumpulkan data selama sesi. Durasi defaultnya bergantung pada cara Anda memulai sesi (melalui UI atau API). Tujuan nilai maksimum adalah 600 detik (atau 10 menit).
  • count: Jumlah permintaan maksimum yang dicatat dalam satu permintaan sesi per Pemroses Pesan. Karena jumlah Pemroses Pesan di sebagian besar klaster bersifat variabel, efek jumlah tersebut tidak dapat diprediksi. Apigee tidak sarankan untuk menyesuaikan setelan ini.

Ketika waktu tunggu atau jumlahnya tercapai, sesi debug untuk Pemroses Pesan tersebut berakhir.

Istilah berikut digunakan untuk menjelaskan status sesi debug:

  • sesi aktif adalah sesi debug yang belum mencapai waktu tunggu atau terlampaui setiap total dengan hitungannya. Sesi aktif masih mencatat data permintaan untuk permintaan yang tidak difilter posisi-posisi ini.
  • sesi selesai adalah sesi debug yang telah mencapai waktu tunggu atau terlampaui jumlahnya; sesi yang selesai tidak lagi mencatat data permintaan baru dihapus dalam waktu 24 jam sejak sesi berakhir.

Cara membaca debug

Alat debug memiliki dua bagian utama, peta transaksi dan detail fase:

  • Peta transaksi menggunakan ikon untuk menandai setiap elemen penting yang terjadi selama transaksi proxy API, termasuk eksekusi kebijakan, kondisional langkah, dan transisi. Arahkan kursor ke ikon mana pun untuk melihat ringkasan tidak akurat atau tidak sesuai. Langkah alur permintaan muncul di sepanjang bagian atas peta transaksi dan respons alur langkah di sepanjang bagian bawah.
  • Bagian detail fase di daftar alat informasi tentang pemrosesan internal proxy, termasuk variabel yang ditetapkan atau dibaca, header permintaan dan respons, dan banyak lagi. Klik ikon mana pun untuk melihat detail fase untuk langkah tersebut.

Berikut adalah contoh peta alat debug dengan segmen pemrosesan proxy utama yang diberi label:

Peta transaksi alat debug

Diagram debug yang menampilkan "Mulai permintaan proxy" untuk memulai permintaan target untuk memulai target 
          respons untuk memulai respons proxy untuk memulai alur proxy pasca-klien

Peta transaksi legenda

Tabel berikut menjelaskan intent ikon yang akan Anda lihat dalam transaksi peta. Ikon-ikon ini menandai setiap langkah pemrosesan penting di sepanjang alur proxy.

Ikon peta transaksi

ikon aplikasi klien Aplikasi klien yang mengirim permintaan ke ProxyEndpoint dari proxy API.
ikon endpoint transisi Lingkaran tersebut menandai endpoint transisi dalam alur proxy. Fitur tersebut ada ketika masuk dari klien, saat permintaan masuk ke target, saat respons kembali dari target, dan ketika respons kembali ke klien.
ikon segmen alur

Batang tinggi menunjukkan awal segmen alur di alur proxy API. Alur adalah: permintaan ProxyEndpoint, permintaan TargetEndpoint, respons TargetEndpoint, dan Respons ProxyEndpoint. Segmen mencakup PreFlow, Alur Bersyarat, dan {i>PostFlow<i}.

Lihat Mengonfigurasi alur untuk informasi selengkapnya.

ikon Analytics

Menunjukkan bahwa tindakan Analytics terjadi di latar belakang.

ikon kondisi sebenarnya

Flow kondisional yang dievaluasi ke true (benar). Untuk pengantar alur bersyarat, lihat Mengonfigurasi alur.

Perlu diperhatikan bahwa beberapa kondisi dihasilkan oleh Apigee. Sebagai contoh, berikut ini adalah yang digunakan Apigee untuk memeriksa apakah terjadi error dalam ProxyEndpoint:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))
ikon kondisi salah

Flow kondisional yang dievaluasi ke salah (false). Untuk pengantar kondisional alur, lihat Mengonfigurasi alur.

Perlu diperhatikan bahwa beberapa kondisi dihasilkan oleh Apigee. Sebagai contoh, berikut ini adalah yang digunakan Apigee untuk memeriksa apakah terjadi error dalam TargetEndpoint:

(((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START)))

ikon xml ke json

ikon kuota

Kebijakan. Setiap jenis kebijakan memiliki ikon unik. Yang ini adalah untuk assignMessage lebih lanjut. Ikon ini memungkinkan Anda melihat di mana kebijakan dieksekusi dalam urutan yang benar dan apakah berhasil atau tidak. Anda dapat mengklik ikon kebijakan untuk melihat hasil dilaksanakan dan apakah mereka diharapkan atau tidak. Misalnya, Anda dapat melihat apakah pesan diubah dengan benar atau jika di-{i>cache<i}.

Kebijakan yang dilaksanakan dengan benar ditunjukkan oleh tanda centang. Jika terjadi kesalahan, tanda seru berwarna merah akan ditampilkan di ikon.

ikon server Target backend yang dipanggil oleh proxy API.
ikon milidetik Garis waktu menunjukkan berapa lama (dalam milidetik) waktu yang diperlukan untuk memproses selesai. Membandingkan segmen waktu berlalu membantu Anda mengisolasi kebijakan memakan waktu paling lama untuk dieksekusi sehingga memperlambat panggilan API Anda.
ikon epsilon Epsilon menunjukkan rentang waktu yang lebih kecil dari milidetik.
ikon dinonaktifkan

Dinonaktifkan. Muncul di ikon kebijakan jika kebijakan dinonaktifkan. Kebijakan dapat dinonaktifkan dengan API publik. Lihat Referensi konfigurasi proxy API.

ikon error Error. Muncul di ikon kebijakan saat kondisi Langkah Kebijakan dievaluasi ke false (lihat Variabel dan kondisi flow), atau pada ikon kebijakan RaiseFault setiap kali kebijakan RaiseFault dijalankan.
ikon dilewati Dilewati. Muncul di ikon kebijakan saat kebijakan tidak dijalankan karena langkah yang dievaluasi ke "false". Lihat Variabel dan kondisi flow untuk informasi selengkapnya.

Memahami detail fase

Bagian Detail Fase pada alat ini memberitahukan banyak hal tentang status di setiap langkah pemrosesan. Berikut adalah beberapa detail yang diberikan dalam Detail Fase. Klik ikon apa pun pada alat debug untuk melihat detail langkah yang dipilih, atau gunakan Tombol Next/Kembali untuk berpindah dari satu langkah ke langkah lainnya.

Detail Fase Deskripsi
Endpoint Proxy Menunjukkan alur ProxyEndpoint mana yang dipilih untuk dieksekusi. Proxy API dapat memiliki beberapa endpoint proxy yang bernama.
Variabel

Mencantumkan variabel alur yang telah dibaca dan diberi nilai oleh kebijakan. Lihat Menggunakan variabel alur.

Catatan:

  • Tanda sama dengan (=) menunjukkan nilai yang ditetapkan pada variabel tersebut.
  • Tanda sama dengan yang dicoret (≠) menunjukkan bahwa variabel tersebut tidak dapat diberi a nilai karena bersifat hanya baca atau ada kesalahan dalam eksekusi kebijakan.
  • Kolom kosong menunjukkan bahwa nilai variabel telah dibaca.
Header Permintaan Mencantumkan header permintaan HTTP.
Minta Konten Menampilkan isi permintaan HTTP.
Properti Properti mewakili status internal proxy API. Hal ini tidak ditunjukkan oleh secara default.
Endpoint Target Menunjukkan TargetEndpoint mana yang dipilih untuk dieksekusi.
Header Respons Mencantumkan header respons HTTP.
Konten Tanggapan Menampilkan isi respons HTTP.
PostClientFlow Menampilkan informasi tentang PostClientFlow, yang dijalankan setelah permintaan dikembalikan ke aplikasi klien yang meminta. Hanya kebijakan MessageLogging yang dapat dilampirkan ke PostClientFlow. PostClientFlow saat ini digunakan terutama untuk mengukur waktu interval antara stempel waktu awal dan akhir untuk pesan respons.

API Apigee

Untuk membuat sesi debug menggunakan API, kirimkan permintaan POST ke referensi:

https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/debugsessions

Secara opsional, Anda dapat:

  • Tetapkan durasi sesi debug (dalam detik) dengan meneruskan properti timeout sebagai parameter kueri atau dalam isi permintaan. Jika keduanya ditentukan, nilai timeout yang ditentukan dalam isi permintaan akan diprioritaskan.
  • Filter data dalam sesi debug dengan meneruskan properti filter dalam isi permintaan.

Contoh berikut menunjukkan cara membuat sesi debug menggunakan API.

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions" \
  -X POST \
  -H "Authorization: Bearer $TOKEN"

Jika $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan di Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk deskripsi tentang variabel lingkungan yang digunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

Berikut ini contoh responsnya:

{
  "name":"56382416-c4ed-4242-6381-591bbf2788cf",
  "validity":300,
  "count":10,
  "tracesize":5120,
  "timeout":"600"
}

Permintaan berikutnya ke proxy API Anda (hingga durasi sesi atau jumlah permintaan maksimum tercapai) akan dievaluasi dan berpotensi disimpan dalam data sesi debug.

Untuk mengetahui informasi selengkapnya, lihat Membuat API sesi debug.

Menyetel durasi sesi debug menggunakan API

Untuk menyetel durasi sesi debug menggunakan API, sertakan baris berikut sebagai payload dalam debug Anda permintaan pembuatan sesi:

{
  "timeout":"debug_session_length_in_seconds"
}

Contoh berikut membuat sesi debug yang berdurasi hanya 42 detik:

curl https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions"
  -X "POST" \
  -H "Authorization: Bearer $TOKEN" \
  -d ' {
    "timeout":"42"
  } '

Anda dapat menetapkan timeout sesi hanya dalam permintaan pembuatan sesi debug; kamu tidak bisa mengubah durasi sesi setelah Anda membuat sesi.

Nilai default timeout adalah 300 (5 menit). Nilai maksimum adalah 600 detik (10 menit).

Melakukan debug dengan alat debug

Debug memungkinkan Anda melihat banyak detail internal tentang proxy API. Contoh:

  • Anda dapat melihat sekilas kebijakan mana yang dijalankan dengan benar atau gagal.
  • Katakanlah Anda melihat melalui salah satu dasbor Analytics bahwa salah satu API Anda mengalami penurunan performa yang tidak biasa. Sekarang, Anda dapat menggunakan Debug untuk membantu mengidentifikasi tempat terjadinya bottleneck. Debug memberikan waktu, dalam milidetik, yang diperlukan untuk setiap pemrosesan data. Jika menganggap satu langkah memakan waktu terlalu lama, Anda dapat melakukan korektif tindakan.
  • Anda dapat memeriksa {i>header<i} yang dikirim ke backend, melihat variabel yang ditetapkan oleh kebijakan, dan sebagainya.
  • Dengan memverifikasi jalur dasar, Anda dapat memastikan bahwa kebijakan mengarahkan pesan ke server yang benar.

Memfilter data dalam sesi debug

Saat membuat sesi debug, Anda dapat menambahkan filter ke sesi tersebut sehingga Apigee hanya menampilkan data yang Anda inginkan. Filter adalah pernyataan kondisional yang dievaluasi oleh Apigee berdasarkan pesan permintaan dan respons untuk menentukan apakah data debugnya harus disertakan dalam sesi debug. Misalnya, Anda dapat memfilter semua permintaan dengan permintaan HTTP yang kurang dari 599 atau membandingkan nilai dalam permintaan dengan variabel kustom.

Perhatikan hal berikut:

  • Permintaan yang tidak disertakan dalam sesi debug karena difilter tidak dihitung menuju jumlah maksimum transaksi dalam sesi debug.
  • Apigee tidak mendukung penambahan filter di string kueri.
  • Anda tidak dapat menambahkan filter ke sesi debug setelah sesi dimulai. Untuk menambahkan filter, Anda harus membuat sesi debug.

Menggunakan filter

Gunakan filter saat membuat sesi debug menggunakan UI atau API Apigee, seperti yang dijelaskan di bagian berikut.

UI Apigee Klasik

Saat membuat sesi debug di UI, dalam menu drop-down Filter, Anda dapat memilih setelan standar filter untuk diterapkan di panel Mulai sesi debug atau pilih Filter Kustom dan buat versi Anda sendiri dengan sintaksis filter.

API Apigee

Untuk membuat sesi debug dengan filter menggunakan API, sertakan yang berikut ini sebagai payload dalam sesi debug Anda permintaan pembuatan:

{
  "filter":"filter_body"
}

Untuk informasi tentang cara membuat filter, lihat Sintaksis filter.

Contoh berikut membuat sesi debug yang hanya menyertakan transaksi dengan header A sama dengan 42 dan header B sama dengan 43, atau kode kesalahannya adalah ExpectedEOF:

curl -H "Authorization: Bearer $TOKEN" -X "POST"
  https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions
  -d ' {
    "filter":"(request.header.A == '42' && request.header.B == '43') || fault.code == 'jsonparser.ExpectedEOF'"
  } '

Anda hanya dapat menentukan filter dalam permintaan pembuatan sesi debug; Anda tidak dapat menambahkan filter ke sesi debug yang ada, dan Anda tidak dapat menghapus filter dari sesi debug aktif.

Filter sintaksis

Filter mendukung sintaksis yang sama dengan yang digunakan oleh kondisi Apigee, seperti yang dijelaskan di Referensi kondisi. Hal ini mencakup:

Selain itu, filter dapat mengakses semua variabel alur yang dijelaskan dalam Referensi variabel flow serta variabel kustom. Contoh berikut hanya menunjukkan beberapa variabel alur yang mungkin dapat Anda gunakan dalam filter:

# Response codes:
  response.status.code <= 599
  response.status.code >=301 && response.status.code <=420

# Requests/responses:
  request.verb == "GET"
  request.header.A == 'B' || request.queryparam.X == 'Y'

# Query parameters:
  request.queryparam.myparam == 'fish'
  (request.queryparam.param1 == 'X' || request.queryparam.param2 == 'Y') && request.queryparam.param3 == 'Z'

# Faults:
  fault.code != 'messaging.runtime.RouteFailed'
  fault.name == 'IPDeniedAccess'

Untuk informasi tentang penggunaan variabel khusus, lihat Cara menggunakan atribut khusus di Apigee di Komunitas Apigee.

Filter UI standar

UI Apigee menyediakan serangkaian filter umum sehingga Anda tidak perlu menulis filter kustom Anda sendiri. Filter standar diringkas dalam tabel berikut.

Nama Filter Deskripsi
Response Time Greater Than

Memeriksa masalah latensi saat:

  • target.duration adalah latensi target, atau jumlah waktu, di milidetik, yang dibutuhkan untuk mengirim permintaan ke dan yang diterima dari target (dihitung sebagai selisih antara target.received.end.timestamp dan target.sent.start.timestamp)
  • client.duration adalah latensi klien, atau jumlah waktu, dalam milidetik, yang dibutuhkan oleh permintaan untuk dikirim ke dan diterima dari klien (dihitung sebagai selisih antara client.received.end.timestamp dan client.sent.start.timestamp)

Contoh:

target.duration > 420 && client.duration > 1000

Untuk informasi selengkapnya, lihat client dan target di Referensi variabel flow.

Response Code

Memeriksa apakah kode respons HTTP cocok dengan nilai yang ditentukan; misalnya:

response.status.code <= 599
Header

Memeriksa apakah header permintaan yang ditentukan sama dengan nilai yang ditentukan; untuk contoh:

request.header.cache-control.1 == "16544"
Path

Memeriksa apakah permintaan cocok dengan jalur yang ditentukan. Anda dapat menggunakan pencocokan karakter pengganti di value; misalnya:

request.path == /myproxy/customer/4*
Query Param

Memeriksa apakah parameter kueri permintaan yang ditentukan sama dengan nilai yang ditentukan; untuk contoh:

request.queryparam.lang == "language:en-us"
Custom

Memungkinkan Anda menyisipkan ekspresi Anda sendiri. Anda dapat menggunakan objek apa pun di Referensi variabel flow dan sintaksis dalam Referensi kondisi. Selain itu, Anda dapat menggunakan variabel kustom.

Untuk informasi selengkapnya tentang cara membuat filter kustom, lihat Sintaksis filter.

 

Melihat sesi debug

Apigee menyimpan data sesi debug selama 24 jam. Anda tidak dapat mengonfigurasi nilai ini; setelah 24 jam, data tersebut tidak akan tersedia lagi. Sebelum waktu tersebut, Anda dapat melihat sesi debug.

Lihat sesi debug terbaru menggunakan UI atau API Apigee, seperti yang dijelaskan di bagian berikut.

Editor Proxy Baru

Untuk melihat sesi debug menggunakan New Proxy Editor:

  1. Jika Anda menggunakan UI Apigee di Konsol Cloud: Pilih Pengembangan proxy > Proxy API.

    Jika Anda menggunakan UI Apigee klasik: Pilih Develop > Proxy API Di panel Proxies, pilih lingkungan untuk proxy yang ingin di-debug.

  2. Pilih proxy yang ingin Anda debug.
  3. Klik tab Debug.
  4. Sesi debug terbaru menampilkan daftar sesi debug yang tersedia.
  5. Klik link untuk sesi yang ingin Anda lihat.

Editor Proxy Klasik

Untuk melihat sesi debug menggunakan Editor Proxy Klasik:

  1. Login ke UI Apigee.
  2. Pilih Proxy API dari tampilan utama.
  3. Pilih proxy yang ingin Anda debug.
  4. Klik tab Debug di kanan atas Deployment {i>view<i}.
  5. Di panel Sesi debug terbaru:
    1. Dari menu drop-down Env, pilih lingkungan proxy API sesi {i>debug<i} yang ingin Anda lihat.
    2. Dari menu drop-down Rev, pilih nomor revisi API yang sesi debugnya ingin Anda lihat.

    UI Apigee menampilkan daftar sesi debug yang tersedia.

  6. Klik link untuk sesi yang ingin Anda lihat.

    UI Apigee memuat sesi debug dan mengisi Kirim Permintaan yang berisi data debug.

Memilih opsi tampilan di UI

Di UI Apigee, Anda dapat memilih opsi tampilan untuk sesi debug.

daftar opsi tampilan

Opsi Deskripsi
Tampilkan Kebijakan yang Dinonaktifkan Tampilkan kebijakan yang dinonaktifkan. Kebijakan dapat dinonaktifkan dengan API publik. Lihat Referensi konfigurasi proxy API.
Tampilkan Fase yang Dilewati Menampilkan fase yang dilewati. Fase yang dilewati terjadi saat kebijakan tidak dijalankan karena kondisi langkah yang dievaluasi adalah false (salah). Lihat Kondisi dengan variabel alur untuk informasi selengkapnya.
Tampilkan semua FlowInfos Merepresentasikan transisi dalam segmen alur.
Membandingkan Fase yang Dipilih Secara Otomatis Membandingkan fase yang dipilih dengan fase sebelumnya. Nonaktifkan untuk melihat yang dipilih saja fase sebelumnya.
Tampilkan Variabel Menampilkan atau menyembunyikan variabel yang telah dibaca dan/atau diberi nilai.
Tampilkan Properti Properti mewakili status internal proxy API. (Tersembunyi secara default.)

API Apigee

Dengan menggunakan API, Anda dapat:

Melihat semua sesi debug menggunakan API

Untuk melihat semua sesi debug terbaru yang ditetapkan untuk revisi proxy API di suatu lingkungan, keluarkan permintaan GET ke resource berikut:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions

Atau, Anda dapat menentukan salah satu parameter kueri berikut untuk mengontrol jumlah data dikembalikan:

  • pageSize: Jumlah maksimum sesi debug yang akan dicantumkan. Ukuran halaman default adalah 25.
  • pageToken: Token halaman, yang ditampilkan dari panggilan sebelumnya, yang bisa Anda gunakan untuk mengambil halaman berikutnya.

Contoh berikut menunjukkan cara melihat sesi debug untuk revisi 1 dari Proxy API helloworld di lingkungan test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Jika $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan di Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk deskripsi tentang variabel lingkungan yang digunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

Respons mencakup objek sessions yang berisi daftar sesi debug aktif, seperti yang ditunjukkan dalam contoh berikut:

{
  "sessions": [
    {
      "id": "a423ac73-0902-4cfa-4242-87a353a84d87",
      "timestamp_ms": 1566330186000
    },
    {
      "id": "f1eccbbe-1fa6-2424-83e4-3d063b47728a",
      "timestamp_ms": 1566330286000
    }
  ]
}

Hanya sesi debug yang berisi setidaknya satu transaksi yang disertakan dalam respons; debug sesi yang tidak memiliki transaksi apa pun tidak termasuk dalam daftar ini.

Untuk informasi selengkapnya, lihat Daftar Debug Session API.

Melihat semua transaksi untuk sesi debug menggunakan API

Untuk melihat daftar transaksi untuk sesi debug, kirimkan permintaan GET ke resource berikut:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

Dengan debugsession adalah ID sesi debug yang ditampilkan saat Anda melihat sesi debug.

Contoh berikut menunjukkan cara melihat transaksi untuk sesi debug untuk revisi 1 dari helloworld API di lingkungan test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Jika $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan di Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk deskripsi tentang variabel lingkungan yang digunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

Respons mencakup array ID transaksi, seperti yang ditunjukkan pada contoh berikut:

[
  "myorg-test-ver-5qxdb-64",
  "myorg-test-ver-5qxdb-65",
  "myorg-test-ver-5qxdb-66",
  "myorg-test-ver-5qxdb-67",
  "myorg-test-ver-5qxdb-68",
  "myorg-test-ver-5qxdb-69",
  "myorg-test-ver-5qxdb-70",
  "myorg-test-ver-5qxdb-71",
  "myorg-test-ver-5qxdb-72"
]

Untuk informasi selengkapnya, lihat Mencantumkan API data sesi debug.

Melihat data transaksi untuk sesi debug menggunakan API

Untuk melihat data transaksi sesi debug, kirimkan permintaan GET ke resource berikut:

https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/debugsessions/{debugsession}/data/{transactionId}

Dengan debugsession adalah ID sesi debug yang ditampilkan saat Anda melihat sesi debug dan transactionId adalah ID transaksi yang ditampilkan saat Anda Melihat daftar transaksi untuk sesi debug.

Data transaksi yang disimpan selama sesi debug diformat dalam JSON. Anda dapat memuat data ini dengan Alat Debug Offline.

Contoh berikut menunjukkan cara mendownload data transaksi untuk sesi debug untuk revisi 1 dari helloworld API di lingkungan test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data/myorg-test-ver-5qxdb-64" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Jika $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan di Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk deskripsi tentang variabel lingkungan yang digunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

Respons terdiri dari payload JSON yang berisi data untuk hal yang ditentukan transaksi, seperti yang dijelaskan di Download struktur data.

Data debug berisi semua informasi tentang permintaan dan respons untuk masing-masing sebagai bagian dari alur dalam format JSON eksklusif. Anda dapat menyimpan data ini dan menggunakannya nanti di Alat Debug Offline.

Jika tidak ada permintaan yang ditambahkan ke sesi sebelum sesi berakhir, maka responsnya akan terlihat seperti ini hal berikut:

[]

Untuk mengetahui informasi selengkapnya, lihat Mendapatkan API data sesi debug.

Mendownload data sesi debug

Anda dapat mendownload file hasil debug mentah untuk dilihat secara offline. Yang didownload menunjukkan detail lengkap sesi debug termasuk isi dari semua {i>header<i}, variabel, dan kebijakan.

Data sesi debug hanya tersedia untuk didownload atau dilihat di UI selama 24 jam. Setelah itu Apigee akan menghapus data sesi tersebut.

Editor Proxy Baru

Untuk mendownload sesi debug saat ini di Proxy Editor baru, klik Download Session di panel kiri tampilan Debug.

Mendownload sesi debug.

Perhatikan bahwa sesi debug dihapus dalam waktu 24 jam setelah sesi selesai, jadi jika Anda ingin melihat sesi debug setelah itu, Anda harus mendownloadnya sebelum tanggal tersebut.

Editor Proxy Klasik

Untuk mendownload data sesi debug saat ini menggunakan Proxy Editor klasik:

  • Sesi aktif: Klik ikon Download ( Ikon download ) di panel Debug details.
  • Sesi sebelumnya: Klik nama sesi di bagian Debug terbaru sesi debug, seperti yang dijelaskan dalam Melihat sesi debug. Selanjutnya Klik Ikon download di panel Debug details.

API Apigee

Untuk melihat ID semua transaksi pada sesi debug saat ini menggunakan Apigee API, masukkan berikut:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data

dengan SESSION_ID adalah ID untuk sesi debug yang ingin Anda download.

Lihat Cantumkan ID transaksi dari sesi debug.

Guna mendapatkan data debug untuk transaksi menggunakan Apigee API, masukkan perintah berikut:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data/TRANSACTION_ID

Download struktur data

Struktur download data sesi debug berbeda untuk UI Apigee dan API Apigee.

UI Apigee Klasik

Saat Anda mendownload data menggunakan UI Apigee, struktur data ini:

  • Menyertakan semua transaksi di seluruh sesi
  • Menyimpan transaksi dalam array Messages
  • Menyertakan metadata tentang sesi (sebagai objek DebugSession)

API Apigee

Anda tidak dapat menggunakan Apigee API untuk melihat seluruh sesi data pada satu waktu; kamu hanya bisa menggunakan API untuk melihat data transaksi individual, seperti yang dijelaskan dalam Melihat sesi debug.

Contoh:

{
  "completed": true,
  "point": [
    ...
  ...
}

Mendownload contoh data

Contoh berikut menandai objek metadata DebugSession dalam file yang didownload layanan otomatis dan data skalabel. Objek ini diikuti oleh array Messages yang berisi transaksi dalam sesi panggilan.

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": [
    {
      "completed": true,
      "point": [
        {
          "id": "Paused"
        },
        {
          "id": "Resumed"
        },
        {
          "id": "StateChange",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "To",
                    "value": "REQ_HEADERS_PARSED"
                  },
                  {
                    "name": "From",
                    "value": "REQ_START"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            },
            {
              "ActionResult": "RequestMessage",
              "headers": [
                {
                  "name": "accept",
                  "value": "*/*"
                },
                {
                  "name": "accept-encoding",
                  "value": "gzip,gzip,deflate,br"
                },
                {
                  "name": "content-length",
                  "value": "0"
                },
                {
                  "name": "host",
                  "value": "myorg.example.domain.net"
                },
                {
                  "name": "user-agent",
                  "value": "Google-Apigee"
                },
                {
                  "name": "x-b3-sampled",
                  "value": "0"
                },
                {
                  "name": "x-b3-spanid",
                  "value": "d4ee579206759662"
                },
                {
                  "name": "x-b3-traceid",
                  "value": "adc1e171777c237dd4ee579206759662"
                },
                {
                  "name": "x-forwarded-for",
                  "value": "66.102.8.98"
                },
                {
                  "name": "x-forwarded-proto",
                  "value": "https"
                },
                {
                  "name": "x-request-id",
                  "value": "54e05cba-4242-4490-4242-60c45c156f90"
                }
              ],
              "uRI": "/myproxy",
              "verb": "GET"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "environment.name",
                    "value": "prod"
                  },
                  {
                    "name": "environment.qualifiedname",
                    "value": "myorg__prod"
                  },
                  {
                    "name": "environment.orgname",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "organization.name",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "apiproxy.qualifiedname",
                    "value": "myproxy__1"
                  },
                  {
                    "name": "apiproxy.basepath",
                    "value": "/"
                  },
                  {
                    "name": "apiproxy.revision",
                    "value": "1"
                  },
                  {
                    "name": "apiproxy.name",
                    "value": "myproxy"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        ...
      ...
    }
  ]
}

Jika sesi debug tidak menyertakan permintaan apa pun, array Message akan kosong, seperti yang ditunjukkan contoh berikut:

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": []
}

Menghapus data untuk sesi debug

Hapus data untuk sesi debug menggunakan UI atau API Apigee, seperti yang dijelaskan di bawah bagian.

Editor Proxy Baru

Untuk menghapus sesi debug di Proxy Editor baru:

  1. Pilih baris untuk sesi yang ingin Anda hapus.
  2. Klik menu tiga titik di akhir baris dan pilih Hapus.

Editor Proxy Klasik

Klik Hapus ikon di panel Debug details untuk sesi debug.

API Apigee

Untuk menghapus semua data sesi debug menggunakan API, keluarkan permintaan DELETE ke resource berikut:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

Dengan debugsession adalah ID sesi debug yang ditampilkan saat Anda melihat sesi debug.

Contoh berikut menunjukkan cara menghapus data sesi debug untuk revisi 1 dari helloworld API di lingkungan test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
  -X DELETE \
  -H "Authorization: Bearer $TOKEN"

Jika $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan di Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk deskripsi tentang variabel lingkungan yang digunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

Jika berhasil, isi respons akan kosong.

Data sesi debug hanya disimpan selama 24 jam. Jika Anda tidak menghapusnya secara eksplisit sebelum waktu tersebut, kemudian Apigee akan menghapusnya untuk Anda.