Permintaan API yang tidak diambil di UI Edge

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Gejala

Gambar berikut menunjukkan permintaan API tidak direkam di UI Edge saat sesi perekaman aktivitas dimulai:

Pesan Error

Tidak ada pesan error yang akan ditampilkan di UI Edge saat masalah ini terjadi.

Kemungkinan Penyebab

Tabel berikut menunjukkan kemungkinan penyebab kegagalan untuk merekam permintaan API di Trace UI Edge:

Cause Deskripsi Petunjuk Pemecahan Masalah Berlaku Untuk
Permintaan yang tidak diproses oleh Pemroses Pesan Permintaan API harus diproses oleh Message Processor komponen Edge untuk menangkap rekaman aktivitas. Jika permintaan API gagal menjangkau Apigee Edge, gagal di titik entri ke Edge (yaitu, Router) atau gagal sebelum diproses oleh Pemroses Pesan, maka rekaman aktivitas tidak dapat direkam. Pengguna Cloud Publik dan Pribadi Edge
Proxy API Tidak Ditemukan di Hierarki Klasifikasi Apigee Message Processors menggunakan definisi Aturan Perutean yang disebut Hierarki Klasifikasi untuk mengirim permintaan berdasarkan nama host, jalur dasar, revisi, dan lingkungan permintaan masuk. Jika proxy API yang relevan dihapus dari Hierarki Klasifikasi karena alasan tertentu, transaksi Trace mungkin tidak terisi. Pengguna Edge Private Cloud

Penyebab: Permintaan yang tidak diproses oleh Pemroses Pesan

Diagnosis

Untuk merekam permintaan API dalam sesi Rekaman Aktivitas, permintaan API harus diproses oleh Pemroses Pesan komponen Edge. Ada beberapa alasan mengapa permintaan API mungkin tidak dicatat dalam transaksi Trace.

Misalnya, jika permintaan API gagal mencapai Apigee Edge, gagal di titik entri ke Edge (yaitu, Router) atau gagal sebelum diproses oleh Pemroses Pesan, maka rekaman aktivitas tidak dapat direkam. Setiap skenario ini diuraikan secara lebih mendetail di bawah ini.

Skenario 1: Permintaan gagal menjangkau Apigee Edge

  • Penyebab

    Dalam skenario ini, error mungkin disebabkan oleh resolusi DNS atau masalah konektivitas jaringan. Jika demikian, Anda mungkin melihat error berikut saat menjalankan perintah ini:

    curl https://hostName:port/apiProxyBasePath/requestPath
    
    curl: (6) Could not resolve host: hostName
    
  • Resolusi

    Anda dapat memverifikasi konfigurasi DNS dengan perintah berikut:

    dig hostName

    Anda dapat memverifikasi konektivitas jaringan dengan perintah berikut:

    telnet hostName port

Skenario 2: Permintaan gagal di Router Apigee Edge

  • Penyebab

    Dalam skenario ini, error mungkin disebabkan oleh kegagalan handshake TLS/SSL. Jika demikian, Anda mungkin melihat salah satu dari error berikut:

    Received fatal alert: handshake_failure
    
    HTTP/1.1 400 Bad Request
    

    Anda juga mungkin melihat error sertifikat SSL.

  • Resolusi

    Lihat playbook berikut untuk memecahkan dan menyelesaikan masalah ini:

    Kegagalan Handshake TLS/SSL

    Permintaan 400 Buruk - Error Sertifikat SSL

Skenario 3: Permintaan tidak dapat diproses oleh Pemroses Pesan

  • Penyebab

    Dalam skenario ini, Apigee Message Processor tidak dapat menemukan Proxy API untuk jalur dan host virtual yang ditentukan. Akibatnya, Anda mungkin melihat salah satu error berikut:

    HTTP/1.1 404 Not Found
    
    {
      "fault":{
        "faultstring":"Unable to identify proxy for host: default and url: \/apiProxyBasePath/requestPath",
        "detail":{
          "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"
        }
      }
    }
    
    
  • Resolusi

    Baca playbook ini untuk memecahkan masalah dan menyelesaikan masalah ini: 404 Can to Identify proxy for host.

Penyebab: Proxy API Tidak Ditemukan di Hierarki Klasifikasi

Diagnosis

Jika Pemroses Pesan tidak dapat menemukan proxy API di Hierarki Klasifikasinya, permintaan API apa pun ke proxy spesifik tersebut tidak akan ditampilkan di sesi Trace di UI Edge.

Ikuti langkah-langkah di bawah untuk menentukan apakah hal ini yang terjadi:

  1. Login ke setiap Pemroses Pesan, lalu periksa apakah revisi spesifik dari API yang diminta telah di-deploy di lingkungan Pemroses Pesan yang relevan menggunakan perintah berikut:

    curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
    

    Contoh Output:

    Perintah di atas akan menampilkan daftar revisi yang di-deploy. Misalnya, jika revisi 12 di-deploy, Anda akan melihat output berikut:

    [ "12" ]
    

    Kecuali Anda mengalami error HTTP 404 yang berselang-seling, kemungkinan besar revisi tertentu telah diterapkan.

  2. Baca Hierarki Klasifikasi dan periksa keberadaan nama proxy API menggunakan perintah berikut:

    curl -i http://localhost:8082/v1/classification/tree | grep apiName
    
  3. Ulangi Langkah 1 dan 2 untuk setiap Pemroses Pesan. Jika nama proxy API yang diberikan tidak ada dalam Hierarki Klasifikasi Prosesor Pesan mana pun, ikuti resolusi yang diberikan di bawah ini.

Resolusi

Ikuti langkah-langkah di bawah untuk menyelesaikan masalah ini. Pastikan untuk melakukan tindakan pencegahan yang diperlukan untuk menghindari gangguan produksi yang mungkin terjadi saat memulai ulang Prosesor Pesan saat mengalami pemuatan permintaan yang tinggi.

  1. Login ke setiap host Pemroses Pesan yang tidak memiliki proxy API tertentu di Hierarki Klasifikasi dan gunakan perintah di bawah untuk memulai ulang Pemroses Pesan:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. Setelah dimulai ulang, gunakan perintah di bawah ini untuk menunggu hingga menjadi aktif:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
    
  3. Setelah Pemroses Pesan siap, verifikasi ketersediaan proxy API menggunakan perintah berikut:

    curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
    

    Contoh Output:

    Perintah di atas akan menampilkan daftar revisi yang di-deploy. Misalnya, jika revisi 12 di-deploy, Anda akan melihat output berikut:

    [ "12" ]
    

    Kecuali Anda mengalami error HTTP 404 yang berselang-seling, kemungkinan besar revisi tertentu telah diterapkan.

  4. Baca Hierarki Klasifikasi dan verifikasi keberadaan nama proxy API menggunakan perintah berikut:

    curl -i http://localhost:8082/v1/classification/tree | grep apiName
    

    Jika masalah masih berlanjut, buka Harus Mengumpulkan Informasi Diagnostik.

Harus Mengumpulkan Informasi Diagnostik

Jika masalah terus berlanjut setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut dan bagikan kepada Dukungan Apigee Edge:

Informasi Diagnostik Jenis    Perintah
Output perintah sesi pelacakan
curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user
Log Server Pengelolaan
/opt/apigee/var/log/edge-management-server/logs/system.log
Log Pemroses Pesan
/opt/apigee/var/log/edge-message-processor/logs/system.log
Output perintah telnet/netcat dari Server Pengelolaan ke Pemroses Pesan
telnet MessageProcessor_IP 8082
nc -vz MessageProcessor_IP 8082
Output perintah netstat di Pemroses Pesan
netstat -an > netstat.txt
Revisi listingan output yang di-deploy untuk Proxy API tertentu di semua Pemroses Pesan
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
Output Hierarki Klasifikasi di semua Prosesor Pesan
curl -i http://localhost:8082/v1/classification/tree