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 ของ New 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

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