এজ UI এ API অনুরোধগুলি ক্যাপচার করা হয়নি

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

লক্ষণ

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

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

এই সমস্যাটি ঘটলে Edge UI-তে কোনো ত্রুটি বার্তা প্রদর্শিত হবে না।

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

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

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

কারণ: মেসেজ প্রসেসর দ্বারা অনুরোধগুলি প্রক্রিয়া করা হয়নি

রোগ নির্ণয়

একটি ট্রেস সেশনে কোনো এপিআই অনুরোধ ক্যাপচার করতে হলে, অনুরোধটি অবশ্যই এজ-এর কম্পোনেন্ট মেসেজ প্রসেসর দ্বারা প্রসেস করা থাকতে হবে। বিভিন্ন কারণে একটি এপিআই অনুরোধ ট্রেস ট্রানজ্যাকশনে ক্যাপচার নাও হতে পারে।

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

দৃশ্যকল্প ১: অনুরোধগুলি Apigee Edge-এ পৌঁছাতে ব্যর্থ হয়

  • কারণ

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

    curl https://hostName:port/apiProxyBasePath/requestPath
    
    curl: (6) Could not resolve host: hostName
    
  • সমাধান

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

    dig hostName

    আপনি নিম্নলিখিত কমান্ডের মাধ্যমে নেটওয়ার্ক সংযোগ যাচাই করতে পারেন:

    telnet hostName port

দৃশ্যকল্প ২: Apigee Edge Router-এ অনুরোধগুলি ব্যর্থ হয়

  • কারণ

    এই ক্ষেত্রে, TLS/SSL হ্যান্ডশেক ব্যর্থতার কারণে ত্রুটিটি হতে পারে। যদি তাই হয়, আপনি নিম্নলিখিত ত্রুটিগুলির মধ্যে একটি দেখতে পারেন:

    Received fatal alert: handshake_failure
    
    HTTP/1.1 400 Bad Request
    

    আপনি একটি SSL সার্টিফিকেট ত্রুটিও দেখতে পারেন।

  • সমাধান

    এই সমস্যাগুলো চিহ্নিত ও সমাধান করতে নিম্নলিখিত প্লেবুকগুলো দেখুন:

    TLS/SSL হ্যান্ডশেক ব্যর্থতা

    400 ব্যাড রিকোয়েস্ট - SSL সার্টিফিকেট ত্রুটি

দৃশ্যকল্প ৩: মেসেজ প্রসেসর দ্বারা অনুরোধগুলি প্রক্রিয়া করা যাচ্ছে না

  • কারণ

    এই পরিস্থিতিতে, Apigee মেসেজ প্রসেসর নির্দিষ্ট ভার্চুয়াল হোস্ট এবং পাথের জন্য এপিআই প্রক্সি খুঁজে পাচ্ছে না। ফলে, আপনি নিম্নলিখিত ত্রুটিগুলির মধ্যে একটি দেখতে পারেন:

    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 হোস্টের জন্য প্রক্সি শনাক্ত করা যাচ্ছে না

কারণ: ক্লাসিফিকেশন ট্রি-তে এপিআই প্রক্সি খুঁজে পাওয়া যায়নি

রোগ নির্ণয়

যদি কোনো মেসেজ প্রসেসর তার ক্লাসিফিকেশন ট্রি-তে কোনো এপিআই প্রক্সি খুঁজে না পায়, তাহলে সেই নির্দিষ্ট প্রক্সিতে পাঠানো কোনো এপিআই অনুরোধ এজ ইউআই-এর ট্রেস সেশনে দেখানো হবে না।

বিষয়টি এমন কিনা তা নির্ধারণ করতে নিচের ধাপগুলো অনুসরণ করুন:

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

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

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

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

    [ "12" ]
    

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

  2. নিম্নলিখিত কমান্ডটি ব্যবহার করে ক্লাসিফিকেশন ট্রি পড়ুন এবং এপিআই প্রক্সি নামটি আছে কিনা তা যাচাই করুন:

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

সমাধান

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

  1. ক্লাসিফিকেশন ট্রি-তে যে মেসেজ প্রসেসর হোস্টগুলিতে নির্দিষ্ট এপিআই প্রক্সিটি অনুপস্থিত, সেগুলির প্রতিটিতে লগ ইন করুন এবং মেসেজ প্রসেসরটি রিস্টার্ট করতে নিচের কমান্ডটি ব্যবহার করুন:

    /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. মেসেজ প্রসেসর প্রস্তুত হয়ে গেলে, নিম্নলিখিত কমান্ডটি ব্যবহার করে এপিআই প্রক্সির প্রাপ্যতা যাচাই করুন:

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

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

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

    [ "12" ]
    

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

  4. নিম্নলিখিত কমান্ডটি ব্যবহার করে ক্লাসিফিকেশন ট্রি পড়ুন এবং এপিআই প্রক্সি নামের অস্তিত্ব যাচাই করুন:

    curl -i http://localhost:8082/v1/classification/tree | grep apiName
    

    যদি সমস্যাটি এখনও থেকে যায়, তাহলে 'অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন' অংশে যান।

রোগ নির্ণয়ের তথ্য অবশ্যই সংগ্রহ করতে হবে

উপরের নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, তাহলে অনুগ্রহ করে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন এবং Apigee Edge Support-এর সাথে শেয়ার করুন:

রোগ নির্ণয়ের তথ্যের ধরণ আদেশ
ট্রেস সেশন কমান্ডের আউটপুট
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
সমস্ত মেসেজ প্রসেসরে নির্দিষ্ট এপিআই প্রক্সির জন্য ডেপ্লয় করা রিভিশনগুলোর তালিকা আউটপুট করুন।
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
সমস্ত মেসেজ প্রসেসরে ক্লাসিফিকেশন ট্রি আউটপুট
curl -i http://localhost:8082/v1/classification/tree