داده ها در داشبوردهای تجزیه و تحلیل نمایش داده نمی شوند

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

علامت

داشبوردهای تحلیلی (عملکرد پروکسی، عملکرد هدف و غیره) هیچ داده‌ای را در رابط کاربری Edge نشان نمی‌دهند. همه داشبوردها پیام زیر را نشان می‌دهند:

No traffic in the selected date range

پیام‌های خطا

این مشکل منجر به خطاهای قابل مشاهده نمی‌شود.

علل احتمالی

جدول زیر علل احتمالی این مشکل را فهرست می‌کند:

علت برای
بدون ترافیک API برای محیط سازمانی لبه برای کاربران ابر خصوصی
داده‌ها در پایگاه داده Postgres موجود است، اما در رابط کاربری نمایش داده نمی‌شوند. لبه برای کاربران ابر خصوصی
داده‌های تحلیلی به پایگاه داده Postgres ارسال نمی‌شوند لبه برای کاربران ابر خصوصی
استقرار نادرست تجزیه و تحلیل لبه برای کاربران ابر خصوصی
UUID های سرور آنالیتیکس قدیمی لبه برای کاربران ابر خصوصی

بدون ترافیک API برای محیط سازمانی

تشخیص

  1. با استفاده از یکی از روش‌های زیر، بررسی کنید که آیا در مدت زمان مشخصی که سعی در مشاهده داده‌های تحلیلی دارید، ترافیکی برای API Proxies در محیط سازمانی خاص وجود دارد یا خیر:
    1. ردیابی را برای هر یک از API های خود که در حال حاضر توسط کاربران شما استفاده می شود فعال کنید و بررسی کنید که آیا می توانید درخواستی را در ردیابی دریافت کنید.
    2. گزارش‌های دسترسی NGINX ( /opt/apigee/var/log/edge-router/nginx/logs/access.log) را مشاهده کنید و ببینید آیا ورودی جدیدی برای API Proxies برای مدت زمان خاص وجود دارد یا خیر.
    3. اگر اطلاعات را از API Proxies به یک سرور لاگ مانند Syslog، Splunk، Loggly و غیره وارد می‌کنید، می‌توانید بررسی کنید که آیا برای مدت زمان خاص، ورودی‌هایی در این سرورهای لاگ برای API Proxies وجود دارد یا خیر.
  2. اگر برای مدت زمان مشخصی هیچ ترافیکی (هیچ درخواست API) وجود نداشته باشد، داده‌های تحلیلی در دسترس نیستند. در داشبورد تحلیلی عبارت «هیچ ترافیکی در محدوده تاریخ انتخاب شده وجود ندارد» را مشاهده خواهید کرد.

وضوح تصویر

  1. در محیط سازمانی خاص، با یک یا چند پروکسی API تماس برقرار کنید.
  2. چند ثانیه صبر کنید و سپس داشبوردهای تحلیلی را در تب Hour مشاهده کنید و ببینید آیا داده‌ها نمایش داده می‌شوند یا خیر.
  3. اگر مشکل همچنان ادامه داشت، به بخش «داده‌ها در پایگاه داده Postgres موجود است، اما در رابط کاربری نمایش داده نمی‌شوند» بروید.

داده‌ها در پایگاه داده Postgres موجود است، اما در رابط کاربری نمایش داده نمی‌شوند.

علامت

ابتدا، در دسترس بودن آخرین داده‌های Analytics را در پایگاه داده Postgres تعیین کنید.

برای بررسی اینکه آیا آخرین داده‌های Analytics در گره Postgres Master موجود است یا خیر:

  1. به هر یک از سرورهای Postgres وارد شوید و دستور زیر را اجرا کنید تا تأیید کنید که آیا در گره Master 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، بررسی کنید که آیا جدول مورد نظر برای org-env شما وجود دارد یا خیر:
    \d analytics."orgname.envname.fact"
  4. با استفاده از کوئری SQL زیر، بررسی کنید که آیا آخرین داده‌ها در پایگاه داده Postgres موجود است یا خیر:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  5. اگر آخرین برچسب زمانی بسیار قدیمی (یا تهی) باشد، این نشان می‌دهد که داده‌ها در پایگاه داده Postgres موجود نیستند. دلیل احتمالی این مشکل این است که داده‌ها از سرور Qpid به پایگاه داده Postgres ارسال نمی‌شوند. به بخش «داده‌های تحلیلی به پایگاه داده Postgres ارسال نمی‌شوند» بروید.
  6. اگر آخرین داده‌ها در پایگاه داده Postgres در گره Master موجود است، مراحل زیر را برای تشخیص دلیل عدم نمایش داده‌ها در رابط کاربری Edge دنبال کنید.

تشخیص

  1. ابزارهای توسعه‌دهنده را در مرورگر کروم خود فعال کنید و با استفاده از مراحل زیر، API مورد استفاده را از یکی از داشبوردهای تحلیلی دریافت کنید:
    1. از ابزارهای توسعه‌دهندگان، برگه شبکه (Network) را انتخاب کنید.
    2. شروع ضبط.
    3. داشبورد آنالیتیکس را مجدداً بارگذاری کنید.
    4. در پنل سمت چپ در ابزارهای توسعه‌دهندگان، ردیفی که عبارت «apiproxy?_optimized...» در آن وجود دارد را انتخاب کنید.
    5. در پنل سمت راست در ابزارهای توسعه‌دهندگان، برگه «Headers» را انتخاب کنید و «Request URL» را یادداشت کنید.
  2. در اینجا نمونه خروجی از ابزارهای توسعه‌دهنده آمده است:

    نمونه خروجی که API مورد استفاده در داشبورد Proxy Performance از تب Network در ابزار توسعه‌دهندگان برای داشبورد Proxy Performance را نشان می‌دهد.

  3. فراخوانی API مدیریت را مستقیماً اجرا کنید و بررسی کنید که آیا نتایج را دریافت می‌کنید یا خیر. در اینجا یک نمونه فراخوانی API برای برگه روز در داشبورد عملکرد پروکسی آمده است:
    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 متصل شوید، بررسی کنید که آیا محدودیتی در فایروال روی پورت ۵۴۳۲ وجود دارد یا خیر.
  7. اگر محدودیت‌هایی از جانب فایروال وجود داشته باشد، می‌تواند دلیل عدم توانایی سرور مدیریت در دریافت داده‌ها از سرور Postgres باشد.

وضوح تصویر

  1. اگر محدودیت‌هایی در فایروال وجود دارد، آنها را حذف کنید تا سرور مدیریت بتواند با سرور Postgres ارتباط برقرار کند.
  2. اگر هیچ محدودیتی از طرف فایروال وجود نداشته باشد، این مشکل می‌تواند به دلیل اختلال در شبکه باشد.
  3. اگر هرگونه اختلال شبکه‌ای در سرور مدیریت وجود داشته باشد، راه‌اندازی مجدد آن ممکن است مشکل را برطرف کند.
  4. با استفاده از دستور زیر، تمام سرورهای مدیریتی را یکی یکی مجدداً راه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. بررسی کنید که آیا می‌توانید داده‌های تحلیلی را در رابط کاربری Edge مشاهده کنید یا خیر.

اگر هنوز داده‌ها را نمی‌بینید، با پشتیبانی Apigee Edge تماس بگیرید.

داده‌های تحلیلی به پایگاه داده Postgres ارسال نمی‌شوند

تشخیص

اگر داده‌ها از سرور Qpid به پایگاه داده Postgres ارسال نمی‌شوند، همانطور که در بخش «داده‌های موجود در پایگاه داده Postgres» مشخص شده است، اما در رابط کاربری نمایش داده نمی‌شوند ، مراحل زیر را انجام دهید:

  1. با اجرای دستور زیر، بررسی کنید که آیا هر یک از سرورهای Qpid فعال و در حال اجرا هستند یا خیر:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. اگر هر یک از سرورهای Qpid از کار افتاده است، آن را مجدداً راه‌اندازی کنید. در غیر این صورت، به مرحله ۵ بروید.
    /opt/apigee/apigee-service/bin 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 Server در مسیر /opt/apigee/var/log/edge-qpid-server/system.log را بررسی کنید و ببینید آیا خطایی وجود دارد یا خیر.
  7. ممکن است پیام‌های خطایی مانند «احتمالاً PG هنوز از کار افتاده است» یا «FATAL: sorry, too many clients already» را همانطور که در شکل زیر نشان داده شده است، مشاهده کنید:
    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 Server پاسخ دهد.

وضوح تصویر

  1. سرور Postgres و PostgreSQL را مطابق شکل زیر مجدداً راه‌اندازی کنید:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. این راه‌اندازی مجدد تضمین می‌کند که تمام کوئری‌های SQL قبلی متوقف شده‌اند و باید امکان اتصال‌های جدید به پایگاه داده Postgres را فراهم کنند.
  3. داشبوردهای آنالیتیکس را مجدداً بارگذاری کنید و بررسی کنید که آیا داده‌های آنالیتیکس نمایش داده می‌شوند یا خیر.

اگر مشکل همچنان ادامه داشت، با پشتیبانی Apigee Edge تماس بگیرید.

استقرار نادرست تجزیه و تحلیل

تشخیص

  1. با استفاده از فراخوانی API زیر، وضعیت استقرار تحلیلی را دریافت کنید:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
  2. وضعیت سرورهای Qpid و Postgres را از نتایج فراخوانی API بررسی کنید.
    1. اگر وضعیت سرورهای Qpid و Postgres به صورت "SUCCESS" نشان داده شود، نشان می‌دهد که سرورهای تحلیلی به درستی سیم‌کشی شده‌اند. به بخش UUIDهای قدیمی سرور تحلیلی بروید.
    2. اگر وضعیت سرورهای Qpid/Postgres به صورت "UNKNOWN" یا "FAILURE" نمایش داده شود، نشان دهنده وجود مشکل در سرور مربوطه است.

      برای مثال، سناریوی زیر وضعیت سرورهای Postgres را به صورت "UNKNOWN" نشان می‌دهد:

      این ممکن است در صورت بروز نقص در هنگام نصب آنالیتیکس رخ دهد. این نقص مانع از رسیدن پیام‌ها از سرورهای مدیریت به سرورهای Postgres می‌شود.

وضوح تصویر

این مشکل معمولاً با راه‌اندازی مجدد سرورهایی که پیام‌های «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. اگر این مشکل را در سرورهای Postgres مشاهده کردید، هر دو گره سرور Postgres Master و Slave را مجدداً راه‌اندازی کنید:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. در مثال بالا، پیام "UNKNOWN" برای سرورهای Postgres نمایش داده می‌شود، بنابراین باید هر دو سرور Postgres Master و Slave را مجدداً راه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

UUID های سرور آنالیتیکس قدیمی

تشخیص

  1. پیکربندی تحلیلی را با استفاده از فراخوانی API زیر دریافت کنید:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax

    در اینجا نمونه‌ای از خروجی API فوق را مشاهده می‌کنید:

    [ {
      "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.
      • با اجرای دستور زیر روی هر یک از گره‌های سرور Postgres، UUIDهای سرور Postgres را دریافت کنید:
        curl 0:8084/v1/servers/self/uuid
      • با اجرای دستور زیر روی هر یک از گره‌های سرور Qpid، شناسه‌های کاربری (UUID) سرور Qpid را دریافت کنید:
        curl 0:8083/v1/servers/self/uuid
  3. اگر همه اطلاعات صحیح است، به عدم ارسال داده‌های تحلیلی به پایگاه داده Postgres ادامه دهید.
  4. اگر UUID های سرورهای Postgres و/یا Qpid نادرست باشند، ممکن است سرورهای مدیریت به UUID های قدیمی اشاره داشته باشند.

وضوح تصویر

برای حذف UUID های قدیمی و اضافه کردن UUID های صحیح سرورها، با پشتیبانی Apigee Edge تماس بگیرید.