شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
علامت
داشبوردهای تحلیلی (عملکرد پروکسی، عملکرد هدف و غیره) هیچ دادهای را در رابط کاربری Edge نشان نمیدهند. همه داشبوردها پیام زیر را نشان میدهند:
No traffic in the selected date range
پیامهای خطا
این مشکل منجر به خطاهای قابل مشاهده نمیشود.
علل احتمالی
جدول زیر علل احتمالی این مشکل را فهرست میکند:
| علت | برای |
|---|---|
| بدون ترافیک API برای محیط سازمانی | لبه برای کاربران ابر خصوصی |
| دادهها در پایگاه داده Postgres موجود است، اما در رابط کاربری نمایش داده نمیشوند. | لبه برای کاربران ابر خصوصی |
| دادههای تحلیلی به پایگاه داده Postgres ارسال نمیشوند | لبه برای کاربران ابر خصوصی |
| استقرار نادرست تجزیه و تحلیل | لبه برای کاربران ابر خصوصی |
| UUID های سرور آنالیتیکس قدیمی | لبه برای کاربران ابر خصوصی |
بدون ترافیک API برای محیط سازمانی
تشخیص
- با استفاده از یکی از روشهای زیر، بررسی کنید که آیا در مدت زمان مشخصی که سعی در مشاهده دادههای تحلیلی دارید، ترافیکی برای API Proxies در محیط سازمانی خاص وجود دارد یا خیر:
- ردیابی را برای هر یک از API های خود که در حال حاضر توسط کاربران شما استفاده می شود فعال کنید و بررسی کنید که آیا می توانید درخواستی را در ردیابی دریافت کنید.
- گزارشهای دسترسی NGINX (
/opt/apigee/var/log/edge-router/nginx/logs/access.log)را مشاهده کنید و ببینید آیا ورودی جدیدی برای API Proxies برای مدت زمان خاص وجود دارد یا خیر. - اگر اطلاعات را از API Proxies به یک سرور لاگ مانند Syslog، Splunk، Loggly و غیره وارد میکنید، میتوانید بررسی کنید که آیا برای مدت زمان خاص، ورودیهایی در این سرورهای لاگ برای API Proxies وجود دارد یا خیر.
- اگر برای مدت زمان مشخصی هیچ ترافیکی (هیچ درخواست API) وجود نداشته باشد، دادههای تحلیلی در دسترس نیستند. در داشبورد تحلیلی عبارت «هیچ ترافیکی در محدوده تاریخ انتخاب شده وجود ندارد» را مشاهده خواهید کرد.
وضوح تصویر
- در محیط سازمانی خاص، با یک یا چند پروکسی API تماس برقرار کنید.
- چند ثانیه صبر کنید و سپس داشبوردهای تحلیلی را در تب Hour مشاهده کنید و ببینید آیا دادهها نمایش داده میشوند یا خیر.
- اگر مشکل همچنان ادامه داشت، به بخش «دادهها در پایگاه داده Postgres موجود است، اما در رابط کاربری نمایش داده نمیشوند» بروید.
دادهها در پایگاه داده Postgres موجود است، اما در رابط کاربری نمایش داده نمیشوند.
علامت
ابتدا، در دسترس بودن آخرین دادههای Analytics را در پایگاه داده Postgres تعیین کنید.
برای بررسی اینکه آیا آخرین دادههای Analytics در گره Postgres Master موجود است یا خیر:
- به هر یک از سرورهای Postgres وارد شوید و دستور زیر را اجرا کنید تا تأیید کنید که آیا در گره Master Postgres هستید یا خیر:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- در گره Master Postgres، وارد PostgreSQL شوید:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- با استفاده از کوئری SQL زیر در پایگاه داده Postgres، بررسی کنید که آیا جدول مورد نظر برای org-env شما وجود دارد یا خیر:
\d analytics."orgname.envname.fact"
- با استفاده از کوئری SQL زیر، بررسی کنید که آیا آخرین دادهها در پایگاه داده Postgres موجود است یا خیر:
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- اگر آخرین برچسب زمانی بسیار قدیمی (یا تهی) باشد، این نشان میدهد که دادهها در پایگاه داده Postgres موجود نیستند. دلیل احتمالی این مشکل این است که دادهها از سرور Qpid به پایگاه داده Postgres ارسال نمیشوند. به بخش «دادههای تحلیلی به پایگاه داده Postgres ارسال نمیشوند» بروید.
- اگر آخرین دادهها در پایگاه داده Postgres در گره Master موجود است، مراحل زیر را برای تشخیص دلیل عدم نمایش دادهها در رابط کاربری Edge دنبال کنید.
تشخیص
- ابزارهای توسعهدهنده را در مرورگر کروم خود فعال کنید و با استفاده از مراحل زیر، API مورد استفاده را از یکی از داشبوردهای تحلیلی دریافت کنید:
- از ابزارهای توسعهدهندگان، برگه شبکه (Network) را انتخاب کنید.
- شروع ضبط.
- داشبورد آنالیتیکس را مجدداً بارگذاری کنید.
- در پنل سمت چپ در ابزارهای توسعهدهندگان، ردیفی که عبارت «apiproxy?_optimized...» در آن وجود دارد را انتخاب کنید.
- در پنل سمت راست در ابزارهای توسعهدهندگان، برگه «Headers» را انتخاب کنید و «Request URL» را یادداشت کنید.
- در اینجا نمونه خروجی از ابزارهای توسعهدهنده آمده است:
نمونه خروجی که API مورد استفاده در داشبورد Proxy Performance از تب Network در ابزار توسعهدهندگان برای داشبورد Proxy Performance را نشان میدهد.

- فراخوانی API مدیریت را مستقیماً اجرا کنید و بررسی کنید که آیا نتایج را دریافت میکنید یا خیر. در اینجا یک نمونه فراخوانی API برای برگه روز در داشبورد عملکرد پروکسی آمده است:
curl -u username:password "http://management_server_IP_address:8080/v1/organizations/ org_name/environments/env_name/stats/apiproxy?limit=14400& select=sum(message_count),sum(is_error),avg(total_response_time), avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error), avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+ 18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
- اگر پاسخ موفقیتآمیزی مشاهده کردید اما هیچ دادهای دریافت نکردید، نشان میدهد که سرور مدیریت به دلیل مشکلات اتصال شبکه قادر به دریافت دادهها از سرور Postgres نیست.
- بررسی کنید که آیا میتوانید از طریق سرور مدیریت به سرور Postgres متصل شوید:
telnet Postgres_server_IP_address 5432
- اگر نمیتوانید به سرور Postgres متصل شوید، بررسی کنید که آیا محدودیتی در فایروال روی پورت ۵۴۳۲ وجود دارد یا خیر.
- اگر محدودیتهایی از جانب فایروال وجود داشته باشد، میتواند دلیل عدم توانایی سرور مدیریت در دریافت دادهها از سرور Postgres باشد.
وضوح تصویر
- اگر محدودیتهایی در فایروال وجود دارد، آنها را حذف کنید تا سرور مدیریت بتواند با سرور Postgres ارتباط برقرار کند.
- اگر هیچ محدودیتی از طرف فایروال وجود نداشته باشد، این مشکل میتواند به دلیل اختلال در شبکه باشد.
- اگر هرگونه اختلال شبکهای در سرور مدیریت وجود داشته باشد، راهاندازی مجدد آن ممکن است مشکل را برطرف کند.
- با استفاده از دستور زیر، تمام سرورهای مدیریتی را یکی یکی مجدداً راهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- بررسی کنید که آیا میتوانید دادههای تحلیلی را در رابط کاربری Edge مشاهده کنید یا خیر.
اگر هنوز دادهها را نمیبینید، با پشتیبانی Apigee Edge تماس بگیرید.
دادههای تحلیلی به پایگاه داده Postgres ارسال نمیشوند
تشخیص
اگر دادهها از سرور Qpid به پایگاه داده Postgres ارسال نمیشوند، همانطور که در بخش «دادههای موجود در پایگاه داده Postgres» مشخص شده است، اما در رابط کاربری نمایش داده نمیشوند ، مراحل زیر را انجام دهید:
- با اجرای دستور زیر، بررسی کنید که آیا هر یک از سرورهای Qpid فعال و در حال اجرا هستند یا خیر:
/opt/apigee/apigee-service/bin edge-qpid-server status
- اگر هر یک از سرورهای Qpid از کار افتاده است، آن را مجدداً راهاندازی کنید. در غیر این صورت، به مرحله ۵ بروید.
/opt/apigee/apigee-service/bin edge-qpid-server restart
- مدتی صبر کنید و سپس دوباره بررسی کنید که آیا آخرین دادهها در پایگاه داده Postgres موجود است یا خیر.
- وارد PostgreSQL شوید:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- برای بررسی اینکه آیا آخرین دادهها در دسترس هستند یا خیر، کوئری SQL زیر را اجرا کنید:
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- وارد PostgreSQL شوید:
- اگر آخرین دادهها موجود است، مراحل زیر را رد کنید و به آخرین مرحله در بخش وضوح بروید. اگر آخرین دادهها موجود نیست، مراحل زیر را ادامه دهید.
- بررسی کنید که آیا پیامهای صفهای سرور Qpid به پایگاه داده Postgres ارسال میشوند یا خیر.
-
qpid-stat -q commandاجرا کنید و مقادیر ستونهای msgIn و msgOut را بررسی کنید. - در اینجا یک نمونه خروجی وجود دارد که نشان میدهد msgIn و msgOut برابر نیستند. این نشان میدهد که پیامها از سرور Qpid به پایگاه داده Postgres ارسال نمیشوند.

-
- اگر در ستونهای msgIn و msgOut عدم تطابق وجود دارد، لاگهای Qpid Server در مسیر
/opt/apigee/var/log/edge-qpid-server/system.logرا بررسی کنید و ببینید آیا خطایی وجود دارد یا خیر. - ممکن است پیامهای خطایی مانند «احتمالاً PG هنوز از کار افتاده است» یا «FATAL: sorry, too many clients already» را همانطور که در شکل زیر نشان داده شده است، مشاهده کنید:
2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (FATAL: sorry, too many clients already)
این اتفاق زمانی میافتد که سرور Postgres کوئریهای SQL زیادی اجرا کند یا CPU با سرعت بالایی کار کند و در نتیجه نتواند به Qpid Server پاسخ دهد.
وضوح تصویر
- سرور Postgres و PostgreSQL را مطابق شکل زیر مجدداً راهاندازی کنید:
/opt/apigee/bin/apigee-service edge-postgres-server restart
/opt/apigee/bin/apigee-service apigee-postgresql restart
- این راهاندازی مجدد تضمین میکند که تمام کوئریهای SQL قبلی متوقف شدهاند و باید امکان اتصالهای جدید به پایگاه داده Postgres را فراهم کنند.
- داشبوردهای آنالیتیکس را مجدداً بارگذاری کنید و بررسی کنید که آیا دادههای آنالیتیکس نمایش داده میشوند یا خیر.
اگر مشکل همچنان ادامه داشت، با پشتیبانی Apigee Edge تماس بگیرید.
استقرار نادرست تجزیه و تحلیل
تشخیص
- با استفاده از فراخوانی API زیر، وضعیت استقرار تحلیلی را دریافت کنید:
curl -u user_email:password http://management_server_host:port /v1/organizations/orgname/environments/envname/provisioning/axstatus
- وضعیت سرورهای Qpid و Postgres را از نتایج فراخوانی API بررسی کنید.
- اگر وضعیت سرورهای Qpid و Postgres به صورت "SUCCESS" نشان داده شود، نشان میدهد که سرورهای تحلیلی به درستی سیمکشی شدهاند. به بخش UUIDهای قدیمی سرور تحلیلی بروید.
- اگر وضعیت سرورهای Qpid/Postgres به صورت "UNKNOWN" یا "FAILURE" نمایش داده شود، نشان دهنده وجود مشکل در سرور مربوطه است.
برای مثال، سناریوی زیر وضعیت سرورهای Postgres را به صورت "UNKNOWN" نشان میدهد:

این ممکن است در صورت بروز نقص در هنگام نصب آنالیتیکس رخ دهد. این نقص مانع از رسیدن پیامها از سرورهای مدیریت به سرورهای Postgres میشود.
وضوح تصویر
این مشکل معمولاً با راهاندازی مجدد سرورهایی که پیامهای «FAILURE» یا «UNKNOWN» را نشان میدهند، قابل حل است.
- هر یک از سرورهایی که وضعیت سیمکشی تحلیلی آنها "FAILURE" یا "UNKNOWN" را نشان میدهد، با استفاده از دستور زیر مجدداً راهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service component restart
- برای مثال:
- اگر مشکل را در سرورهای Qpid مشاهده کردید، سرورهای Qpid را مجدداً راهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- اگر این مشکل را در سرورهای Postgres مشاهده کردید، هر دو گره سرور Postgres Master و Slave را مجدداً راهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- اگر مشکل را در سرورهای Qpid مشاهده کردید، سرورهای Qpid را مجدداً راهاندازی کنید:
- در مثال بالا، پیام "UNKNOWN" برای سرورهای Postgres نمایش داده میشود، بنابراین باید هر دو سرور Postgres Master و Slave را مجدداً راهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
UUID های سرور آنالیتیکس قدیمی
تشخیص
- پیکربندی تحلیلی را با استفاده از فراخوانی API زیر دریافت کنید:
curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
در اینجا نمونهای از خروجی API فوق را مشاهده میکنید:
[ { "name" : "axgroup001", "properties" : { "consumer-type" : "ax" }, "scopes" : [ "myorg~prod", "myorg~test" ], "uuids" : { "aries-datastore" : [ ], "postgres-server" : [ "6777...2db14" ], "dw-server" : [ ], "qpid-server" : [ "774e...fb23", "29f3...8c11" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "774e...8c11" ], "datastores" : [ "6777...db14" ], "properties" : { } } ], "data-processors" : { } } ]
- مطمئن شوید که اطلاعات زیر در خروجی صحیح است:
- نامهای org-env که در عنصر "scopes" فهرست شدهاند.
- UUID های سرورهای Postgres و سرورهای Qpid.
- با اجرای دستور زیر روی هر یک از گرههای سرور Postgres، UUIDهای سرور Postgres را دریافت کنید:
curl 0:8084/v1/servers/self/uuid
- با اجرای دستور زیر روی هر یک از گرههای سرور Qpid، شناسههای کاربری (UUID) سرور Qpid را دریافت کنید:
curl 0:8083/v1/servers/self/uuid
- با اجرای دستور زیر روی هر یک از گرههای سرور Postgres، UUIDهای سرور Postgres را دریافت کنید:
- اگر همه اطلاعات صحیح است، به عدم ارسال دادههای تحلیلی به پایگاه داده Postgres ادامه دهید.
- اگر UUID های سرورهای Postgres و/یا Qpid نادرست باشند، ممکن است سرورهای مدیریت به UUID های قدیمی اشاره داشته باشند.
وضوح تصویر
برای حذف UUID های قدیمی و اضافه کردن UUID های صحیح سرورها، با پشتیبانی Apigee Edge تماس بگیرید.