داده های تجزیه و تحلیل در صف حرف مرده Qpidd گیر کرده است

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

علامت

به دلیل عدم انتقال پیام‌های تحلیلی توسط سرور Qpidd به PostgreSQL، داده‌های Analytics در رابط کاربری Edge وجود ندارد. در 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-tool خارج شوید.

    quit
  7. 5 دقیقه صبر کنید و سپس مراحل تشخیص را از Common Diagnosis Steps دوباره اجرا کنید. بررسی کنید که پیام‌های موجود در صف واقعی پردازش می‌شوند و مطمئن شوید که تعداد پیام‌های حروف مرده روی 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
  • گروه Analytics با دستور curl زیر برگردانده می شود:

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