ข้อมูลไม่แสดงในแดชบอร์ดข้อมูลวิเคราะห์

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

ลักษณะปัญหา

แดชบอร์ดข้อมูลวิเคราะห์ (ประสิทธิภาพพร็อกซี ประสิทธิภาพเป้าหมาย ฯลฯ) ไม่แสดงข้อมูลใดๆ ใน UI ของ Edge แดชบอร์ดทั้งหมดแสดงข้อความต่อไปนี้

No traffic in the selected date range

ข้อความแสดงข้อผิดพลาด

ปัญหานี้ไม่ทำให้เกิดข้อผิดพลาดที่สังเกตได้

สาเหตุที่เป็นไปได้

ตารางต่อไปนี้แสดงสาเหตุที่เป็นไปได้ของปัญหานี้

สาเหตุ สำหรับ
ไม่มีการรับส่งข้อมูล API สำหรับองค์กร-สภาพแวดล้อม ผู้ใช้ Edge for Private Cloud
ข้อมูลพร้อมใช้งานในฐานข้อมูล Postgres แต่ไม่แสดงใน UI ผู้ใช้ Edge for Private Cloud
ไม่ได้พุชข้อมูลวิเคราะห์ไปยังฐานข้อมูล Postgres ผู้ใช้ Edge for Private Cloud
การติดตั้งใช้งานข้อมูลวิเคราะห์ไม่ถูกต้อง ผู้ใช้ Edge for Private Cloud
UUID ของเซิร์ฟเวอร์ข้อมูลวิเคราะห์ล้าสมัย ผู้ใช้ Edge for Private 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 อย่างน้อย 1 รายการในองค์กร-สภาพแวดล้อมที่เฉพาะเจาะจง
  2. รอสักครู่ แล้วดูแดชบอร์ดข้อมูลวิเคราะห์ในแท็บชั่วโมงเพื่อดูว่า ข้อมูลปรากฏขึ้นหรือไม่
  3. หากยังพบปัญหาอยู่ ให้ไปที่ ข้อมูลพร้อมใช้งานในฐานข้อมูล Postgres แต่ไม่แสดงใน UI

ข้อมูลพร้อมใช้งานในฐานข้อมูล Postgres แต่ไม่แสดงใน UI

ลักษณะปัญหา

ขั้นแรก ให้ตรวจสอบความพร้อมใช้งานของข้อมูลวิเคราะห์ล่าสุดในฐานข้อมูล Postgres

วิธีตรวจสอบว่าข้อมูลวิเคราะห์ล่าสุดพร้อมใช้งานในโหนดหลักของ Postgres หรือไม่:

  1. เข้าสู่ระบบเซิร์ฟเวอร์ Postgres แต่ละเครื่องและเรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่าคุณอยู่ในโหนดหลักของ Postgres หรือไม่
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
  2. ในโหนดหลักของ 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. หากการประทับเวลาล่าสุดเก่ามาก (หรือเป็นค่า Null) แสดงว่าข้อมูลไม่พร้อมใช้งานในฐานข้อมูล Postgres สาเหตุที่เป็นไปได้ของปัญหานี้คือข้อมูล ไม่ได้พุชจากเซิร์ฟเวอร์ Qpid ไปยังฐานข้อมูล Postgres ไปที่ไม่ได้พุชข้อมูลวิเคราะห์ไปยังฐานข้อมูล Postgres
  6. หากข้อมูลล่าสุดพร้อมใช้งานในฐานข้อมูล Postgres ในโหนดหลัก ให้ทำตาม ขั้นตอนด้านล่างเพื่อวินิจฉัยสาเหตุที่ข้อมูลไม่แสดงใน UI ของ Edge

การวินิจฉัย

  1. เปิดใช้ เครื่องมือสำหรับนักพัฒนาเว็บ ในเบราว์เซอร์ Chrome และรับ API ที่ใช้จากแดชบอร์ดข้อมูลวิเคราะห์แดชบอร์ดใดแดชบอร์ดหนึ่งโดยทำตามขั้นตอนด้านล่าง:
    1. เลือกแท็บเครือข่ายจากเครื่องมือสำหรับนักพัฒนาเว็บ
    2. เริ่มบันทึก
    3. โหลดแดชบอร์ดข้อมูลวิเคราะห์ซ้ำ
    4. ในแผงด้านซ้ายของเครื่องมือสำหรับนักพัฒนาเว็บ ให้เลือกแถวที่มี "apiproxy?_optimized..."
    5. ในแผงด้านขวาของเครื่องมือสำหรับนักพัฒนาเว็บ ให้เลือกแท็บ "ส่วนหัว" และจด "URL คำขอ"
  2. ตัวอย่างเอาต์พุตจากเครื่องมือสำหรับนักพัฒนาเว็บ

    ตัวอย่างเอาต์พุตที่แสดง API ที่ใช้ในแดชบอร์ดประสิทธิภาพพร็อกซีจากแท็บเครือข่าย ของเครื่องมือสำหรับนักพัฒนาเว็บสำหรับแดชบอร์ดประสิทธิภาพพร็อกซี

  3. เรียกใช้ Management 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 ไม่ได้ ให้ตรวจสอบว่ามีข้อจำกัดของไฟร์วอลล์ ในพอร์ต 5432 หรือไม่
  7. หากมีข้อจำกัดของไฟร์วอลล์ ข้อจำกัดดังกล่าวอาจเป็นสาเหตุที่ทำให้เซิร์ฟเวอร์การจัดการ ดึงข้อมูลจากเซิร์ฟเวอร์ Postgres ไม่ได้

ความละเอียด

  1. หากมีข้อจำกัดของไฟร์วอลล์ ให้นำข้อจำกัดดังกล่าวออกเพื่อให้เซิร์ฟเวอร์การจัดการสื่อสารกับเซิร์ฟเวอร์ Postgres ได้
  2. หากไม่มีข้อจำกัดของไฟร์วอลล์ ปัญหานี้อาจเกิดจากข้อผิดพลาดของเครือข่าย
  3. หากเซิร์ฟเวอร์การจัดการมีข้อผิดพลาดของเครือข่าย การรีสตาร์ทเซิร์ฟเวอร์อาจช่วยแก้ปัญหาได้
  4. รีสตาร์ทเซิร์ฟเวอร์การจัดการทั้งหมดทีละรายการโดยใช้คำสั่งด้านล่าง
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. ตรวจสอบว่าคุณเห็นข้อมูลวิเคราะห์ใน UI ของ Edge หรือไม่

หากยังไม่เห็นข้อมูล โปรดติดต่อทีมสนับสนุนของ Apigee Edge

ไม่ได้พุชข้อมูลวิเคราะห์ไปยังฐานข้อมูล Postgres

การวินิจฉัย

หากไม่ได้พุชข้อมูลจากเซิร์ฟเวอร์ Qpid ไปยังฐานข้อมูล Postgres ตามที่ระบุไว้ใน ข้อมูลพร้อมใช้งานในฐานข้อมูล Postgres แต่ไม่แสดงใน UI ให้ทำตาม ขั้นตอนต่อไปนี้

  1. ตรวจสอบว่าเซิร์ฟเวอร์ Qpid แต่ละเครื่องทำงานอยู่หรือไม่โดยเรียกใช้คำสั่งด้านล่าง
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. หากเซิร์ฟเวอร์ Qpid เครื่องใดเครื่องหนึ่งหยุดทำงาน ให้รีสตาร์ทเซิร์ฟเวอร์ หากไม่ ให้ข้ามไปที่ขั้นตอนที่ 5
    /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. คุณอาจเห็นข้อความแสดงข้อผิดพลาด เช่น "Probably PG is still down" หรือ "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 ได้

ความละเอียด

  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
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. ในตัวอย่างด้านบน ข้อความ "UNKNOWN" จะแสดงสำหรับเซิร์ฟเวอร์ Postgres ดังนั้นคุณต้อง รีสตาร์ททั้งเซิร์ฟเวอร์หลักและเซิร์ฟเวอร์รองของ 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. ชื่อองค์กร-สภาพแวดล้อมที่ระบุไว้ในองค์ประกอบ "ขอบเขต"
    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