بيانات "إحصاءات Google" عالقة في قائمة انتظار الأحرف المفقودة في Qbidd

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

المشكلة

لا تتوفّر بيانات "إحصاءات Google" في واجهة مستخدم Edge بسبب عدم نقل خادم Qpidd لرسائل الإحصاءات إلى PostgreSQL. في متصفّح Edge، يتجاوب المكوِّن edge-qpid-server مع خادم Qpidd.

يحتفظ Qpidd بقائمة انتظار لكل مجموعة تحليلات:

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

    تحتوي قائمة الانتظار هذه على رسائل الإحصاءات المرسلة من معالجات الرسائل وأجهزة التوجيه. يتم سحب الرسائل من هنا من خلال edge-qpid-server التي تحلّل الرسائل وتدخلها في PostgreSQL. بعد معالجة الرسائل بنجاح، تتم إزالتها من قائمة الانتظار.

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

    قائمة الانتظار هذه هي قائمة انتظار الأحرف المتوقفة. إنها بمثابة وجهة للرسائل التي تعذّر على edge-qpid-server معالجتها، وبالتالي لم يعد يرغب في استلامها. عادةً ما تتم تعبئة هذه البيانات عند تجاوز الحد الأقصى لعدد عمليات التسليم، أو في حال رفض PostgreSQL إدراج بيانات جديدة بسبب حدوث أخطاء في وقت التشغيل.

رسالة الخطأ

قد يرجع السبب الأساسي إلى حدوث أخطاء مختلفة في وقت التشغيل من المكوِّن edge-qpid-server. عادةً إذا تلقت edge-qpid-server خطأ في وقت التشغيل من PostgreSQL، تنشئ قائمة انتظار الأحرف المتوقفة إذا لم تكن موجودة، ثم تُرسِل الرسالة التالية إلى هناك:

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.

الأسباب المحتملة

السبب الوصف تعليمات استكشاف الأخطاء وإصلاحها التي تنطبق على
الرسائل عالقة في قائمة انتظار الرسائل الخاملة في qpidd تعذَّر على edge-qpid-server فهم الرسائل التي قرأها من وسيط Qpidd أو تعذّر الاحتفاظ بالرسائل إلى PostgreSQL. مستخدمو Edge الخاص على السحابة الإلكترونية

خطوات التشخيص الشائعة

قم بتشغيل الأمر التالي لعرض إحصائيات قائمة انتظار Qpidd:

qpid-stat -q

ويعرض الناتج مجموعة قوائم الانتظار المسجّلة لدى الوسيط. إذا كانت قائمة الانتظار التي بها اسم ينتهي بـ "-dl" تحتوي على رسائل مملوءة، فهذا يعني أن هناك رسائل عالقة في قائمة انتظار الأحرف المتوقفة.

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

السبب: الرسائل عالقة في قائمة انتظار الأحرف المتوقفة في qpidd

التشخيص

يمكن أن يحدث هذا الشرط في السيناريوهات التالية:

  1. تم إجراء عملية ترقية في الماضي، وخلال هذه الفترة تعطل PostgreSQL.
  2. انقطاع مؤقت في PostgreSQL بسبب مشاكل في الشبكة.
  3. حاولت edge-qpid-server إرسال رسالة إلى PostgreSQL، ولكن PostgreSQL عرضت خطأ في وقت التشغيل.

درجة الدقّة

  1. دوِّن اسم قوائم الانتظار من خطوات التشخيص الشائعة. مثال:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. يمكنك تشغيل الأمر qpid-tool لإدخال طلب qpidتفاعلي:

    qpid-tool

    يعرض هذا الأمر ما يلي:

    Management Tool for QPID
    qpid:
  3. شغِّل list broker للحصول على قائمة بالوسطاء النشطين:

    list broker

    يعرض هذا الأمر ما يلي:

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

    حيث يحدّد عمود "ID" رقم تعريف الوسيط.

  4. دوِّن رقم تعريف الوسيط. في المثال هو 125.

  5. نفِّذ الأمر التالي لنقل الرسائل من قائمة انتظار الأحرف المتوقفة إلى قائمة الانتظار الفعلية:

    call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}

    يعرض هذا الأمر ما يلي:

    OK (0) - {}

    إذا لم يكن هناك أي نتائج، فليس هناك ما يلزم القيام به، وبالتالي لا يعني ذلك أنه لا توجد رسائل لنقلها. إذا لم يظهر لك رمز الاستجابة OK(0)، عليك التواصل مع فريق دعم Apigee Edge.

  6. عليك إنهاء الوحدة الطرفية لأداة qpid.

    quit
  7. انتظِر لمدة 5 دقائق، ثم نفِّذ خطوات التشخيص مرة أخرى من خطوات التشخيص الشائعة. تحقق من أن الرسائل في قائمة الانتظار الفعلية تتم معالجتها وتأكد من بقاء عدد رسائل الرسالة المتوقفة عند 0.

إذا استمرت المشكلة، انتقِل إلى القسم التالي.

ضرورة جمع معلومات التشخيص

إذا استمرت المشكلة حتى بعد اتباع التعليمات المذكورة أعلاه، يُرجى جمع معلومات التشخيص التالية. يمكنك التواصل مع فريق دعم Apigee Edge ومشاركته مع:

  • سجلات Qpidd: /opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
  • سجلات Postgresql: /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
  • سجلات خادم Edge-qpid: /opt/apigee/var/log/edge-qpid-server/logs/system.log
  • سجلات خادم Edge-postgres:/opt/apigee/var/log/edge-postgres-server/logs/system.log
  • إحصاءات قائمة انتظار Qpidd:

    qpid-stat -q
  • مجموعة "إحصاءات Google" التي يعرضها الأمر curl التالي:

    curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax