รายงานที่กำหนดเองของ Analytics ไม่เห็นตัวแปรที่กำหนดเอง

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

ลักษณะปัญหา

ตัวแปรที่กําหนดเองที่สร้างขึ้นโดยใช้นโยบายเครื่องมือรวบรวมข้อมูลสถิติจะไม่แสดงในมิติข้อมูลที่กําหนดเองของรายงานที่กําหนดเองของ Analytics ใน Edge UI

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

ไม่พบข้อผิดพลาด

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

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

สาเหตุ สำหรับ
ตัวแปรที่กำหนดเองไม่เป็นไปตามหลักเกณฑ์มาตรฐาน ผู้ใช้ Edge ส่วนตัวและระบบคลาวด์สาธารณะ
ไม่มีการรับส่งข้อมูลบนพร็อกซี API ที่ใช้นโยบาย StatisticsCollector ผู้ใช้ Edge ส่วนตัวและระบบคลาวด์สาธารณะ
ไม่มีการพุชตัวแปรที่กำหนดเองไปยังเซิร์ฟเวอร์ Postgres ผู้ใช้ Edge Private Cloud

คลิกลิงก์ในตารางเพื่อดูวิธีแก้ปัญหาที่เป็นไปได้ของสาเหตุนั้น

ตัวแปรที่กำหนดเองไม่เป็นไปตามหลักเกณฑ์มาตรฐาน

การวินิจฉัย

หากชื่อตัวแปรที่กำหนดเองที่ใช้ในนโยบายเครื่องมือรวบรวมข้อมูลสถิติไม่เป็นไปตามหลักเกณฑ์มาตรฐาน (ดู การแก้ไข) ชื่อดังกล่าวก็จะไม่ปรากฏในรายงานที่กำหนดเอง

ข้อมูลโค้ดด้านล่างแสดงให้เห็นว่าชื่อตัวแปร "product id" มีช่องว่าง ดังนั้น จึงไม่แสดงใต้มิติข้อมูลที่กำหนดเองในรายงานที่กำหนดเอง

  <StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
      <Statistic name="productID" ref="product id" type="string">999999</Statistic>
    </Statistics>
  </StatisticsCollector>

ความละเอียด

ชื่อตัวแปรที่กำหนดเองที่ใช้ในนโยบาย StatisticsCollector ภายในพร็อกซี API ควรเป็นไปตามหลักเกณฑ์ต่อไปนี้

  • ชื่ออาจมี [a-z][0-9] และ '_'
  • โดยชื่อต้องไม่มีการเว้นวรรค เช่น ในตัวอย่างโค้ดที่แสดงด้านบน ควรเปลี่ยนชื่อตัวแปรเป็น "product_id"
  • ไม่สนใจตัวพิมพ์เล็กหรือใหญ่
  • ไม่อนุญาตให้ใช้คีย์เวิร์ดที่จองไว้ซึ่งแสดงในตารางในลิงก์ต่อไปนี้ ตัวอย่างเช่น ไม่อนุญาตให้ใช้ "ผู้ใช้" ดูข้อมูลเพิ่มเติมได้ที่คีย์เวิร์ด SQL

หากปัญหายังคงอยู่ ให้ไปที่ไม่มีการรับส่งข้อมูลบนพร็อกซี API ที่ใช้นโยบาย StatisticsCollector

ไม่มีการรับส่งข้อมูลบนพร็อกซี API ที่ใช้นโยบาย StatisticsCollector

การวินิจฉัย

ถ้าไม่มีการเข้าชมบนพร็อกซี API ที่ใช้นโยบาย StatisticsCollector ตัวแปรที่กำหนดเองจะไม่ปรากฏในรายงานที่กำหนดเอง

ความละเอียด

เรียกใช้พร็อกซี API ที่ใช้นโยบาย StatisticsCollector

รอสักพักและตรวจสอบว่าตัวแปรที่กำหนดเองปรากฏในมิติข้อมูลที่กำหนดเองในรายงานที่กำหนดเองหรือไม่

หากยังพบปัญหาอยู่ ให้ไปที่ตัวแปรที่กำหนดเองไม่ได้พุชไปยังเซิร์ฟเวอร์ Postgres

ไม่ได้พุชตัวแปรที่กำหนดเองไปยังเซิร์ฟเวอร์ Postgres

การวินิจฉัย

เมื่อสร้างตัวแปรที่กำหนดเองในพร็อกซี API และมีการเรียก API ระบบจะจัดเก็บตัวแปรไว้ในหน่วยความจำในตัวประมวลผลข้อความก่อน จากนั้นตัวประมวลผลข้อความจะส่งข้อมูลเกี่ยวกับตัวแปรใหม่ไปยัง ZooKeeper ซึ่งจะส่งข้อมูลนี้ไปยังเซิร์ฟเวอร์ Postgres เพื่อเพิ่มเป็นคอลัมน์ในฐานข้อมูลของ Postgres

ในบางครั้ง การแจ้งเตือนจาก ZooKeeper อาจไม่ส่งถึงเซิร์ฟเวอร์ Postgres เนื่องจากเครือข่ายมีปัญหา และเนื่องจากข้อผิดพลาดนี้ ตัวแปรที่กำหนดเองอาจไม่ปรากฏในรายงานที่กำหนดเอง

วิธีระบุว่าตัวแปรที่กําหนดเองหายไปไหน

  1. สร้างต้นไม้ ZooKeeper โดยใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. ค้นหาตัวแปรที่กำหนดเองในเอาต์พุตแบบต้นไม้ ZooKeeper
  3. หากมีตัวแปรที่กำหนดเองอยู่ในต้นไม้ ZooKeeper ให้ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่ามีการเพิ่มตัวแปรที่กำหนดเองลงในฐานข้อมูล Postgres หรือไม่
    1. ในโหนด Postgres ให้ลงชื่อเข้าสู่ระบบ PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. เรียกใช้การค้นหา SQL ต่อไปนี้
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. มีความเป็นไปได้สูงที่คุณจะเห็นว่าคอลัมน์ตัวแปรที่กำหนดเองหายไปในตารางข้อเท็จจริง ซึ่งเป็นสาเหตุที่ทำให้คอลัมน์นี้ไม่ปรากฏในมิติข้อมูลที่กำหนดเอง

ความละเอียด

วิธีแก้ปัญหา #1: รีสตาร์ทเซิร์ฟเวอร์ Postgres

  1. รีสตาร์ทเซิร์ฟเวอร์ Postgres เพื่อบังคับให้อ่านข้อมูลทั้งหมดที่เกี่ยวข้องกับ Analytics จาก Zookeeper โดยทำดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    หากปัญหายังคงอยู่ ให้ใช้วิธีแก้ไข #2

วิธีแก้ปัญหา #2: เปิดใช้ฟังก์ชัน Forceonboard

เปิดใช้พร็อพเพอร์ตี้ forceonboard โดยทำตามขั้นตอนต่อไปนี้

  1. สร้างไฟล์ /opt/apigee/customer/application/postgres-server.properties ในเครื่องเซิร์ฟเวอร์ Postgres หากยังไม่มี
  2. เพิ่มบรรทัดต่อไปนี้ในไฟล์นี้
    conf_pg-agent_forceonboard=true
  3. ตรวจสอบว่าไฟล์นี้เป็นของ Apigee โดยใช้คำสั่งต่อไปนี้
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. รีสตาร์ทเซิร์ฟเวอร์ Postgres โดยทำดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. หากมีเซิร์ฟเวอร์ Postgres มากกว่า 1 เซิร์ฟเวอร์ ให้ทำตามขั้นตอนด้านบนซ้ำในเซิร์ฟเวอร์ Postgres ทั้งหมด
  6. ยกเลิกการทำให้ใช้งานได้และทำให้พร็อกซี API ที่ใช้นโยบาย StatisticsCollector ใช้งานได้
  7. เรียกใช้การเรียก API
  8. ตรวจสอบว่าตัวแปรที่กําหนดเองปรากฏในมิติข้อมูลที่กําหนดเองในรายงานที่กำหนดเองหรือไม่

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