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

คุณกำลังดูเอกสารประกอบของ 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 ในสภาพแวดล้อมขององค์กรหนึ่งๆ ในระยะเวลาที่กำหนดหรือไม่ โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
    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. รอสัก 2-3 วินาทีแล้วดูหน้าแดชบอร์ดของ Analytics ในแท็บชั่วโมง แล้วดูว่าข้อมูลปรากฏหรือไม่
  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. ตรวจสอบว่ามีตารางสำหรับสภาพแวดล้อมขององค์กรหรือไม่โดยใช้การค้นหา 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?_optimized...".
    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 Server ทำงานได้หรือไม่โดยเรียกใช้คำสั่งต่อไปนี้
    /opt/apigee/bin/apigee-service edge-qpid-server status
    
  2. หาก Qpid Server หยุดทำงาน ให้รีสตาร์ทเครื่อง หากไม่มี ให้ข้ามไปยังขั้นตอนที่ 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 ยังใช้งานไม่ได้" หรือ "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 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 ใช้งานได้โดยใช้การเรียก 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 แสดงเป็น "ไม่ทราบ" หรือ "ไม่ผ่าน" แสดงว่าเกิดปัญหากับเซิร์ฟเวอร์ที่เกี่ยวข้อง

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

      เหตุการณ์นี้อาจเกิดขึ้นหากเกิดข้อผิดพลาดระหว่างการเริ่มต้นใช้งาน Analytics ความล้มเหลวนี้จะทำให้ข้อความจากเซิร์ฟเวอร์การจัดการเข้าถึงเซิร์ฟเวอร์ Postgres ไม่ได้

ความละเอียด

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

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

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

การวินิจฉัย

  1. รับการกำหนดค่า Analytics โดยใช้การเรียก 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 ที่แสดงในองค์ประกอบ "ขอบเขต"
    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