Edge UI-তে API অনুরোধ ক্যাপচার করা হয়নি

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

সমস্যার উপসর্গ

নিচের ছবিতে দেখানো হয়েছে যে কোনও ট্রেস সেশন শুরু হলে Edge UI-তে API অনুরোধ ক্যাপচার করা হয় না:

ত্রুটি বার্তা

এই সমস্যা হলে Edge UI-তে কোনও সমস্যার মেসেজ দেখানো হবে না।

সম্ভাব্য কারণ

Edge UI ট্রেসে API অনুরোধ ক্যাপচার করতে না পারার সম্ভাব্য কারণগুলি নিম্নলিখিত সারণীতে দেখানো হয়েছে:

কারণ বিবরণ সমস্যা সমাধানের নির্দেশাবলী এগুলির জন্য প্রযোজ্য
মেসেজ প্রসেসর দ্বারা প্রসেস করা হয়নি এমন অনুরোধ ট্রেস ক্যাপচার করার জন্য Edge-এর কম্পোনেন্ট মেসেজ প্রসেসরকে API অনুরোধ প্রসেস করতে হবে। কোনও এপিআই অনুরোধ Apigee Edge-এ পৌঁছাতে না পারলে, Edge-এর এন্ট্রি পয়েন্টে (যেমন, রাউটার) বা মেসেজ প্রসেসর দ্বারা প্রসেস করার আগে ব্যর্থ হলে, ট্রেস ক্যাপচার করা যাবে না। এজ পাবলিক ও প্রাইভেট ক্লাউড ব্যবহারকারী
শ্রেণীবিভাগ ট্রি-তে API প্রক্সি খুঁজে পাওয়া যায়নি আগত অনুরোধের হোস্টনেম, বেস পাথ, রিভিশন ও এনভায়রনমেন্টের উপর ভিত্তি করে অনুরোধ ডিসপ্যাচ করার জন্য Apigee মেসেজ প্রসেসর, রাউটিং রুল ডেফিনিশন ব্যবহার করে, যাকে ক্লাসিফিকেশন ট্রি বলা হয়। শ্রেণীবিন্যাস ট্রি থেকে কোনও কারণে প্রাসঙ্গিক API প্রক্সি সরিয়ে দেওয়া হলে, ট্রেস ট্রানজ্যাকশন পপুলেট নাও হতে পারে। Edge Private Cloud ব্যবহারকারী

কারণ: মেসেজ প্রসেসর অনুরোধ প্রসেস করেনি

রোগ নির্ণয়

Trace সেশনে API অনুরোধ ক্যাপচার করতে, Edge-এর কম্পোনেন্ট মেসেজ প্রসেসরকে API অনুরোধ প্রসেস করতে হবে। Trace ট্রানজ্যাকশনে API অনুরোধ ক্যাপচার না হওয়ার একাধিক কারণ থাকতে পারে।

যেমন, কোনও API অনুরোধ Apigee Edge-এ পৌঁছাতে না পারলে, Edge-এর এন্ট্রি পয়েন্টে (যেমন, রাউটার) বা মেসেজ প্রসেসর দ্বারা প্রসেস করার আগে ব্যর্থ হলে, ট্রেস ক্যাপচার করা যাবে না। নিচে প্রতিটি পরিস্থিতি আরও বিস্তারিতভাবে বর্ণনা করা হয়েছে।

পরিস্থিতি ১: অনুরোধ Apigee Edge-এ পৌঁছাতে না পারা

  • কারণ

    এই পরিস্থিতিতে, DNS রেজোলিউশন বা নেটওয়ার্ক কানেকশন সংক্রান্ত সমস্যার কারণে সমস্যা হতে পারে। যদি তাই হয়, তাহলে এই কমান্ড চালানোর সময় আপনি নিম্নলিখিত সমস্যা দেখতে পেতে পারেন:

    curl https://hostName:port/apiProxyBasePath/requestPath
    
    curl: (6) Could not resolve host: hostName
    
  • রেজোলিউশন

    আপনি নিম্নলিখিত কমান্ডের সাহায্যে ডিএনএস কনফিগারেশন যাচাই করতে পারবেন:

    dig hostName

    আপনি নিম্নলিখিত কমান্ডের মাধ্যমে নেটওয়ার্ক কানেক্টিভিটি যাচাই করতে পারবেন:

    telnet hostName port

পরিস্থিতি ২: Apigee Edge রাউটারে অনুরোধ ব্যর্থ হয়

দৃশ্য ৩: মেসেজ প্রসেসর অনুরোধ প্রসেস করতে পারছে না

  • কারণ

    এই পরিস্থিতিতে, 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"
        }
      }
    }
  • রেজোলিউশন

    এই সমস্যার সমাধান করতে এই প্লেবুক দেখুন: 404 হোস্টের জন্য প্রক্সি শনাক্ত করা যায়নি।

কারণ: শ্রেণীবিভাগ ট্রি-তে API প্রক্সি খুঁজে পাওয়া যায়নি

রোগ নির্ণয়

কোনও মেসেজ প্রসেসর যদি তার শ্রেণীবিভাগ ট্রি-তে কোনও API প্রক্সি খুঁজে না পায়, তাহলে সেই নির্দিষ্ট প্রক্সিতে কোনও API অনুরোধ Edge UI-তে ট্রেস সেশনে দেখানো হবে না।

এটি হয়েছে কিনা তা নির্ধারণ করতে, নিচে দেওয়া ধাপগুলি অনুসরণ করুন:

  1. প্রতিটি মেসেজ প্রসেসরে লগ-ইন করুন এবং নিম্নলিখিত কমান্ড ব্যবহার করে অনুরোধ করা API-এর নির্দিষ্ট রিভিশন মেসেজ প্রসেসরের প্রাসঙ্গিক এনভায়রনমেন্টে ডেপ্লয় করা হয়েছে কিনা তা চেক করে দেখুন:

    curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
    

    আউটপুটের উদাহরণ:

    উপরের কমান্ডটি ডিপ্লয় করা রিভিশনের একটি তালিকা আউটপুট করবে। যেমন, রিভিশন ১২ ডিপ্লয় করা হলে, আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন:

    [ "12" ]
    

    আপনি যদি মাঝে মাঝে HTTP 404 সমস্যার সম্মুখীন না হন, তাহলে আপনি সম্ভবত দেখতে পাবেন যে নির্দিষ্ট রিভিশনটি ডিপ্লয় করা হয়েছে।

  2. শ্রেণীবিভাগ ট্রি পড়ুন এবং নিম্নলিখিত কমান্ড ব্যবহার করে API প্রক্সি নামের অস্তিত্ব চেক করুন:

    curl -i http://localhost:8082/v1/classification/tree | grep apiName
    
  3. প্রতিটি মেসেজ প্রসেসরের জন্য ১ ও ২ নম্বর ধাপ আবার করুন। মেসেজ প্রসেসরের কোনওটির শ্রেণীবিভাগ ট্রি থেকে প্রদত্ত API প্রক্সি নামটি অনুপস্থিত থাকলে, নিচে দেওয়া সমাধান অনুসরণ করুন।

সমাধান

এই সমস্যার সমাধান করতে, নিচে উল্লেখ করা ধাপগুলি অনুসরণ করুন। অনেক বেশি অনুরোধের লোড থাকার সময় মেসেজ প্রসেসর রিস্টার্ট করার ফলে প্রোডাকশন আউটএজ এড়াতে প্রয়োজনীয় সতর্কতা অবলম্বন করতে ভুলবেন না।

  1. Classification Tree-তে নির্দিষ্ট API প্রক্সি নেই এমন প্রতিটি Message Processor হোস্টে লগ-ইন করুন এবং Message Processor রিস্টার্ট করতে নিচের কমান্ড ব্যবহার করুন:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. রিস্টার্ট করার পরে, এটি অ্যাক্টিভ না হওয়া পর্যন্ত অপেক্ষা করতে, নিচের কমান্ডটি ব্যবহার করুন:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
    
  3. মেসেজ প্রসেসর রেডি হয়ে গেলে, নিম্নলিখিত কমান্ড ব্যবহার করে API প্রক্সির উপলভ্যতা যাচাই করুন:

    curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
    

    আউটপুটের উদাহরণ:

    উপরের কমান্ডটি ডিপ্লয় করা রিভিশনের একটি তালিকা আউটপুট করবে। যেমন, রিভিশন ১২ ডিপ্লয় করা হলে, আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন:

    [ "12" ]
    

    আপনি যদি মাঝে মাঝে HTTP 404 সমস্যার সম্মুখীন না হন, তাহলে আপনি সম্ভবত দেখতে পাবেন যে নির্দিষ্ট রিভিশনটি ডিপ্লয় করা হয়েছে।

  4. শ্রেণীবিভাগ ট্রি পড়ুন এবং নিম্নলিখিত কমান্ড ব্যবহার করে 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