شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
علامت
دادههای تحلیلی در رابط کاربری 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
این صف، صف نامههای از کار افتاده (dead letter queue) است. این صف به عنوان مقصد پیامهایی عمل میکند که
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 broker میخواند، درک کند یا قادر به ارسال پیامها به 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 گیر کردهاند
تشخیص
این وضعیت میتواند تحت سناریوهای زیر اتفاق بیفتد:
- در گذشته یک ارتقا انجام شده بود که در آن زمان PostgreSQL از کار افتاده بود.
- قطعی موقت PostgreSQL به دلیل مشکلات شبکه.
-
edge-qpid-serverتلاش کرد تا پیامی را به PostgreSQL ارسال کند، اما PostgreSQL خطای زمان اجرا را بازگرداند.
وضوح تصویر
نام صفها را از مراحل تشخیص مشترک یادداشت کنید. برای مثال:
-
ax-q-axgroup-001-consumer-group-001 -
ax-q-axgroup-001-consumer-group-001-dl
-
دستور
qpid-toolرا اجرا کنید تا یک اعلانqpidتعاملی وارد شود:qpid-tool
این دستور مقدار زیر را برمیگرداند:
Management Tool for QPID qpid:
برای دریافت لیستی از کارگزاران فعال
list brokerاجرا کنید:list broker
این دستور مقدار زیر را برمیگرداند:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
که در آن ستون
IDشناسه کارگزار را مشخص میکند.به شناسه کارگزار توجه کنید. در مثال، 125 است.
دستور زیر را اجرا کنید تا پیامها از صف نامههای از کار افتاده به صف اصلی منتقل شوند:
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 تماس بگیرید.از ترمینال qpid-tool خارج شوید.
quit
۵ دقیقه صبر کنید و سپس مراحل تشخیص را دوباره از مراحل تشخیص مشترک اجرا کنید. تأیید کنید که پیامهای موجود در صف واقعی پردازش میشوند و مطمئن شوید که تعداد پیامهای مرده روی ۰ باقی میماند.
اگر مشکل همچنان پابرجا بود، به بخش بعدی بروید.
باید اطلاعات تشخیصی جمعآوری شود
اگر مشکل حتی پس از دنبال کردن دستورالعملهای بالا ادامه داشت، لطفاً اطلاعات تشخیصی زیر را جمعآوری کنید. با پشتیبانی Apigee Edge تماس بگیرید و آنها را به اشتراک بگذارید:
- گزارشهای Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log - لاگهای Postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log - گزارشهای Edge-qpid-server:
/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
گروه تحلیلی که توسط دستور curl زیر برگردانده شده است:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax