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

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

ลักษณะปัญหา

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

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

บันทึกระบบ 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 /organizations//environments//properties ไม่มีมิติข้อมูลที่กำหนดเอง ผู้ใช้ Edge Private Cloud

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

การวินิจฉัย

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

{  "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 ชุดเดียวกันให้กับกลุ่มแอกซ์ 2 กลุ่มได้ วิธีที่เร็วที่สุดในการแก้ไขปัญหาคือการลบข้อมูลเซิร์ฟเวอร์แบบ Postgres ออกจากกลุ่ม Axgroup เดียว และกำหนดขอบเขตทั้งหมด (ชุดค่าผสมองค์กรและสภาพแวดล้อม) ให้กับอีกกลุ่ม วิธีการคือ ให้ทำตามขั้นตอนต่อไปนี้

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

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

ต้องรวบรวมข้อมูลการวินิจฉัย

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

  1. Edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log นับจากเวลารีสตาร์ทครั้งล่าสุด
  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