มิติข้อมูลที่กําหนดเองไม่ปรากฏขึ้นเมื่อกําหนดค่าหลายแกน

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

ลักษณะปัญหา

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

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

บันทึกของระบบ edge-postgres-server จะมีข้อผิดพลาดต่อไปนี้หลังจากรีสตาร์ทสำหรับแต่ละ ชุดค่าผสมขององค์กร/สภาพแวดล้อมที่ไม่มีเส้นทาง

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

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

สาเหตุ คำอธิบาย วิธีการแก้ปัญหาที่ใช้ได้กับ
ไม่มีเส้นทางพร็อพเพอร์ตี้ของ ZooKeeper สำหรับชุดค่าผสมขององค์กรและสภาพแวดล้อม เมื่อไม่มีเส้นทาง ZooKeeper /organizations//environments//properties ระบบจะสร้างมิติข้อมูลที่กำหนดเองไม่ได้ ผู้ใช้ Edge Private Cloud

สาเหตุ: ไม่มีเส้นทางพร็อพเพอร์ตี้ของ ZooKeeper สำหรับชุดค่าผสมขององค์กรและสภาพแวดล้อม

การวินิจฉัย

ระบบจะเปิดใช้ Analytics สำหรับชุดค่าผสมขององค์กรและสภาพแวดล้อมผ่าน Enable analytics API ซึ่งจะป้อนข้อมูล /organizations//environments//properties ในโครงสร้าง ZooKeeper เมื่อ API นี้ล้มเหลว คอมโพเนนต์ edge-postgres-server จะสร้างมิติข้อมูลที่กำหนดเองไม่ได้ และข้อผิดพลาดต่อไปนี้จะปรากฏใน system.log

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

โดยปกติแล้วเหตุการณ์นี้จะเกิดขึ้นเมื่อมีการเริ่มต้นใช้งานองค์กรในเวลาที่มีกลุ่ม Analytics มากกว่า 1 กลุ่มที่ใช้ UUID ของ postgres-server เดียวกัน หากต้องการตรวจสอบจำนวนกลุ่มข้อมูลวิเคราะห์ที่มีอยู่ ให้เรียกใช้การเรียก API ต่อไปนี้

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

หาก API นี้แสดงผลหลายกลุ่ม แสดงว่ากลุ่มเหล่านั้นอาจเป็นสาเหตุของปัญหา ในตัวอย่างต่อไปนี้ ให้สังเกตว่ามี 2 กลุ่มที่แตกต่างกันด้วยยัติภังค์เท่านั้น ได้แก่ axgroup-001 และ axgroup001

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

โดยเฉพาะอย่างยิ่ง ปัญหาจะเกิดขึ้นหาก UUID ของ postgres-server ที่กำหนดค่าไว้สำหรับ axgroup แต่ละรายการเหมือนกัน วิธีตรวจสอบอย่างรวดเร็วคือเรียกใช้คำสั่งต่อไปนี้

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

เอาต์พุตตัวอย่างต่อไปนี้จะเปรียบเทียบ UUID ของ postgres-server อย่างรวดเร็วเพื่อตรวจสอบว่า UUID เหล่านั้นเหมือนกัน

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

ความละเอียด

คุณกำหนดชุดเซิร์ฟเวอร์ PostgreSQL ชุดเดียวกันให้กับ axgroup 2 กลุ่มไม่ได้ วิธีแก้ปัญหาที่เร็วที่สุดคือลบข้อมูลเซิร์ฟเวอร์ postgres ออกจาก axgroup กลุ่มหนึ่ง แล้วกำหนดขอบเขตทั้งหมด (ชุดค่าผสมขององค์กรและสภาพแวดล้อม) ให้กับอีกกลุ่มหนึ่ง โดยทำตามขั้นตอนต่อไปนี้

  1. นำคอมโพเนนต์เซิร์ฟเวอร์ postgres ออกจาก axgroup กลุ่มใดกลุ่มหนึ่งโดยใช้คำแนะนำ ที่ การเพิ่มและลบคอมโพเนนต์ Analytics ในกลุ่ม Analytics หากพบปัญหาเฉพาะกับขอบเขตที่ไม่ใช่การใช้งานจริง ให้เลือก axgroup ที่ ไม่มีขอบเขตการใช้งานจริงสำหรับการดำเนินการนี้ หากไม่เป็นเช่นนั้น ให้เลือก axgroup ที่มี ขอบเขตน้อยที่สุด
  2. นำขอบเขตทั้งหมดออกจาก axgroup ที่ไม่มีเซิร์ฟเวอร์ postgres อีกต่อไป รวมถึงขอบเขต ที่คุณพบปัญหาเกี่ยวกับมิติข้อมูลที่กำหนดเองออกจาก axgroup ของขอบเขตเหล่านั้น สมมติว่า axgroup-001 จากตัวอย่างข้างต้นเป็นกลุ่มที่คุณต้องการใช้ คุณจะต้อง ใช้คำสั่งต่อไปนี้เพื่อนำขอบเขตสำหรับองค์กร myorg และสภาพแวดล้อม prod ออก
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. เปิดใช้ Analytics โดยใช้ Enable analytics API
  4. รีสตาร์ทคอมโพเนนต์ edge-postgres-server ในโหนดหลัก postgres และ คอมโพเนนต์ edge-qpid-server ทั้งหมดที่คุณอาจติดตั้งไว้ โดยใช้คำสั่งต่อไปนี้
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. ตรวจสอบว่าข้อผิดพลาดที่ระบุไว้ในส่วน ข้อความแสดงข้อผิดพลาด ข้างต้น ไม่ปรากฏในไฟล์บันทึกของเซิร์ฟเวอร์ Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log อีกต่อไป
  6. ยืนยันว่ามิติข้อมูลที่กำหนดเองแสดงใน UI ของ Edge

หากปัญหายังคงอยู่ ให้ไปที่ รวบรวมข้อมูลการวินิจฉัยที่จำเป็น

รวบรวมข้อมูลการวินิจฉัยที่จำเป็น

หากปัญหายังคงอยู่แม้จะทำตามวิธีการก่อนหน้านี้แล้ว โปรดรวบรวมข้อมูลการวินิจฉัยต่อไปนี้ ติดต่อและแชร์ข้อมูลดังกล่าวกับทีมสนับสนุนของ Apigee Edge

  1. ไฟล์ /opt/apigee/var/log/edge-postgres-server/logs/system.log ของ edge-postgres-server ตั้งแต่เวลารีสตาร์ทล่าสุด
  2. เอาต์พุตของการเรียก Management API ต่อไปนี้
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. เอาต์พุตของโครงสร้าง ZooKeeper ที่ได้จากคำสั่งต่อไปนี้
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt