شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
علامت
تصویر زیر نشان میدهد که درخواستهای API هنگام شروع جلسه ردیابی در رابط کاربری Edge ثبت نمیشوند:

پیام خطا
هنگام بروز این مشکل، هیچ پیام خطایی در رابط کاربری Edge نمایش داده نمیشود.
علل احتمالی
جدول زیر دلایل احتمالی عدم موفقیت در ضبط درخواستهای API در Edge UI Trace را نشان میدهد:
| علت | توضیحات | دستورالعملهای عیبیابی قابل اجرا برای |
|---|---|---|
| درخواستهایی که توسط پردازشگر پیام پردازش نمیشوند | درخواستهای API باید توسط پردازشگر پیام (Message Processor) کامپوننت Edge پردازش شوند تا بتوان ردیابی (trace) را ثبت کرد. اگر یک درخواست API به Apigee Edge نرسد، در نقطه ورود به Edge (یعنی روتر) با شکست مواجه شود یا قبل از پردازش توسط پردازشگر پیام (Message Processor) با شکست مواجه شود، ردیابی قابل ثبت نخواهد بود. | کاربران فضای ابری عمومی و خصوصی Edge |
| پروکسی API در درخت طبقهبندی یافت نشد | پردازندههای پیام Apigee از یک تعریف قانون مسیریابی به نام درخت طبقهبندی برای ارسال درخواستها بر اساس نام میزبان، مسیر پایه، ویرایش و محیط درخواست ورودی استفاده میکنند. اگر پروکسی API مربوطه به دلایلی از درخت طبقهبندی حذف شود، ممکن است تراکنشهای ردیابی (Trace) پر نشوند. | کاربران ابر خصوصی Edge |
علت: درخواستها توسط پردازشگر پیام پردازش نمیشوند
تشخیص
برای ثبت یک درخواست API در یک جلسه Trace، درخواست API باید توسط پردازشگر پیام (Message Processor) کامپوننت Edge پردازش شود. دلایل مختلفی وجود دارد که چرا ممکن است یک درخواست API در یک تراکنش Trace ثبت نشود.
برای مثال، اگر یک درخواست API به Apigee Edge نرسد، در نقطه ورود به Edge (یعنی روتر) با شکست مواجه شود یا قبل از پردازش توسط پردازنده پیام با شکست مواجه شود، ردیابی قابل ثبت نیست. هر یک از این سناریوها با جزئیات بیشتر در زیر شرح داده شده است.
سناریو ۱: درخواستها به Apigee Edge نمیرسند
علت
در این سناریو، خطا ممکن است ناشی از مشکل در وضوح DNS یا اتصال شبکه باشد. در این صورت، ممکن است هنگام اجرای این دستور خطای زیر را مشاهده کنید:
curl https://hostName:port/apiProxyBasePath/requestPath
curl: (6) Could not resolve host: hostName
وضوح تصویر
با دستور زیر میتوانید پیکربندی DNS را بررسی کنید:
dig hostName
با دستور زیر میتوانید اتصال شبکه را بررسی کنید:
telnet hostName port
سناریو ۲: درخواستها در روتر Apigee Edge با شکست مواجه میشوند
علت
در این سناریو، خطا ممکن است ناشی از خرابی TLS/SSL handshake باشد. در این صورت، ممکن است یکی از خطاهای زیر را مشاهده کنید:
Received fatal alert: handshake_failureHTTP/1.1 400 Bad Requestهمچنین ممکن است خطای گواهی SSL را مشاهده کنید.
وضوح تصویر
برای رفع این مشکلات و حل آنها به کتابهای راهنمای زیر مراجعه کنید:
سناریو ۳: درخواستها توسط پردازشگر پیام قابل پردازش نیستند
علت
در این سناریو، پردازشگر پیام Apigee نمیتواند پروکسی API را برای میزبان مجازی و مسیر مشخص شده پیدا کند. در نتیجه، ممکن است یکی از خطاهای زیر را مشاهده کنید:
HTTP/1.1 404 Not Found{ "fault":{ "faultstring":"Unable to identify proxy for host: default and url: \/apiProxyBasePath/requestPath", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }وضوح تصویر
برای عیبیابی و حل این مشکل به این راهنما مراجعه کنید: ۴۰۴ Unable to detect proxy for host .
علت: پروکسی API در درخت طبقهبندی یافت نشد
تشخیص
اگر یک پردازشگر پیام نتواند یک پروکسی API را در درخت طبقهبندی خود پیدا کند، هرگونه درخواست API به آن پروکسی خاص در جلسات ردیابی در رابط کاربری Edge نمایش داده نخواهد شد.
برای تشخیص اینکه آیا این مورد وجود دارد یا خیر، مراحل زیر را دنبال کنید:
به هر یک از پردازندههای پیام وارد شوید و با استفاده از دستور زیر بررسی کنید که آیا نسخه خاص API درخواستی در محیط مربوط به پردازنده پیام مستقر شده است یا خیر:
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
خروجی مثال:
دستور بالا لیستی از نسخههای نصبشده را نمایش میدهد. برای مثال، اگر نسخه ۱۲ نصبشده باشد، خروجی زیر را خواهید دید:
[ "12" ]مگر اینکه با خطاهای متناوب HTTP 404 مواجه شوید، احتمالاً خواهید دید که نسخه خاص اعمال شده است.
درخت طبقهبندی را بخوانید و با استفاده از دستور زیر، وجود نام پروکسی API را بررسی کنید:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
مراحل ۱ و ۲ را برای هر پردازنده پیام تکرار کنید. اگر نام پروکسی API داده شده در درخت طبقهبندی هر یک از پردازندههای پیام وجود ندارد، راهحل زیر را دنبال کنید.
وضوح تصویر
لطفاً برای حل این مشکل مراحل زیر را دنبال کنید. حتماً اقدامات احتیاطی لازم را برای جلوگیری از قطع تولید که ممکن است در اثر راهاندازی مجدد پردازندههای پیام در هنگام مواجهه با بارهای درخواست بالا رخ دهد، انجام دهید.
به هر یک از میزبانهای پردازشگر پیام که پروکسی API خاص را در درخت طبقهبندی ندارند، وارد شوید و از دستور زیر برای راهاندازی مجدد پردازشگر پیام استفاده کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
پس از راهاندازی مجدد، از دستور زیر برای منتظر ماندن تا فعال شدن آن استفاده کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
پس از آماده شدن پردازشگر پیام، با استفاده از دستور زیر، در دسترس بودن پروکسی API را تأیید کنید:
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
خروجی مثال:
دستور بالا لیستی از نسخههای نصبشده را نمایش میدهد. برای مثال، اگر نسخه ۱۲ نصبشده باشد، خروجی زیر را خواهید دید:
[ "12" ]مگر اینکه با خطاهای متناوب HTTP 404 مواجه شوید، احتمالاً خواهید دید که نسخه خاص اعمال شده است.
درخت طبقهبندی را بخوانید و با استفاده از دستور زیر، وجود نام پروکسی API را تأیید کنید:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
اگر مشکل همچنان ادامه داشت، به «اطلاعات تشخیصی مورد نیاز برای جمعآوری» بروید.
باید اطلاعات تشخیصی جمعآوری شود
اگر مشکل پس از دنبال کردن دستورالعملهای بالا همچنان ادامه داشت، لطفاً اطلاعات تشخیصی زیر را جمعآوری کرده و با پشتیبانی Apigee Edge به اشتراک بگذارید:
| نوع اطلاعات تشخیصی | فرمان |
|---|---|
| خروجی دستور ردیابی جلسه | curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user |
| گزارش سرور مدیریت | /opt/apigee/var/log/edge-management-server/logs/system.log |
| گزارشهای پردازنده پیام | /opt/apigee/var/log/edge-message-processor/logs/system.log |
خروجی دستورات telnet / netcat از سرور مدیریت به پردازنده پیام | telnet MessageProcessor_IP 8082 nc -vz MessageProcessor_IP 8082 |
| خروجی دستور netstat روی پردازنده(های) پیام | netstat -an > netstat.txt |
| فهرست نسخههای پیادهسازی شده برای پروکسی API خاص در تمام پردازنده(های) پیام، در خروجی نمایش داده میشود. | curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions |
| خروجی درخت طبقهبندی روی تمام پردازندههای پیام | curl -i http://localhost:8082/v1/classification/tree |