Menggunakan Debug

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

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

Gunakan Offline Debug untuk melihat dan menganalisis sesi debug yang sebelumnya didownload.

Membuat sesi debug

Saat membuat sesi debug, Anda dapat 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 APIgee UI in Cloud Console: Pilih Pengembangan proxy > Proxy API.

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

  2. Pilih proxy API yang ingin Anda debug. Tindakan ini akan menampilkan tampilan Overview Proxy Editor.

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

    Memulai dialog sesi debug.

    Dalam dialog:

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

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

    3. Klik Start.

UI Apigee kini menampilkan tampilan Debug session in progress.

Sesi debug sedang berlangsung

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

Informasi apa pun tidak akan ditampilkan di panel Debug hingga Anda mengirimkan permintaan ke proxy yang sedang di-debug di lingkungan yang dipilih. untuk sesi debug.

Setelah Anda mengirim permintaan, permintaan tersebut akan ditampilkan di bagian bawah panel sebelah kiri.

Memulai dialog sesi debug.

Catatan: Selama sesi debug aktif, Anda dapat memulai sesi lainnya di UI Apigee. Untuk melakukannya, cukup klik Mulai Sesi Debug lagi.

Melihat diagram Gantt untuk transaksi

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

Tindakan ini akan menampilkan Diagram Gantt di panel sebelah kanan yang menunjukkan langkah-langkah dalam permintaan dan respons.

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

Sumbu horizontal diagram menunjukkan waktu saat setiap langkah terjadi, yang diukur dalam milidetik. Setiap langkah ditunjukkan dengan persegi panjang yang memanjang dari waktu mulai hingga waktu berakhir langkah.

Anda dapat menjalankan sesi debug menggunakan tombol Back dan Next di kanan bawah panel debug. Mengklik:

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

Dalam 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 Anda mengklik kebijakan Add CORS, Anda akan melihat detail seperti yang ditampilkan di bawah ini dan ditampilkan di sebelah diagram Gantt.

Tambahkan detail kebijakan CORS.

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

Melihat tab Pengembangan dalam kaitannya 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 saat Anda menampilkan sesi debug kepada mereka. Link ini hanya valid selama 24 jam setelah sesi debug dibuat.

Mendownload sesi debug

Setelah sesi debug selesai, Anda dapat mendownloadnya sehingga dapat menganalisisnya nanti dalam alat Debug Offline. Untuk melakukannya, klik Download Sesi di panel sebelah kiri.

Download sesi debug.

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

Saat Anda mendownload sesi debug, nama file download akan memiliki bentuk '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 API Proxy 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 akan menampilkan:

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

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

      Memulai panel sesi debug

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

      Untuk mengetahui informasi tentang cara menggunakan filter, lihat Menggunakan filter dalam sesi debug. Untuk 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 masih harus mengirim permintaan sebelum ada data untuk dikumpulkan.

      Dari panel Debug details, Anda dapat melakukan hal berikut:

      Ikon Fungsi Deskripsi
      Ikon download Download Download data debug sesi aktif, yang kemudian dapat Anda lihat secara offline.
      Ikon kembali Kembali Kembali ke panel sebelumnya, tempat Anda dapat memulai sesi debug lainnya. Sesi debug saat ini akan berlanjut hingga waktu tunggu habis atau jumlah transaksinya tercapai.
      Ikon hapus Hapus Hapus data sesi debug yang saat ini dipilih. Tindakan ini akan menghapus data sesi, tetapi tidak menghentikan sesi.

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

      Jam mulai berjalan segera setelah Anda mengklik Start Debug Session, sehingga Anda dapat memilih untuk menunggu hingga langkah berikutnya, sebelum mengklik Start Debug Session untuk memaksimalkan jumlah data yang dikumpulkan.

  6. Di panel Send Requests:
    1. Di kolom URL, masukkan endpoint yang ingin Anda kirimi permintaan. Opsional, tambahkan parameter string kueri ke URL. Anda tidak dapat mengirimkan permintaan selain GET.
      Cara menemukan URL endpoint
      1. Buka Admin > Lingkungan > Grup
      2. URL-nya adalah Nama host untuk lingkungan masing-masing tempat Anda ingin menjalankan sesi debug.
    2. Panel Send Requests hanya menampilkan data untuk permintaan berbasis UI. Namun, perlu diketahui bahwa debug tersebut juga mencatat data untuk permintaan yang tidak dimulai oleh UI.

    3. Klik Kirim.

      Apigee mengirim permintaan ke URL yang ditentukan. Setiap kali Anda mengklik Send, UI Apigee akan mencatat permintaan ke dalam log di panel Debug details.

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

      Permintaan debug yang diambil

      Klik Salin untuk menyalin ID debug untuk referensi atau kueri di masa mendatang.

      Selain itu, UI menampilkan data debug di bagian Peta Transaksi dan Detail Fase pada panel Kirim Permintaan, serta mengisi bagian Endpoint Proxy, Header Permintaan, Konten Permintaan, dan Properti, seperti yang ditunjukkan contoh berikut:

      Permintaan debug yang diambil

      Untuk informasi selengkapnya tentang fase, peta transaksi, dan bagian lain dari tampilan Send Requests, lihat Cara membaca debug.

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

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

Memulai sesi debug lain di UI

Selama sesi debug aktif, Anda dapat memulai sesi lain di UI Apigee. Untuk melakukannya, klik ikon back arrow () di panel Debug details:

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

Kapan sesi debug berakhir?

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

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

  • timeout:Lamanya waktu Anda mengumpulkan data selama sesi. Durasi default bergantung pada cara Anda memulai sesi (melalui UI atau API). Nilai maksimumnya adalah 600 detik (atau 10 menit).
  • count: Jumlah maksimum permintaan yang dicatat dalam satu sesi per Pemroses Pesan. Karena jumlah Pemroses Pesan di sebagian besar cluster adalah variabel, efek jumlah tersebut tidak dapat diprediksi. Apigee tidak merekomendasikan penyesuaian setelan ini.

Setelah waktu tunggu habis atau jumlah tercapai, sesi debug untuk Pemroses Pesan tersebut akan berakhir.

Istilah berikut digunakan untuk menjelaskan status sesi debug:

  • sesi aktif adalah sesi debug yang belum mencapai waktu tunggunya atau melampaui hitungannya. Sesi aktif masih mencatat data permintaan untuk permintaan yang tidak difilter.
  • sesi selesai adalah sesi debug yang telah mencapai waktu tunggu habis atau melampaui hitungannya; sesi yang telah selesai tidak lagi mencatat data tentang permintaan baru dan datanya akan 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 langkah penting yang terjadi selama transaksi proxy API, termasuk eksekusi kebijakan, langkah bersyarat, dan transisi. Arahkan kursor ke ikon mana pun untuk melihat informasi ringkasan. Langkah-langkah alur permintaan muncul di sepanjang bagian atas peta transaksi dan langkah alur respons di sepanjang bagian bawah.
  • Bagian detail fase pada alat ini mencantumkan informasi tentang pemrosesan internal proxy, termasuk variabel yang ditetapkan atau dibaca, header permintaan dan respons, serta masih 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 guna memulai respons 
          target untuk memulai respons proxy guna memulai alur klien pasca proxy

Legenda peta transaksi

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

Ikon peta transaksi

ikon aplikasi klien Aplikasi klien yang mengirimkan permintaan ke ProxyEndpoint proxy API.
ikon endpoint transisi Lingkaran tersebut menandai titik akhir transisi dalam alur proxy. Sinyal ini ada saat permintaan datang dari klien, saat permintaan masuk ke target, saat respons kembali dari target, dan saat respons kembali ke klien.
ikon segmen alur

Batang tinggi menunjukkan awal segmen alur dalam alur proxy API. Segmen alur adalah: permintaan ProxyEndpoint, permintaan TargetEndpoint, respons TargetEndpoint, dan respons ProxyEndpoint. Segmennya mencakup PreFlow, Alur Bersyarat, dan PostFlow.

Lihat Mengonfigurasi alur untuk mengetahui informasi selengkapnya.

ikon analisis

Menunjukkan bahwa tindakan Analytics telah terjadi di latar belakang.

ikon kondisi benar

Alur bersyarat yang bernilai benar (true). Untuk pengantar flow bersyarat, lihat Mengonfigurasi flow.

Perhatikan, beberapa kondisi dihasilkan Apigee. Misalnya, berikut ini adalah ekspresi yang digunakan Apigee untuk memeriksa apakah terjadi error di ProxyEndpoint:

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

Alur kondisional yang bernilai salah (false). Untuk pengantar flow bersyarat, lihat Mengonfigurasi flow.

Perhatikan, beberapa kondisi dihasilkan Apigee. Misalnya, berikut ini adalah ekspresi yang digunakan Apigee untuk memeriksa apakah terjadi error di 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 yang unik. Ini ditujukan untuk kebijakan AssignMessage. Ikon ini memungkinkan Anda melihat di mana kebijakan dijalankan dalam urutan yang benar dan apakah kebijakan berhasil atau tidak. Anda dapat mengklik ikon kebijakan untuk melihat hasil eksekusinya dan apakah hasil tersebut diharapkan atau tidak. Misalnya, Anda dapat melihat apakah pesan telah diubah dengan benar atau telah di-cache.

Eksekusi kebijakan yang benar ditunjukkan secara jelas dengan tanda centang. Jika terjadi error, tanda seru berwarna merah akan ditampilkan pada ikon.

ikon server Target backend yang dipanggil oleh proxy API.
ikon milidetik Garis waktu menunjukkan berapa lama (dalam milidetik) waktu pemrosesan yang diperlukan hingga selesai. Membandingkan segmen waktu yang berlalu akan membantu Anda mengisolasi kebijakan yang memerlukan waktu paling lama untuk dijalankan, yang memperlambat panggilan API Anda.
ikon epsilon Epsilon menunjukkan rentang waktu yang lebih kecil dari satu milidetik.
ikon dinonaktifkan

Dinonaktifkan. Muncul di ikon kebijakan saat 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 jika kebijakan tidak dijalankan karena kondisi langkah yang dievaluasi adalah false. Lihat Variabel dan kondisi alur untuk informasi selengkapnya.

Memahami detail fase

Bagian Phase Details pada alat ini menunjukkan banyak hal tentang status proxy Anda pada setiap langkah pemrosesan. Berikut adalah beberapa detail yang disediakan dalam Detail Fase. Klik ikon apa pun di alat debug untuk melihat detail langkah yang dipilih, atau gunakan tombol Berikutnya/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 dibaca dan diberi nilai oleh kebijakan. Lihat juga Menggunakan variabel alur.

Catatan:

  • Tanda sama dengan (=) menunjukkan nilai yang ditetapkan ke variabel.
  • Tanda sama dengan (≠) dicoret menunjukkan bahwa variabel tidak dapat diberi nilai karena bersifat hanya baca atau terjadi error dalam eksekusi kebijakan.
  • Bidang 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. Keduanya tidak ditampilkan 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 ditampilkan ke aplikasi klien yang meminta. Hanya kebijakan MessageLogging yang dapat dilampirkan ke PostClientFlow. PostClientFlow saat ini digunakan terutama untuk mengukur interval waktu antara stempel waktu mulai dan akhir untuk pesan respons.

API Apigee

Untuk membuat sesi debug menggunakan API, berikan permintaan POST ke resource berikut:

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 lebih 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"

Dengan $TOKEN ditetapkan ke token akses OAuth 2.0, seperti yang dijelaskan dalam 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 Apigee API.

Berikut ini memberikan contoh respons:

{
  "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 maksimum permintaan tercapai) akan dievaluasi dan berpotensi disimpan dalam data sesi debug.

Untuk mengetahui informasi selengkapnya, lihat Membuat API sesi debug.

Menetapkan durasi sesi debug menggunakan API

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

{
  "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 hanya dapat menyetel timeout sesi dalam permintaan pembuatan sesi debug; Anda tidak dapat mengubah durasi sesi setelah membuat sesi.

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

Proses 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.
  • Misalkan 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 lokasi terjadinya bottleneck. Debug memberikan waktu, dalam milidetik, yang diperlukan untuk menyelesaikan setiap langkah pemrosesan. Jika Anda mendapati bahwa satu langkah memakan waktu terlalu lama, Anda dapat melakukan tindakan korektif.
  • Anda dapat memeriksa header 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 Apigee terhadap pesan permintaan dan respons untuk menentukan apakah data debug-nya harus disertakan dalam sesi debug. Misalnya, Anda dapat memfilter semua permintaan dengan kode respons HTTP yang kurang dari 599 atau membandingkan nilai dalam permintaan dengan variabel kustom.

Perhatikan hal-hal berikut:

  • Permintaan yang tidak disertakan dalam sesi debug karena difilter tidak mengurangi jumlah transaksi maksimum dalam sesi debug.
  • Apigee tidak mendukung penambahan filter dalam 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

Saat membuat sesi debug di UI, di menu drop-down Filter, Anda dapat memilih filter standar untuk diterapkan di panel Mulai sesi debug atau memilih Filter Kustom, lalu membuat filter Anda sendiri menggunakan sintaksis filter.

API Apigee

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

{
  "filter":"filter_body"
}

Untuk mengetahui informasi tentang cara membuat filter, lihat Sintaksis filter.

Contoh berikut membuat sesi debug yang hanya menyertakan transaksi yang 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 yang aktif.

Filter sintaksis

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

Selain itu, filter dapat mengakses semua variabel alur yang dijelaskan dalam Referensi variabel alur serta variabel kustom. Contoh berikut hanya menunjukkan beberapa kemungkinan variabel alur yang 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 mengetahui informasi tentang penggunaan variabel kustom, lihat Cara menggunakan atribut khusus di Apigee dalam Komunitas Apigee.

Filter UI yang telah ditentukan sebelumnya

UI Apigee menyediakan sekumpulan filter umum, sehingga Anda tidak perlu menulis filter kustom sendiri. Filter standar seperti yang diringkas dalam tabel berikut.

Nama Filter Deskripsi
Response Time Greater Than

Memeriksa masalah latensi dengan:

  • target.duration adalah latensi target, atau jumlah waktu, dalam milidetik, yang diperlukan oleh permintaan untuk dikirim ke dan 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 diperlukan untuk mengirimkan permintaan 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 dalam 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 ditetapkan; misalnya:

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

Memeriksa apakah permintaan cocok dengan jalur yang ditentukan. Anda dapat menggunakan pencocokan karakter pengganti dalam nilai, misalnya:

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

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

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

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

Untuk informasi selengkapnya tentang pembuatan 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 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 APIgee UI in Cloud Console: Pilih Pengembangan proxy > Proxy API.

    Jika Anda menggunakan Apigee UI klasik: Pilih Develop > API Proxies dan di panel Proxies, pilih lingkungan untuk proxy yang ingin Anda 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 sesi yang ingin Anda lihat.

Editor Proxy Klasik

Untuk melihat sesi debug menggunakan Classic Proxy Editor:

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

    UI Apigee menampilkan daftar sesi debug yang tersedia.

  6. Klik link sesi yang ingin Anda lihat.

    UI Apigee memuat sesi debug dan mengisi panel Send Requests dengan data debug.

Memilih opsi tampilan di UI

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

lihat daftar opsi

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 Tampilkan fase yang dilewati. Fase yang dilewati terjadi ketika kebijakan tidak dijalankan karena kondisi langkah dievaluasi ke false. Lihat Kondisi dengan variabel alur untuk mengetahui informasi selengkapnya.
Tampilkan semua FlowInfos Menampilkan transisi dalam segmen alur.
Bandingkan Fase yang Dipilih Secara Otomatis Membandingkan fase yang dipilih dengan fase sebelumnya. Nonaktifkan setelan ini untuk melihat hanya fase yang dipilih.
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 API ini, Anda dapat:

Melihat semua sesi debug menggunakan API

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

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

Secara opsional, Anda dapat menentukan salah satu parameter kueri berikut untuk mengontrol jumlah data yang ditampilkan:

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

Contoh berikut menunjukkan cara melihat sesi debug untuk revisi 1 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"

Dengan $TOKEN ditetapkan ke token akses OAuth 2.0, seperti yang dijelaskan dalam 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 Apigee API.

Responsnya mencakup objek sessions yang berisi daftar sesi debug yang saat ini aktif, seperti 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; sesi debug yang tidak memiliki transaksi apa pun tidak disertakan dalam daftar ini.

Untuk informasi selengkapnya, lihat List Debug session API.

Melihat semua transaksi untuk sesi debug menggunakan API

Untuk melihat daftar transaksi sesi debug, berikan 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"

Dengan $TOKEN ditetapkan ke token akses OAuth 2.0, seperti yang dijelaskan dalam 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 Apigee API.

Responsnya menyertakan 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 pada 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 di alat Debug Offline.

Contoh berikut menunjukkan cara mendownload data transaksi untuk sesi debug untuk revisi 1 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"

Dengan $TOKEN ditetapkan ke token akses OAuth 2.0, seperti yang dijelaskan dalam 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 Apigee API.

Respons terdiri dari payload JSON yang berisi data untuk transaksi yang ditentukan, seperti yang dijelaskan dalam Mendownload struktur data.

Data debug berisi semua informasi tentang permintaan dan respons untuk setiap bagian alur dalam format JSON eksklusif. Anda dapat menyimpan data ini dan menggunakannya di alat Debug Offline pada lain waktu.

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

[]

Untuk informasi selengkapnya, lihat Mendapatkan API data sesi debug.

Mendownload data sesi debug

Anda dapat mendownload file hasil debug mentah untuk dilihat secara offline. File yang didownload menampilkan detail lengkap sesi debug, termasuk isi semua header, variabel, dan kebijakan.

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

Editor Proxy Baru

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

Download sesi debug.

Perhatikan bahwa sesi debug akan dihapus dalam waktu 24 jam setelah selesai, jadi jika 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:

  • Active session: Klik ikon Download ( Ikon download ) di panel Debug details.
  • Sesi sebelumnya: Klik nama sesi di panel Sesi debug terbaru, seperti yang dijelaskan dalam Melihat sesi debug. Lalu, klik Ikon download di panel Debug details.

API Apigee

Untuk menampilkan ID semua transaksi untuk sesi debug saat ini 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

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

Lihat Mencantumkan ID transaksi dari sesi debug.

Untuk mendapatkan data debug 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 Apigee API.

UI Apigee

Saat Anda mendownload data menggunakan UI Apigee, struktur datanya:

  • 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 data sesi sekaligus; Anda hanya dapat menggunakan API untuk melihat data transaksi individual, seperti yang dijelaskan dalam Melihat sesi debug.

Contoh:

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

Download contoh data

Contoh berikut menyoroti objek metadata DebugSession dalam data yang didownload. Objek ini diikuti dengan array Messages yang berisi transaksi dalam sesi.

{
  "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 bagian berikut.

Editor Proxy Baru

Untuk menghapus sesi debug di Proxy Editor baru:

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

Editor Proxy Klasik

Klik Ikon hapus di panel Debug details untuk sesi debug.

API Apigee

Untuk menghapus semua data sesi debug menggunakan API, berikan 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"

Dengan $TOKEN ditetapkan ke token akses OAuth 2.0, seperti yang dijelaskan dalam 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 Apigee API.

Jika berhasil, isi respons akan kosong.

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