বিশ্লেষণ ড্যাশবোর্ডে ডেটা দেখানো হচ্ছে না

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

লক্ষণ

অ্যানালিটিক্স ড্যাশবোর্ডগুলো (প্রক্সি পারফরম্যান্স, টার্গেট পারফরম্যান্স, ইত্যাদি) এজ UI-তে কোনো ডেটা দেখাচ্ছে না। সব ড্যাশবোর্ডেই নিম্নলিখিত বার্তাটি দেখাচ্ছে:

No traffic in the selected date range

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

এই সমস্যাটির ফলে কোনো দৃশ্যমান ত্রুটি দেখা যায় না।

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

নিম্নলিখিত সারণিতে এই সমস্যার সম্ভাব্য কারণগুলো তালিকাভুক্ত করা হলো:

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

অর্গানাইজেশন-এনভায়রনমেন্টের জন্য কোনো এপিআই ট্র্যাফিক নেই

রোগ নির্ণয়

  1. নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে পরীক্ষা করুন যে, আপনি যে নির্দিষ্ট সময়কালের জন্য অ্যানালিটিক্স ডেটা দেখার চেষ্টা করছেন, সেই নির্দিষ্ট সংস্থা-পরিবেশে এপিআই প্রক্সিগুলিতে ট্র্যাফিক আছে কিনা:
    1. আপনার ব্যবহারকারীরা বর্তমানে ব্যবহার করছেন এমন যেকোনো API-এর জন্য ট্রেস চালু করুন এবং ট্রেসে কোনো রিকোয়েস্ট পাওয়া যাচ্ছে কিনা তা পরীক্ষা করুন।
    2. NGINX অ্যাক্সেস লগ ( /opt/apigee/var/log/edge-router/nginx/logs/access.log) দেখুন এবং নির্দিষ্ট সময়কালের জন্য API প্রক্সিগুলির কোনো নতুন এন্ট্রি আছে কিনা তা পরীক্ষা করুন।
    3. যদি আপনি এপিআই প্রক্সি থেকে সিসলগ, স্প্ল্যাঙ্ক, লগলি ইত্যাদির মতো কোনো লগ সার্ভারে তথ্য লগ করেন, তাহলে আপনি পরীক্ষা করে দেখতে পারেন যে নির্দিষ্ট সময়কালের জন্য এই লগ সার্ভারগুলিতে এপিআই প্রক্সির কোনো এন্ট্রি আছে কি না।
  2. নির্দিষ্ট সময়কালে কোনো ট্র্যাফিক (কোনো API অনুরোধ) না থাকলে, অ্যানালিটিক্স ডেটা পাওয়া যায় না। আপনি অ্যানালিটিক্স ড্যাশবোর্ডে "নির্বাচিত তারিখের পরিসরে কোনো ট্র্যাফিক নেই" লেখাটি দেখতে পাবেন।

সমাধান

  1. নির্দিষ্ট সংস্থা-পরিবেশে এক বা একাধিক এপিআই প্রক্সিতে কল করুন।
  2. কয়েক সেকেন্ড অপেক্ষা করুন, এবং তারপর 'Hour' ট্যাবে থাকা অ্যানালিটিক্স ড্যাশবোর্ডগুলো দেখুন এবং ডেটা দেখা যাচ্ছে কিনা তা পর্যবেক্ষণ করুন।
  3. যদি সমস্যাটি অব্যাহত থাকে, তাহলে "Data available in Postgres Database, but not displaying in UI" অংশে যান।

ডেটা পোস্টগ্রেস ডেটাবেসে আছে, কিন্তু UI-তে দেখা যাচ্ছে না।

লক্ষণ

প্রথমে, পোস্টগ্রেস ডেটাবেসে সর্বশেষ অ্যানালিটিক্স ডেটার প্রাপ্যতা যাচাই করুন।

Postgres Master নোডে সর্বশেষ অ্যানালিটিক্স ডেটা উপলব্ধ আছে কিনা তা পরীক্ষা করতে:

  1. আপনি মাস্টার পোস্টগ্রেস নোডে আছেন কিনা তা যাচাই করতে প্রতিটি পোস্টগ্রেস সার্ভারে লগ ইন করুন এবং নিম্নলিখিত কমান্ডটি চালান:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
  2. মাস্টার পোস্টগ্রেস নোডে, PostgreSQL-এ লগ ইন করুন:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
  3. Postgres ডেটাবেসে নিম্নলিখিত SQL কোয়েরিটি ব্যবহার করে আপনার org-env-এর জন্য টেবিলটি বিদ্যমান আছে কিনা তা পরীক্ষা করুন:
    \d analytics."orgname.envname.fact"
  4. নিম্নলিখিত SQL কোয়েরি ব্যবহার করে পোস্টগ্রেস ডেটাবেসে সর্বশেষ ডেটা উপলব্ধ আছে কিনা তা পরীক্ষা করুন:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  5. যদি সর্বশেষ টাইমস্ট্যাম্পটি খুব পুরানো (বা নাল) হয়, তাহলে এটি নির্দেশ করে যে পোস্টগ্রেস ডেটাবেসে ডেটা উপলব্ধ নেই। এই সমস্যার সম্ভাব্য কারণ হলো, ডেটা কিউপিড সার্ভার থেকে পোস্টগ্রেস ডেটাবেসে পুশ করা হচ্ছে না। 'অ্যানালিটিক্স ডেটা পোস্টগ্রেস ডেটাবেসে পুশ করা হচ্ছে না' অংশে যান।
  6. যদি মাস্টার নোডের পোস্টগ্রেস ডেটাবেসে সর্বশেষ ডেটা উপলব্ধ থাকে, তাহলে এজ ইউআই-তে ডেটা কেন প্রদর্শিত হচ্ছে না তা নির্ণয় করতে নিচের ধাপগুলো অনুসরণ করুন।

রোগ নির্ণয়

  1. আপনার ক্রোম ব্রাউজারে ডেভেলপার টুলস চালু করুন এবং নিচের ধাপগুলো অনুসরণ করে অ্যানালিটিক্স ড্যাশবোর্ডগুলোর একটি থেকে ব্যবহৃত এপিআই (API) সংগ্রহ করুন:
    1. ডেভেলপার টুলস থেকে নেটওয়ার্ক ট্যাবটি নির্বাচন করুন।
    2. রেকর্ডিং শুরু করুন।
    3. অ্যানালিটিক্স ড্যাশবোর্ডটি পুনরায় লোড করুন।
    4. ডেভেলপার টুলসের বাম দিকের প্যানেলে, "apiproxy?_optimized..." লেখা সারিটি নির্বাচন করুন।
    5. ডেভেলপার টুলসের ডানদিকের প্যানেলে, 'হেডার্স' ট্যাবটি নির্বাচন করুন এবং 'রিকোয়েস্ট ইউআরএল' (Request URL) নোট করে নিন।
  2. ডেভেলপার টুলস থেকে প্রাপ্ত আউটপুটের একটি নমুনা নিচে দেওয়া হলো:

    প্রক্সি পারফরম্যান্স ড্যাশবোর্ডের ডেভেলপার টুলস-এর নেটওয়ার্ক ট্যাব থেকে প্রক্সি পারফরম্যান্স ড্যাশবোর্ডে ব্যবহৃত এপিআই-এর নমুনা আউটপুট দেখানো হচ্ছে।

  3. সরাসরি ম্যানেজমেন্ট এপিআই কলটি চালান এবং ফলাফল পাচ্ছেন কিনা তা পরীক্ষা করুন। প্রক্সি পারফরম্যান্স ড্যাশবোর্ডের ডে ট্যাবের জন্য একটি নমুনা এপিআই কল নিচে দেওয়া হলো:
    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"
  4. যদি আপনি একটি সফল প্রতিক্রিয়া দেখেন কিন্তু কোনো ডেটা না থাকে, তাহলে এটি নির্দেশ করে যে নেটওয়ার্ক সংযোগ সমস্যার কারণে ম্যানেজমেন্ট সার্ভার পোস্টগ্রেস সার্ভার থেকে ডেটা আনতে পারছে না।
  5. ম্যানেজমেন্ট সার্ভার থেকে পোস্টগ্রেস সার্ভারে সংযোগ করতে পারছেন কিনা তা পরীক্ষা করুন:
    telnet Postgres_server_IP_address 5432
  6. আপনি যদি পোস্টগ্রেস সার্ভারে সংযোগ করতে না পারেন, তবে পোর্ট 5432-এ কোনো ফায়ারওয়াল বিধিনিষেধ আছে কিনা তা পরীক্ষা করুন।
  7. যদি ফায়ারওয়ালের কোনো সীমাবদ্ধতা থাকে, তাহলে ম্যানেজমেন্ট সার্ভারটি পোস্টগ্রেস সার্ভার থেকে ডেটা সংগ্রহ করতে না পারার কারণ সেটিই হতে পারে।

সমাধান

  1. যদি ফায়ারওয়ালের কোনো বিধিনিষেধ থাকে, তাহলে সেগুলো সরিয়ে দিন যাতে ম্যানেজমেন্ট সার্ভার পোস্টগ্রেস সার্ভারের সাথে যোগাযোগ করতে পারে।
  2. যদি কোনো ফায়ারওয়াল বিধিনিষেধ না থাকে, তাহলে এই সমস্যাটি নেটওয়ার্কের ত্রুটির কারণে হতে পারে।
  3. ম্যানেজমেন্ট সার্ভারে কোনো নেটওয়ার্ক ত্রুটি থাকলে, সেটি রিস্টার্ট করলে সমস্যাটির সমাধান হতে পারে।
  4. নিচের কমান্ডটি ব্যবহার করে সমস্ত ম্যানেজমেন্ট সার্ভার এক এক করে রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. আপনি Edge UI-তে অ্যানালিটিক্স ডেটা দেখতে পাচ্ছেন কিনা তা যাচাই করুন।

এরপরও যদি আপনি ডেটা দেখতে না পান, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

অ্যানালিটিক্স ডেটা পোস্টগ্রেস ডেটাবেসে পাঠানো হচ্ছে না

রোগ নির্ণয়

যদি 'Data available in Postgres Database, but not shown up in UI' অনুযায়ী Qpid সার্ভার থেকে Postgres ডেটাবেসে ডেটা পুশ করা না হয়ে থাকে, তাহলে নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. নিচের কমান্ডটি চালিয়ে প্রতিটি Qpid সার্ভার চালু আছে কিনা তা পরীক্ষা করুন:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. যদি কোনো Qpid সার্ভার ডাউন থাকে, তাহলে সেটি রিস্টার্ট করুন। অন্যথায়, সরাসরি ৫ নম্বর ধাপে চলে যান।
    /opt/apigee/apigee-service/bin edge-qpid-server restart
  3. কিছুক্ষণ অপেক্ষা করুন এবং তারপর পোস্টগ্রেস ডেটাবেসে সর্বশেষ ডেটা আছে কিনা তা পুনরায় পরীক্ষা করুন।
    1. PostgreSQL-এ লগ ইন করুন:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. সর্বশেষ ডেটা উপলব্ধ আছে কিনা তা পরীক্ষা করতে নিচের SQL কোয়েরিটি চালান:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  4. যদি সর্বশেষ ডেটা উপলব্ধ থাকে, তাহলে নিম্নলিখিত ধাপগুলি এড়িয়ে যান এবং সমাধান বিভাগের শেষ ধাপে চলে যান। যদি সর্বশেষ ডেটা উপলব্ধ না থাকে, তাহলে নিম্নলিখিত ধাপগুলি অনুসরণ করুন।
  5. Qpid সার্ভার কিউ থেকে মেসেজগুলো Postgres ডাটাবেসে পুশ করা হচ্ছে কিনা তা পরীক্ষা করুন।
    1. qpid-stat -q command চালান এবং msgInmsgOut কলামের মানগুলো পরীক্ষা করুন।
    2. এখানে একটি নমুনা আউটপুট দেওয়া হলো যা দেখাচ্ছে যে msgIn এবং msgOut সমান নয়। এটি নির্দেশ করে যে Qpid সার্ভার থেকে Postgres ডেটাবেসে মেসেজ পাঠানো হচ্ছে না।

  6. যদি msgIn এবং msgOut কলামে কোনো অমিল থাকে, তাহলে Qpid Server-এর লগ /opt/apigee/var/log/edge-qpid-server/system.log চেক করে দেখুন সেখানে কোনো ত্রুটি আছে কিনা।
  7. আপনি নিচের চিত্রে দেখানো "সম্ভবত পিজি এখনও ডাউন আছে" অথবা "মারাত্মক: দুঃখিত, ইতিমধ্যে অনেক বেশি ক্লায়েন্ট" এর মতো ত্রুটির বার্তা দেখতে পারেন:
    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)

এমনটা হতে পারে যদি পোস্টগ্রেস সার্ভার অতিরিক্ত SQL কোয়েরি চালায় অথবা সিপিইউ-এর ব্যবহার বেড়ে যাওয়ায় এটি কিউপিড সার্ভারে সাড়া দিতে পারে না।

সমাধান

  1. নিচে দেখানো পদ্ধতি অনুযায়ী Postgres সার্ভার এবং PostgreSQL পুনরায় চালু করুন:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. এই রিস্টার্টটি নিশ্চিত করে যে পূর্ববর্তী সমস্ত SQL কোয়েরি বন্ধ হয়ে গেছে এবং পোস্টগ্রেস ডেটাবেসে নতুন সংযোগ স্থাপনের অনুমতি দেবে।
  3. অ্যানালিটিক্স ড্যাশবোর্ডগুলো পুনরায় লোড করুন এবং অ্যানালিটিক্স ডেটা প্রদর্শিত হচ্ছে কিনা তা পরীক্ষা করুন।

যদি সমস্যাটি অব্যাহত থাকে, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

ভুল অ্যানালিটিক্স স্থাপন

রোগ নির্ণয়

  1. নিম্নলিখিত API কলটি ব্যবহার করে অ্যানালিটিক্স ডেপ্লয়মেন্টের স্ট্যাটাস জানুন:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
  2. এপিআই কলের ফলাফল থেকে কিউপিড এবং পোস্টগ্রেস সার্ভারগুলোর অবস্থা যাচাই করুন।
    1. যদি Qpid এবং Postgres সার্ভারগুলির স্ট্যাটাস "SUCCESS" দেখানো হয়, তাহলে এটি নির্দেশ করে যে অ্যানালিটিক্স সার্ভারগুলি সঠিকভাবে সংযুক্ত আছে। Stale Analytics Server UUIDs অংশে যান।
    2. যদি Qpid/Postgres সার্ভারগুলির স্ট্যাটাস "UNKNOWN" বা "FAILURE" হিসাবে দেখানো হয়, তাহলে এটি সংশ্লিষ্ট সার্ভারে একটি সমস্যা নির্দেশ করে।

      উদাহরণস্বরূপ, নিম্নলিখিত দৃশ্যকল্পটি পোস্টগ্রেস সার্ভারগুলির অবস্থা "UNKNOWN" হিসাবে দেখাচ্ছে:

      অ্যানালিটিক্স অনবোর্ডিংয়ের সময় কোনো ত্রুটি ঘটলে এমনটা হতে পারে। এই ত্রুটির কারণে ম্যানেজমেন্ট সার্ভার থেকে মেসেজগুলো পোস্টগ্রেস সার্ভারে পৌঁছাতে পারে না।

সমাধান

যে সার্ভারগুলিতে "FAILURE" বা "UNKNOWN" দেখাচ্ছিল, সেগুলিকে রিস্টার্ট করার মাধ্যমে সাধারণত এই সমস্যার সমাধান করা যায়।

  1. নিম্নলিখিত কমান্ডটি ব্যবহার করে সেই সার্ভারগুলির প্রত্যেকটি পুনরায় চালু করুন, যেগুলির অ্যানালিটিক্স ওয়্যারিং স্ট্যাটাস "FAILURE" বা "UNKNOWN" দেখাচ্ছে:
    /opt/apigee/apigee-service/bin/apigee-service component restart
  2. উদাহরণস্বরূপ:
    1. যদি আপনি Qpid সার্ভারগুলিতে সমস্যাটি দেখতে পান, তাহলে Qpid সার্ভারগুলি পুনরায় চালু করুন:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    2. যদি আপনি পোস্টগ্রেস সার্ভারগুলিতে সমস্যাটি দেখতে পান, তাহলে মাস্টার এবং স্লেভ উভয় পোস্টগ্রেস সার্ভার নোড পুনরায় চালু করুন:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. উপরের উদাহরণে, Postgres সার্ভারগুলোর জন্য "UNKNOWN" বার্তাটি দেখানো হয়েছে, তাই আপনাকে Master এবং Slave উভয় Postgres সার্ভারই ​​রিস্টার্ট করতে হবে:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

পুরনো অ্যানালিটিক্স সার্ভার UUID

রোগ নির্ণয়

  1. নিম্নলিখিত এপিআই কলটি ব্যবহার করে অ্যানালিটিক্স কনফিগারেশনটি পান:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax

    উপরোক্ত এপিআই থেকে প্রাপ্ত একটি নমুনা আউটপুট নিচে দেওয়া হলো:

    [ {
      "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" : {
      }
    } ]
  2. আউটপুটে নিম্নলিখিত তথ্যগুলো সঠিক কিনা তা নিশ্চিত করুন:
    1. 'scopes' এলিমেন্টে তালিকাভুক্ত org-env নামগুলো।
    2. Postgres সার্ভার এবং Qpid সার্ভারগুলোর UUID।
      • প্রতিটি পোস্টগ্রেস সার্ভার নোডে নিম্নলিখিত কমান্ডটি চালিয়ে পোস্টগ্রেস সার্ভার UUID-গুলি সংগ্রহ করুন:
        curl 0:8084/v1/servers/self/uuid
      • প্রতিটি Qpid সার্ভার নোডে নিম্নলিখিত কমান্ডটি চালিয়ে Qpid সার্ভার UUID-গুলো সংগ্রহ করুন:
        curl 0:8083/v1/servers/self/uuid
  3. যদি সমস্ত তথ্য সঠিক হয়, তাহলে ‘অ্যানালিটিক্স ডেটা পোস্টগ্রেস ডেটাবেসে পুশ করা হচ্ছে না’ অংশে অগ্রসর হন।
  4. যদি Postgres এবং/অথবা Qpid সার্ভারগুলির UUID ভুল হয়, তাহলে এমন হতে পারে যে ম্যানেজমেন্ট সার্ভারগুলি পুরনো UUID ব্যবহার করছে।

সমাধান

পুরনো UUID-গুলো সরাতে এবং সার্ভারগুলোর সঠিক UUID-গুলো যোগ করতে, Apigee Edge Support-এর সাথে যোগাযোগ করুন।