داده‌ها در داشبوردهای Analytics نشان داده نمی‌شود

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

نشانه

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

No traffic in the selected date range

پیام‌های خطا

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

علل احتمالی

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

علت برای
بدون ترافیک میانای برنامه‌سازی کاربردی برای سازمان-محیط ‫Edge برای کاربران «ابر خصوصی»
داده‌ها در پایگاه داده Postgres دردسترس است، اما در واسط کاربر New Edge نمایش داده نمی‌شود ‫Edge برای کاربران «ابر خصوصی»
داده‌های Analytics به پایگاه داده Postgres ارسال نمی‌شود کاربران Edge for Private Cloud
استقرار Analytics نادرست است ‫Edge برای کاربران «ابر خصوصی»
شناسه‌های یکتای جهانی سرور Analytics قدیمی ‫Edge برای کاربران «ابر خصوصی»

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

تشخیص

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

وضوح

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

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

نشانه

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

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

  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. بااستفاده از پُرسمان SQL زیر، بررسی کنید که آیا جدیدترین داده‌ها در پایگاه داده Postgres دردسترس است یا نه:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  5. اگر جدیدترین مُهر زمان خیلی قدیمی (یا تهی) باشد، نشان می‌دهد که داده‌ها در پایگاه داده Postgres دردسترس نیست. احتمالاً دلیل این مشکل این است که داده‌ها از «سرور Qpid» به پایگاه داده Postgres ارسال نشده است. به داده‌های Analytics به پایگاه داده Postgres منتقل نمی‌شود بروید.
  6. اگر جدیدترین داده‌ها در پایگاه داده Postgres در گره Master دردسترس است، این مراحل را برای تشخیص علت نمایش داده نشدن داده‌ها در «میانای کاربری New Edge» دنبال کنید.

تشخیص

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

    برونداد نمونه‌ای که API استفاده‌شده در داشبورد «عملکرد پراکسی» را از «برگه شبکه» «ابزارهای توسعه‌دهندگان» برای داشبورد «عملکرد پراکسی» نشان می‌دهد

  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. بررسی کنید که آیا می‌توانید از Management Server به سرور 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. بررسی کنید که آیا می‌توانید داده‌های تجزیه‌وتحلیل را در «واسط کاربر New Edge» ببینید یا نه.

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

داده‌های Analytics به «پایگاه داده Postgres» ارسال نمی‌شود

تشخیص

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

  1. با اجرای فرمان زیر، بررسی کنید که هریک از «سرورهای Qpid» فعال و درحال اجرا باشند:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. اگر هریک از «سرورهای کیوپید» ازکار افتاده است، آن را بازراه‌اندازی کنید. اگر نه، به مرحله ۵ بروید.
    /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 /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 Server درحال اجرای تعداد زیادی پُرسمان 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. داشبوردهای Analytics را مجدد بار کنید و بررسی کنید که آیا داده‌های Analytics نمایش داده می‌شود یا خیر.

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

استقرار نادرست Analytics

تشخیص

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

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

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

وضوح

این مشکل معمولاً با بازراه‌اندازی سرورهایی که «ناموفق» یا «نامشخص» نشان داده‌اند برطرف می‌شود.

  1. هریک از سرورهایی را که وضعیت سیم‌کشی تجزیه‌وتحلیل آن‌ها «ناموفق» یا «نامشخص» است بااستفاده از فرمان زیر بازراه‌اندازی کنید:
    /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 اصلی و فرعی را بازراه‌اندازی کنید:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. در مثال بالا، پیام «UNKNOWN» برای سرورهای Postgres نشان داده می‌شود، بنابراین باید هر دو سرور Master و Slave Postgres را بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

شناسه‌های منحصربه‌فرد جهانی سرور Analytics قدیمی

تشخیص

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

وضوح

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