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

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

علامت

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

No traffic in the selected date range

پیام های خطا

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

علل احتمالی

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

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

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

تشخیص

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

قطعنامه

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

داده‌ها در پایگاه داده Postgres موجود است، اما در UI نمایش داده نمی‌شوند

علامت

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

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

  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. بررسی کنید که آیا جدول برای org-env شما با استفاده از پرس و جوی 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 منتقل نمی شوند. به تجزیه و تحلیل داده‌ها بروید که به پایگاه داده Postgres منتقل نمی‌شوند .
  6. اگر آخرین داده ها در پایگاه داده Postgres در گره Master موجود است، مراحل زیر را برای تشخیص اینکه چرا داده ها در رابط کاربری Edge نمایش داده نمی شوند را دنبال کنید.

تشخیص

  1. ابزار Developer Tools را در مرورگر کروم خود فعال کنید و API را از یکی از داشبوردهای تجزیه و تحلیل با استفاده از مراحل زیر دریافت کنید:
    1. تب Network را از ابزار Developer Tools انتخاب کنید.
    2. شروع به ضبط کنید.
    3. داشبورد Analytics را دوباره بارگیری کنید.
    4. در پانل سمت چپ در Developer Tools، ردیفی را که دارای "apiproxy?_optimized..." است انتخاب کنید.
    5. در پانل سمت راست در Developer Tools، تب "Headers" را انتخاب کرده و "Request URL" را یادداشت کنید.
  2. در اینجا نمونه خروجی از Developer Tools آمده است:

    نمونه خروجی نشان‌دهنده API مورد استفاده در داشبورد عملکرد پراکسی از تب Network of Developer Tools for Proxy Performance

  3. تماس مدیریت API را مستقیماً اجرا کنید و بررسی کنید که آیا نتایج را دریافت می کنید. در اینجا یک نمونه تماس API برای برگه Day در داشبورد Proxy Performance آمده است:
    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 تماس بگیرید.

داده های Analytics به پایگاه داده Postgres منتقل نمی شوند

تشخیص

اگر همانطور که در داده های موجود در پایگاه داده Postgres تعیین شده است، داده ها از سرور Qpid به پایگاه داده Postgres منتقل نمی شوند، اما در UI نشان داده نمی شوند ، مراحل زیر را انجام دهید:

  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. اگر آخرین اطلاعات موجود است، مراحل زیر را رد کرده و در بخش Resolution به مرحله آخر بروید. اگر آخرین اطلاعات موجود نیست، مراحل زیر را دنبال کنید.
  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. داشبوردهای Analytics را دوباره بارگیری کنید و بررسی کنید که آیا داده های Analytics نمایش داده می شوند یا خیر.

اگر مشکل همچنان ادامه داشت، با پشتیبانی 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 به عنوان "موفقیت" نشان داده شود، این نشان می دهد که سرورهای تجزیه و تحلیل به درستی سیم کشی شده اند. به UUID های سرور Stale Analytics بروید.
    2. اگر وضعیت سرورهای Qpid/Postgres به صورت "ناشناخته" یا "شکست" نشان داده شود، نشان دهنده مشکل با سرور مربوطه است.

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

      این ممکن است در صورتی اتفاق بیفتد که در حین نصب تجزیه و تحلیل خرابی وجود داشته باشد. این خرابی مانع از رسیدن پیام های سرورهای مدیریت به سرورهای Postgres می شود.

قطعنامه

این مشکل معمولاً با راه اندازی مجدد سرورهایی که "FAILURE" یا "NUNKNOWN" را نشان می دهند قابل حل است.

  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 را مجددا راه اندازی کنید:
      /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 های سرور آنالیتیکس قدیمی

تشخیص

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

قطعنامه

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