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:
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:
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.
Baca Klasifikasi Hierarki dan periksa keberadaan nama proxy API menggunakan perintah berikut:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
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.
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
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
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.
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 |