Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Gejala
Data analisis hilang di UI Edge karena server Qpidd tidak mentransfer pesan analisis ke PostgreSQL. Di Edge, komponen edge-qpid-server
sesuai dengan server Qpidd.
Qpidd mempertahankan dua antrean untuk setiap grup analisis:
ax-q-axgroup001-consumer-group-001
Antrean ini menyimpan pesan analisis yang dikirim dari Pemroses dan Router Pesan. Pesan ditarik dari sini oleh
edge-qpid-server
yang mengurai pesan dan memasukkannya ke PostgreSQL. Setelah berhasil diproses, pesan akan dihapus dari antrean.ax-q-axgroup001-consumer-group-001-dl
Antrean ini adalah antrean yang dihentikan pengirimannya. API ini berfungsi sebagai tujuan untuk pesan yang gagal diproses oleh
edge-qpid-server
dan tidak ingin lagi diterima. Kolom ini biasanya terisi saat jumlah pengiriman maksimum terlampaui, atau jika PostgreSQL menolak penyisipan data baru karena error runtime.
Pesan Error
Akar masalah ini dapat disebabkan oleh berbagai error runtime dari komponen edge-qpid-server
. Biasanya, jika menerima error runtime dari PostgreSQL, edge-qpid-server
akan membuat antrean yang dihentikan pengirimannya jika belum ada, lalu mengirim pesan berikut ke sana:
yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.
Kemungkinan Penyebab
Penyebab | Deskripsi | Petunjuk Pemecahan Masalah yang Berlaku Untuk |
---|---|---|
Pesan terjebak dalam antrean huruf mati dari qpidd | edge-qpid-server tidak dapat memahami pesan yang dibacanya dari broker Qpidd atau tidak dapat mempertahankan pesan ke PostgreSQL.
|
Pengguna Edge Private Cloud |
Langkah-Langkah Diagnosis Umum
Jalankan perintah berikut untuk melihat statistik antrean Qpidd:
qpid-stat -q
Outputnya akan menampilkan serangkaian antrean yang terdaftar pada broker. Jika antrean dengan nama berakhiran "-dl" memiliki pesan yang terisi, maka ada pesan yang terjebak di antrean surat yang mati.
Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ======================================================================================================================== ax-q-axgroup-001-consumer-group-001 Y 0 185 185 0 13.8m 13.8m 6 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 70 70 0 3.9m 3.9m 0 2
Penyebab: Pesan terjebak dalam antrean huruf qpidd mati
Diagnosis
Kondisi ini dapat terjadi dalam skenario berikut:
- Upgrade telah terjadi sebelumnya, dan selama periode tersebut PostgreSQL tidak aktif.
- Gangguan sementara PostgreSQL karena masalah jaringan.
edge-qpid-server
mencoba mengirim pesan ke PostgreSQL, tetapi PostgreSQL menampilkan error runtime.
Resolusi
Catat nama antrean dari Langkah-langkah Diagnosis Umum. Contoh:
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
Jalankan perintah
qpid-tool
untuk memasukkan promptqpid
yang interaktif:qpid-tool
Perintah ini menampilkan hal berikut:
Management Tool for QPID qpid:
Jalankan
list broker
untuk mendapatkan daftar broker yang aktif:list broker
Perintah ini menampilkan hal berikut:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
Tempat kolom
ID
menentukan ID broker.Catat ID pialang. Pada contoh, nilainya adalah 125.
Jalankan perintah berikut untuk memindahkan pesan dari antrean yang dihentikan pengirimannya kembali ke antrean sebenarnya:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
Perintah ini menampilkan hal berikut:
OK (0) - {}
Jika tidak ada output, berarti tidak ada yang perlu dilakukan, yaitu tidak ada pesan untuk dipindahkan. Jika Anda tidak melihat
OK(0)
, Anda harus menghubungi Dukungan Apigee Edge.Tutup terminal alat qpid.
quit
Tunggu 5 menit, lalu jalankan lagi langkah diagnosis dari Langkah-langkah Diagnosis Umum. Verifikasi bahwa pesan di antrean yang sebenarnya sedang diproses dan pastikan jumlah pesan yang dihentikan pengirimannya tetap 0.
Jika masalah masih berlanjut, buka bagian berikutnya.
Harus Mengumpulkan Informasi Diagnostik
Jika masalah berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut. Hubungi dan bagikan kepada Dukungan Apigee Edge:
- Log Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- Log postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- Log server edge-qpid:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- Log server edge-postgres:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
Statistik antrean Qpidd:
qpid-stat -q
Grup analisis yang ditampilkan oleh perintah curl berikut:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax