Antipattern: เพิ่มข้อมูลที่กำหนดเองไปยังสคีมาที่ Apigee เป็นเจ้าของในฐานข้อมูล Postgres

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

Edge API Analytics เป็นฟีเจอร์ในตัวที่มีประสิทธิภาพมากซึ่ง Apigee Edge มีให้ โดยจะรวบรวมและ วิเคราะห์ข้อมูลที่หลากหลายซึ่งไหลผ่าน API ข้อมูลวิเคราะห์ที่รวบรวมได้อาจให้ข้อมูลเชิงลึกที่เป็นประโยชน์มาก เช่น ปริมาณการรับส่งข้อมูลของ API มีแนวโน้มเป็นอย่างไรในช่วงเวลาหนึ่งๆ API ใดที่ใช้มากที่สุด API ใดมีอัตราข้อผิดพลาดสูง

คุณสามารถใช้การวิเคราะห์ข้อมูลและข้อมูลเชิงลึกเหล่านี้เป็นประจำเพื่อดำเนินการที่เหมาะสม เช่น การวางแผนความจุของ API ในอนาคต ตามการใช้งานปัจจุบัน การตัดสินใจทางธุรกิจและการลงทุนในอนาคต และอื่นๆ อีกมากมาย

ข้อมูลวิเคราะห์และการจัดเก็บข้อมูล

API Analytics จะรวบรวมข้อมูลหลายประเภท เช่น

  • ข้อมูลเกี่ยวกับ API - URI ของคำขอ, ที่อยู่ IP ของไคลเอ็นต์, รหัสสถานะการตอบกลับ และอื่นๆ
  • ประสิทธิภาพของพร็อกซี API - อัตราความสำเร็จ/ความล้มเหลว, เวลาในการประมวลผลคำขอและการตอบกลับ และอื่นๆ
  • ประสิทธิภาพของเซิร์ฟเวอร์เป้าหมาย - อัตราความสำเร็จ/ความล้มเหลว, เวลาในการประมวลผล
  • ข้อมูลข้อผิดพลาด - จำนวนข้อผิดพลาด, รหัสข้อผิดพลาด, นโยบายที่ล้มเหลว, จำนวนข้อผิดพลาดที่เกิดจาก Apigee และเซิร์ฟเวอร์เป้าหมาย
  • ข้อมูลอื่นๆ - จำนวนคำขอที่นักพัฒนาแอปและแอปของนักพัฒนาแอปส่ง และอื่นๆ

ข้อมูลทั้งหมดนี้จะจัดเก็บไว้ใน analytics สคีมา ที่สร้างและจัดการภายในฐานข้อมูล Postgres โดย Apigee Edge

โดยปกติแล้ว การติดตั้ง Edge แบบธรรมดา Postgres จะมีสคีมาต่อไปนี้

Edge ใช้สคีมาที่ชื่อว่า analytics เพื่อจัดเก็บข้อมูลวิเคราะห์ทั้งหมดของ แต่ละองค์กรและสภาพแวดล้อม หากมีการติดตั้งการสร้างรายได้ จะมี rkms สคีมา ส่วนสคีมาอื่นๆ มีไว้สำหรับส่วนประกอบภายในของ Postgres

สคีมา analytics จะมีการเปลี่ยนแปลงอยู่เสมอเนื่องจาก Apigee Edge จะเพิ่มตารางข้อเท็จจริงใหม่ ลงในสคีมาแบบไดนามิกในรันไทม์ คอมโพเนนต์เซิร์ฟเวอร์ Postgres จะรวมข้อมูลข้อเท็จจริงไว้ในตารางรวม ซึ่งจะโหลดและแสดงใน UI ของ Edge

รูปแบบที่ไม่แนะนำ

ไม่แนะนำให้เพิ่มคอลัมน์ ตาราง และ/หรือมุมมองที่กำหนดเองลงในสคีมาใดๆ ที่ Apigee เป็นเจ้าของในฐานข้อมูล Postgres ในสภาพแวดล้อม Private Cloud โดยตรงโดยใช้การค้นหา SQL เนื่องจากอาจส่งผลเสียได้

มาดูตัวอย่างเพื่ออธิบายเรื่องนี้โดยละเอียดกัน

สมมติว่ามีการสร้างตารางที่กำหนดเองชื่อ account ภายใต้สคีมา analytics ดังที่แสดงด้านล่าง

หลังจากนั้นสักพัก สมมติว่าคุณต้องการอัปเกรด Apigee Edge จากเวอร์ชันที่ต่ำกว่าเป็นเวอร์ชันที่สูงกว่า การอัปเกรด Apigee Edge Private Cloud เกี่ยวข้องกับการอัปเกรด Postgres ในบรรดาคอมโพเนนต์อื่นๆ อีกมากมาย หากมีการเพิ่มคอลัมน์ ตาราง หรือมุมมองที่กำหนดเองลงในฐานข้อมูล Postgres การอัปเกรด Postgres จะล้มเหลวโดยมีข้อผิดพลาดที่อ้างอิงถึงออบเจ็กต์ที่กำหนดเองเนื่องจากออบเจ็กต์เหล่านั้นไม่ได้สร้างโดย Apigee Edge ดังนั้น การอัปเกรด Apigee Edge จึงล้มเหลวและดำเนินการให้เสร็จสมบูรณ์ไม่ได้

ข้อผิดพลาดที่คล้ายกันอาจเกิดขึ้นระหว่างกิจกรรมการบำรุงรักษา Apigee Edge ซึ่งมีการสำรองและกู้คืน คอมโพเนนต์ Edge รวมถึงฐานข้อมูล Postgres

ผลกระทบ

  • การอัปเกรด Apigee Edge ไม่สำเร็จเนื่องจากการอัปเกรดคอมโพเนนต์ Postgres ล้มเหลวโดยมี ข้อผิดพลาดที่อ้างอิงถึงออบเจ็กต์ที่กำหนดเองซึ่งไม่ได้สร้างโดย Apigee Edge
  • ความไม่สอดคล้องกัน (และข้อผิดพลาด) ขณะทำการบำรุงรักษาบริการ Apigee Analytics (การสำรอง/กู้คืน)

แนวทางปฏิบัติแนะนำ

  • อย่าเพิ่มข้อมูลที่กำหนดเองในรูปแบบคอลัมน์ ตาราง มุมมอง ฟังก์ชัน และ ขั้นตอนลงในสคีมาใดๆ ที่ Apigee เป็นเจ้าของโดยตรง เช่น analytics และอื่นๆ
  • หากต้องการรองรับข้อมูลที่กำหนดเอง คุณสามารถเพิ่มข้อมูลดังกล่าวเป็นคอลัมน์ (ช่อง) ได้โดยใช้ นโยบาย Statistics Collector กับสคีมา analytics

อ่านเพิ่มเติม