Data analisis macet di antrean surat mati Qpidd

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

Gejala

Data analisis tidak ada 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 didorong dari Prosesor dan Router Pesan. Pesan diambil dari sini oleh edge-qpid-server yang mengurai pesan dan menyisipkannya ke PostgreSQL. Setelah pesan berhasil diproses, pesan akan dihapus dari antrean.

  • ax-q-axgroup001-consumer-group-001-dl

    Antrean ini adalah antrean yang sudah mati. ID ini berfungsi sebagai tujuan untuk pesan yang gagal diproses oleh edge-qpid-server, sehingga tidak ingin diterima lagi. Kolom ini biasanya diisi saat jumlah pengiriman maksimum terlampaui, atau jika PostgreSQL menolak penyisipan data baru karena error runtime.

Pesan Error

Penyebab utamanya dapat disebabkan oleh berbagai error runtime dari komponen edge-qpid-server. Biasanya jika edge-qpid-server menerima error runtime dari PostgreSQL, kode ini akan membuat antrean huruf mati jika belum ada, lalu mengirimkan pesan berikut di 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 Berlaku Untuk
Pesan macet dalam antrean surat qpidd yang sudah tidak berlaku edge-qpid-server tidak dapat memahami pesan yang dibaca dari broker Qpidd atau tidak dapat mempertahankan pesan ke PostgreSQL. Pengguna Edge Private Cloud

Langkah Diagnosis Umum

Jalankan perintah berikut untuk melihat statistik antrean Qpidd:

qpid-stat -q

Output-nya akan menampilkan kumpulan antrean yang terdaftar di pialang. Jika antrean dengan nama yang diakhiri dengan "-dl" memiliki pesan yang terisi, maka ada pesan yang tertahan di antrean yang mati tersebut.

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 macet dalam antrean huruf qpidd yang mati

Diagnosis

Kondisi ini dapat terjadi dalam skenario berikut:

  1. Upgrade pernah dilakukan, dan selama periode tersebut PostgreSQL tidak berfungsi.
  2. Gangguan sementara PostgreSQL karena masalah jaringan.
  3. edge-qpid-server mencoba mengirim pesan ke PostgreSQL, tetapi PostgreSQL menampilkan error runtime.

Resolusi

  1. Catat nama antrean dari Langkah-Langkah Diagnosis Umum. Contoh:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. Jalankan perintah qpid-tool untuk memasukkan dialog qpid interaktif:

    qpid-tool

    Perintah ini menampilkan hal berikut:

    Management Tool for QPID
    qpid:
  3. Jalankan list broker untuk mendapatkan daftar broker aktif:

    list broker

    Perintah ini menampilkan hal berikut:

    Object Summary:
    ID   Created   Destroyed  Index
    =======================================
    125  21:00:00  -          amqp-broker

    Kolom ID menentukan ID broker.

  4. Catat ID broker. Dalam contoh ini adalah 125.

  5. Jalankan perintah berikut untuk memindahkan pesan dari antrean surat yang mati kembali ke antrean yang 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, sehingga tidak ada pesan yang akan dipindahkan. Jika Anda tidak melihat OK(0), sebaiknya hubungi Dukungan Apigee Edge.

  6. Keluar dari terminal qpid-tool.

    quit
  7. Tunggu 5 menit, lalu jalankan kembali langkah-langkah diagnosis dari Langkah Diagnosis Umum. Pastikan pesan pada antrean yang sebenarnya sedang diproses dan pastikan jumlah pesan yang dihentikan pengirimannya tetap di angka 0.

Jika masalah masih berlanjut, lanjutkan ke bagian berikutnya.

Harus Mengumpulkan Informasi Diagnostik

Jika masalah terus berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut. Hubungi dan bagikan dengan 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