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

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

ลักษณะปัญหา

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

No traffic in the selected date range

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

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

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

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

สาเหตุ สำหรับ
ไม่มีการรับส่งข้อมูล API สำหรับสภาพแวดล้อมขององค์กร Edge สำหรับผู้ใช้ Private Cloud
ข้อมูลมีอยู่ในฐานข้อมูล Postgres แต่ไม่แสดงใน UI Edge สำหรับผู้ใช้ Private Cloud
ข้อมูล Analytics ไม่ถูกพุชไปยังฐานข้อมูล Postgres Edge สำหรับผู้ใช้ Private Cloud
การทำให้ Analytics ใช้งานได้ไม่ถูกต้อง Edge สำหรับผู้ใช้ Private Cloud
UUID ของเซิร์ฟเวอร์ Analytics ที่ไม่มีอัปเดต Edge สำหรับผู้ใช้ Private Cloud

ไม่มีการรับส่งข้อมูล API สำหรับสภาพแวดล้อมขององค์กร

การวินิจฉัย

  1. ตรวจสอบว่ามีการรับส่งข้อมูลสำหรับพร็อกซี API ในสภาพแวดล้อมขององค์กรที่เฉพาะเจาะจงสำหรับ ระยะเวลาที่เจาะจงที่คุณพยายามดูข้อมูล Analytics โดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้ วิธีการ:
    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

ลักษณะปัญหา

ก่อนอื่น ให้กำหนดความพร้อมใช้งานของข้อมูล 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. ตรวจสอบว่ามีตารางอยู่ใน 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 ดำเนินการต่อในระบบไม่ได้พุชข้อมูล Analytics ไปยังฐานข้อมูล Postgres
  6. ถ้ามีข้อมูลล่าสุดในฐานข้อมูล Postgres ในโหนดหลัก โปรดทำตาม ขั้นตอนด้านล่างเพื่อวิเคราะห์สาเหตุที่ข้อมูลไม่แสดงใน Edge UI

การวินิจฉัย

  1. เปิดใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ในเบราว์เซอร์ Chrome และรับ API ที่ใช้จากหนึ่งในแดชบอร์ดข้อมูลวิเคราะห์โดยใช้ ได้ที่ด้านล่าง
    1. เลือกแท็บ "เครือข่าย" จากเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
    2. เริ่มบันทึก
    3. โหลดแดชบอร์ด Analytics ซ้ำ
    4. ที่แผงด้านซ้ายมือในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ให้เลือกแถวที่มี "apiproxy?_optimizer..."
    5. ในแผงด้านขวามือในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ให้เลือก "ส่วนหัว" แล้วแตะ "URL คำขอ"
  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. ตรวจสอบว่าคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ 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 UI ได้หรือไม่

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

ข้อมูล Analytics ไม่ถูกพุชไปยังฐานข้อมูล Postgres

การวินิจฉัย

หากข้อมูลไม่ได้พุชจากเซิร์ฟเวอร์ Qpid ไปยังฐานข้อมูล Postgres ตามที่ระบุไว้ในข้อมูลมีอยู่ในฐานข้อมูล 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. หากมีข้อมูลล่าสุด ให้ข้ามขั้นตอนต่อไปนี้และไปยังขั้นตอนสุดท้าย การแก้ปัญหา หากไม่มีข้อมูลล่าสุด ให้ดําเนินการต่อไปนี้ ขั้นตอน
  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 ยังใช้งานไม่ได้" หรือ "ร้ายแรง: ขออภัย มีลูกค้ามากเกินไปแล้ว" ดังที่แสดงในรูปด้านล่าง
    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. โหลดหน้าแดชบอร์ด Analytics ซ้ำและตรวจสอบว่ามีการแสดงข้อมูล Analytics หรือไม่

หากยังคงพบปัญหาอยู่ ให้ติดต่อทีมสนับสนุนของ Apigee Edge

การทำให้ Analytics ใช้งานได้ไม่ถูกต้อง

การวินิจฉัย

  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 ของเซิร์ฟเวอร์ Analytics
    2. หากสถานะของเซิร์ฟเวอร์ Qpid/Postgres แสดงเป็น "UNKNOWN" หรือ "ล้มเหลว" แสดงว่าเกิดปัญหากับเซิร์ฟเวอร์ที่ตรงกัน

      ตัวอย่างเช่น สถานการณ์ต่อไปนี้แสดงสถานะของเซิร์ฟเวอร์ Postgres เป็น "ไม่ทราบ":

      ซึ่งอาจเกิดขึ้นหากเกิดความล้มเหลวในระหว่างการเริ่มต้นใช้งานข้อมูลวิเคราะห์ ความล้มเหลวนี้ จะป้องกันไม่ให้ข้อความจากเซิร์ฟเวอร์การจัดการเข้าถึงเซิร์ฟเวอร์ Postgres

ความละเอียด

ปัญหานี้แก้ไขได้ด้วยการรีสตาร์ทเซิร์ฟเวอร์ที่แสดงข้อผิดพลาด "ล้มเหลว" หรือ "ไม่ทราบ"

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

UUID ของเซิร์ฟเวอร์ Analytics ที่ไม่มีอัปเดต

การวินิจฉัย

  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. หากข้อมูลทั้งหมดถูกต้อง ให้ไปยังข้อมูล Analytics ไม่ถูกพุชไปยังฐานข้อมูล Postgres
  4. หาก UUID ของเซิร์ฟเวอร์ Postgres และ/หรือ Qpid ไม่ถูกต้อง ก็อาจเป็นไปได้ว่า เซิร์ฟเวอร์การจัดการหมายถึง UUID ที่ไม่อัปเดต

ความละเอียด

หากต้องการนำ UUID เก่าออกและเพิ่ม UUID ที่ถูกต้องของเซิร์ฟเวอร์ โปรดติดต่อทีมสนับสนุนของ Apigee Edge