عدم ظهور البيانات في لوحات بيانات الإحصاءات

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

المشكلة

لا تعرض لوحات بيانات الإحصاءات (أداء الخادم الوكيل، والأداء المستهدف، وما إلى ذلك) أي بيانات في واجهة مستخدم Edge. تعرض جميع لوحات البيانات الرسالة التالية:

No traffic in the selected date range

رسائل الخطأ

ولا تؤدي هذه المشكلة إلى حدوث أخطاء يمكن ملاحظتها.

الأسباب المحتملة

يسرد الجدول التالي الأسباب المحتملة لهذه المشكلة:

السبب موجَّه إلى
عدم توفّر زيارات من واجهة برمجة التطبيقات لبيئة المؤسسة برنامج Edge لمستخدمي Private Cloud
البيانات المتوفرة في قاعدة بيانات Postgres، ولكن لا يتم عرضها في واجهة المستخدم برنامج Edge لمستخدمي Private Cloud
عدم إرسال بيانات "إحصاءات Google" إلى قاعدة بيانات Postgres برنامج Edge لمستخدمي Private Cloud
نشر "إحصاءات Google" غير صحيح برنامج Edge لمستخدمي Private Cloud
معرّفات UUID القديمة لخادم "إحصاءات Google" برنامج Edge لمستخدمي Private Cloud

عدم توفّر زيارات من واجهة برمجة التطبيقات لبيئة المؤسسة

التشخيص

  1. تحقَّق مما إذا كانت هناك زيارات إلى الخوادم الوكيلة لواجهة برمجة التطبيقات في بيئة المؤسسة المحدّدة للفترة التي تحاول عرض بيانات الإحصاءات فيها باستخدام إحدى الطرق التالية:
    1. يمكنك تفعيل التتبُّع لأي من واجهات برمجة التطبيقات التي يستخدمها حاليًا المستخدمون والتحقّق ممّا إذا كان بإمكانك الحصول على أي طلبات في التتبُّع.
    2. يمكنك عرض سجلات وصول NGINX (/opt/apigee/var/log/edge-router/nginx/logs/access.log) ومعرفة ما إذا كانت هناك أي إدخالات جديدة للخوادم الوكيلة لواجهة برمجة التطبيقات للمدة المحددة.
    3. إذا سجّلت معلومات من الخوادم الوكيلة لواجهة برمجة التطبيقات إلى خادم سجلّ مثل Syslog وSplunk وLoggly وما إلى ذلك، يمكنك التحقّق مما إذا كانت هناك أي إدخالات في خوادم السجلّات هذه للخوادم الوكيلة لواجهة برمجة التطبيقات للمدة المحدّدة.
  2. إذا لم تكن هناك زيارات (ما مِن طلبات من واجهة برمجة التطبيقات) للمدة المحدّدة، لن تكون بيانات الإحصاءات متوفّرة. ستظهر لك الرسالة "ما مِن زيارات في النطاق الزمني المحدّد" في لوحة بيانات الإحصاءات.

درجة الدقّة

  1. يمكنك إجراء بعض الطلبات إلى خادم وكيل لواجهة برمجة التطبيقات أو أكثر في بيئة المؤسسة المحددة.
  2. انتظِر لبضع ثوانٍ، ثم اعرض لوحات بيانات الإحصاءات في علامة التبويب "الساعة" لمعرفة ما إذا كانت البيانات ستظهر أم لا.
  3. في حال استمرار المشكلة، يُرجى الانتقال إلى البيانات المتاحة في قاعدة بيانات Postgres، ولكن لا يتم عرضها في واجهة المستخدم.

البيانات المتوفرة في قاعدة بيانات Postgres، ولكن لا يتم عرضها في واجهة المستخدم

المشكلة

أولاً، يجب تحديد مدى توفّر أحدث بيانات "إحصاءات Google" في قاعدة بيانات Postgres.

للتحقّق من توفر أحدث بيانات "إحصاءات Google" في عقدة Postgres الرئيسية:

  1. سجِّل الدخول إلى كل خادم من خوادم Postgres وشغِّل الأمر التالي للتحقّق مما إذا كنت تستخدم عقدة Postgres الرئيسية:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    
  2. في عقدة Master Postgres، سجِّل الدخول إلى PostgreSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    
  3. تحقَّق من توفُّر الجدول لغرف مؤسستك باستخدام استعلام SQL التالي في قاعدة بيانات Postgres:
    \d analytics."orgname.envname.fact"
    
  4. تحقَّق مما إذا كانت أحدث البيانات متاحة في قاعدة بيانات Postgres باستخدام طلب بحث SQL التالي:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
    
  5. إذا كان الطابع الزمني الأخير قديمًا جدًا (أو فارغًا)، هذا يعني أنّ البيانات غير متاحة في قاعدة بيانات Postgres. قد يكون السبب المحتمل لهذه المشكلة هو عدم دفع البيانات من خادم Qpid إلى قاعدة بيانات Postgres. انتقِل إلى عدم إرسال بيانات "إحصاءات Google" إلى قاعدة بيانات Postgres.
  6. إذا كانت أحدث البيانات متاحة في قاعدة بيانات Postgres في العقدة الرئيسية، اتّبِع الخطوات التالية لتشخيص سبب عدم عرض البيانات في واجهة مستخدم Edge.

التشخيص

  1. فعِّل أدوات المطوّرين في متصفّح Chrome واحصل على واجهة برمجة التطبيقات المستخدَمة من إحدى لوحات بيانات الإحصاءات باتّباع الخطوات التالية:
    1. اختر علامة التبويب "الشبكة" من "أدوات المطوّرين".
    2. ابدأ التسجيل.
    3. أعِد تحميل لوحة بيانات "إحصاءات Google".
    4. في اللوحة اليمنى من أدوات المطوّرين، اختَر الصف الذي يحتوي على "apiproxy?_optimized...".
    5. في اللوحة اليسرى من أدوات المطوّرين، انقر على علامة التبويب "العناوين" ودوِّن "طلب عنوان 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. إذا لاحظت استجابة ناجحة ولكن بدون أي بيانات، يعني ذلك أنّ خادم الإدارة غير قادر على جلب البيانات من خادم Postgres بسبب مشاكل في الاتصال بالشبكة.
  5. تحقَّق من قدرتك على الاتصال بخادم Postgres من خلال خادم الإدارة:
    telnet Postgres_server_IP_address 5432
    
  6. إذا لم تتمكّن من الاتصال بخادم Postgres، تحقَّق مما إذا كانت هناك أي قيود على جدار الحماية على المنفذ 5432.
  7. إذا كانت هناك قيود على جدار الحماية، قد يكون ذلك هو سبب عدم تمكّن خادم الإدارة من سحب البيانات من خادم Postgres.

درجة الدقّة

  1. في حال كانت هناك قيود على جدار الحماية، يجب إزالتها حتى يتمكن خادم الإدارة من الاتصال بخادم Postgres.
  2. إذا لم تكن هناك قيود جدار الحماية، فقد تكون هذه المشكلة ناتجة عن خلل في الشبكة.
  3. إذا كان هناك أي خلل في الشبكة على خادم الإدارة، قد تؤدي إعادة تشغيله إلى حلّ المشكلة.
  4. أعِد تشغيل جميع خوادم الإدارة واحدًا تلو الآخر باستخدام الأمر التالي:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. تحقَّق ممّا إذا كان بإمكانك الاطّلاع على بيانات الإحصاءات في واجهة مستخدم Edge.

إذا لم تظهر لك البيانات بعد، يُرجى التواصل مع فريق دعم Apigee Edge.

عدم إرسال بيانات "إحصاءات Google" إلى قاعدة بيانات Postgres

التشخيص

إذا لم يتم دفع البيانات من خادم Qpid إلى قاعدة بيانات Postgres كما هو محدَّد في البيانات المتوفرة في قاعدة بيانات Postgres، ولكن لا تظهر في واجهة المستخدم، نفِّذ الخطوات التالية:

  1. تأكَّد من أنّ كل خادم من خوادم Qpid يعمل من خلال تنفيذ الأمر التالي:
    /opt/apigee/bin/apigee-service edge-qpid-server status
    
    .
  2. إذا تعطل أي خادم Qpid، فأعد تشغيله. إذا لم يكن الأمر كذلك، فانتقل إلى الخطوة رقم 5.
    /opt/apigee/bin/apigee-service edge-qpid-server restart
    
  3. انتظر بعض الوقت ثم أعد التحقق مما إذا كانت أحدث البيانات متاحة في قاعدة بيانات Postgres.
    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 وتحقَّق من قيم العمود msgIn وmsgOut.
    2. إليك نموذج ناتج يوضح أن msgIn وmsgOut غير متساويين. يشير هذا إلى أنّه لا يتم إرسال الرسائل من خادم Qpid إلى قاعدة بيانات Postgres.

  6. في حال عدم تطابق عمودَي msgIn وmsgOut، راجِع سجلّات خادم Qpid /opt/apigee/var/log/edge-qpid-server/system.log لمعرفة ما إذا كانت هناك أي أخطاء.
  7. قد تظهر لك رسائل خطأ، مثل "ربما لا يزال PG لا يزال معطّلاً" أو "FATAL: عذرًا، هناك عدد كبير جدًا من البرامج فعلاً" كما هو موضّح في الشكل أدناه:
    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.

درجة الدقّة

  1. أعِد تشغيل خادم Postgres وPostgreSQL كما هو موضَّح أدناه:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. تضمن إعادة التشغيل هذه إيقاف جميع طلبات بحث SQL السابقة ويجب أن تسمح بالاتصالات الجديدة بقاعدة بيانات Postgres.
  3. أعِد تحميل لوحات بيانات "إحصاءات Google" وتحقَّق من عرض بيانات "إحصاءات Google".

في حال استمرار المشكلة، يُرجى التواصل مع فريق دعم Apigee Edge.

نشر "إحصاءات Google" غير صحيح

التشخيص

  1. يمكنك الحصول على حالة نشر الإحصاءات باستخدام الطلب التالي من واجهة برمجة التطبيقات:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
    
  2. تحقَّق من حالة خادمَي Qpid وPostgres من نتائج طلب بيانات من واجهة برمجة التطبيقات.
    1. إذا تم عرض حالة خادمَي Qpid وPostgres على أنّها "ناجح"، يعني ذلك أنّ خوادم الإحصاءات قد تم توصيلها بشكل صحيح. انتقِل إلى معرّفات UUID القديمة لخادم "إحصاءات Google".
    2. إذا كانت حالة خوادم Qpid/Postgres ظاهرة على أنّها "UNKNOWN" أو "FAILURE"، يعني ذلك أنّ هناك مشكلة في الخادم المقابل.

      على سبيل المثال، يعرض السيناريو التالي حالة خوادم Postgres على أنّها "غير معروفة":

      وقد يحدث ذلك في حال تعذّر إعداد الإحصاءات. ويؤدي هذا الإخفاق إلى منع وصول الرسائل من خوادم الإدارة إلى خوادم Postgres.

درجة الدقّة

يمكن حلّ هذه المشكلة في العادة من خلال إعادة تشغيل الخوادم التي تعرض الخطأ "فشل" أو "غير معروف".

  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. إذا ظهرت لك المشكلة في خوادم Postgres، أعِد تشغيل عُقدتي خادم Master وSlave Postgres Server:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
      
  3. في المثال أعلاه، يتم عرض الرسالة "غير معروف" لخوادم Postgres، لذلك تحتاج إلى إعادة تشغيل خادمَي Master وSlave Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    

المعرّفات الفريدة العالمية (UUID) لخادم "إحصاءات Google" القديمة

التشخيص

  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. أسماء org-env المُدرَجة في عنصر "scopes".
    2. أرقام التعريف الفريدة العالمية (UUID) لخوادم Postgres وخوادم Qpid.
      • يمكنك الحصول على المعرّفات الفريدة العالمية (UUID) لخادم Postgres عن طريق تنفيذ الأمر التالي على كل عقدة من عُقد خادم Postgres:
        curl 0:8084/v1/servers/self/uuid
        
      • احصل على معرّفات UUID لخادم Qpid من خلال تشغيل الأمر التالي على كل عقدة من عُقد خادم Qpid:
        curl 0:8083/v1/servers/self/uuid
        
  3. إذا كانت جميع المعلومات صحيحة، انتقِل إلى عدم إرسال بيانات "إحصاءات Google" إلى قاعدة بيانات Postgres.
  4. إذا كانت المعرّفات الفريدة العالمية (UUID) لخوادم Postgres و/أو خوادم Qpid غير صحيحة، من المحتمل أن تشير خوادم الإدارة إلى معرّفات UUID قديمة.

درجة الدقّة

لإزالة أرقام التعريف الفريدة العالمية (UUID) القديمة وإضافة أرقام التعريف الفريدة العالمية (UUID) الصحيحة للخوادم، يُرجى التواصل مع فريق دعم Apigee Edge.