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 yang tidak diambil di UI Edge saat sesi pelacakan 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 menangkap permintaan API di Pelacakan UI Edge:

Cause Deskripsi Petunjuk Pemecahan Masalah yang Berlaku
Permintaan tidak diproses oleh Pemroses Pesan Permintaan API harus diproses oleh Pemroses Pesan 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 Edge Public dan Private Cloud
Proxy API Tidak Ditemukan di Hierarki Klasifikasi Pemroses Pesan Apigee menggunakan definisi Aturan Pemilihan Rute yang disebut Pohon Klasifikasi untuk mengirim permintaan berdasarkan nama host, jalur dasar, revisi, dan lingkungan permintaan masuk. Jika proxy API yang relevan dihapus karena alasan tertentu dari Hierarki Klasifikasi, transaksi Trace mungkin tidak terisi. Pengguna Edge Private Cloud

Penyebab: Permintaan tidak diproses oleh Pemroses Pesan

Diagnosis

Untuk merekam permintaan API dalam sesi Pelacakan, 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 menjangkau Apigee Edge, gagal pada titik entri ke Edge (yaitu, Router) atau gagal sebelum diproses oleh Pemroses Pesan, maka rekaman aktivitas tidak dapat direkam. Masing-masing 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 error berikut:

    Received fatal alert: handshake_failure
    
    HTTP/1.1 400 Bad Request
    

    Anda mungkin juga melihat error sertifikat SSL.

  • Resolusi

    Lihat playbook berikut untuk memecahkan dan menyelesaikan masalah ini:

    Kegagalan Handshake TLS/SSL

    400 Permintaan Buruk - Error Sertifikat SSL

Skenario 3: Permintaan tidak dapat diproses oleh Pemroses Pesan

  • Penyebab

    Dalam skenario ini, Pemroses Pesan Apigee tidak dapat menemukan Proxy API untuk {i>host<i} dan jalur 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

    Lihat playbook ini untuk memecahkan dan mengatasi masalah ini: 404 Tidak dapat mengidentifikasi proxy untuk host.

Penyebab: Proxy API Tidak Ditemukan dalam Hierarki Klasifikasi

Diagnosis

Jika Pemroses Pesan tidak dapat menemukan proxy API di Classification Tree-nya, maka setiap permintaan API ke proxy tersebut tidak akan ditampilkan pada sesi Trace di UI Edge.

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

  1. Login ke setiap Pemroses Pesan dan periksa apakah revisi tertentu dari API yang diminta 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 jika Anda mengalami error HTTP 404 sesekali, Anda mungkin melihat bahwa revisi yang spesifik sudah di-deploy.

  2. Baca Klasifikasi Hierarki 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 di Hierarki Klasifikasi salah satu Pemroses Pesan, ikuti resolusi yang diberikan di bawah ini.

Resolusi

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

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

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. Setelah dimulai ulang, gunakan perintah di bawah untuk menunggu hingga mulai 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 jika Anda mengalami error HTTP 404 sesekali, Anda mungkin melihat bahwa revisi yang spesifik sudah di-deploy.

  4. Baca Classification Tree 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 berlanjut setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut dan bagikan kepada Dukungan Apigee:

Informasi Diagnostik Jenis    Perintah
Output perintah sesi rekaman aktivitas
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 Pengelolaan Server ke Pemroses Pesan
telnet MessageProcessor_IP 8082
nc -vz MessageProcessor_IP 8082
Output perintah netstat pada 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 pada semua Pemroses Pesan
curl -i http://localhost:8082/v1/classification/tree