反模式:將自訂資訊新增至 Postgres 資料庫中的 Apigee 自有結構定義

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

Edge API Analytics 是 Apigee Edge 提供的強大內建功能,這個資料庫會收集並分析跨 API 流動的多種資料。擷取的分析資料可提供非常實用的洞察資訊。舉例來說,API 流量在一段時間內的趨勢如何?使用率最高的 API 是?哪些 API 的錯誤率偏高?

定期分析這類資料與深入分析結果,據此採取適當行動,例如根據目前的用量、業務和未來投資決策,規劃 API 容量規劃等。

Analytics (分析) 資料及其儲存空間

API Analytics (分析) 會擷取多種資料類型,例如:

  • API 相關資訊:要求 URI、用戶端 IP 位址、回應狀態碼等
  • API Proxy 效能 - 成功/失敗率、要求和回應處理時間等
  • 目標伺服器效能 - 成功/失敗率、處理時間
  • 錯誤資訊:錯誤數量、錯誤程式碼、失敗政策、Apigee 與目標伺服器數量造成錯誤。
  • 其他資訊:開發人員、開發人員應用程式等向開發人員提出的要求數量

上述所有資料都會儲存在 analytics 結構定義中,該結構定義由 Apigee Edge 在 Postgres 資料庫中建立及管理。

一般而言,在安裝別名 Edge 中,Postgres 會有下列結構定義:

Edge 會使用名為 analytics 的結構定義儲存各個機構和環境的所有數據分析資料。如已安裝營利功能,則會有 rkms 結構定義。其他結構定義則適用於 Postgres 內部。

Apigee Edge 會在執行階段動態新增事實資料表,因此 analytics 結構定義會持續變更。Postgres 伺服器元件會將事實資料匯總成匯總資料表,然後顯示在 Edge UI 上。

反模式

我們不建議在私人雲端環境中,使用 SQL 查詢,在 Postgres 資料庫中任何 Apigee 擁有的結構定義中新增自訂欄、資料表和/或檢視表,因為這可能會產生不良影響。

讓我們透過範例來詳細說明這一點。

假設 Analytics (分析) 結構定義中已建立名為「account」的自訂資料表,如下所示:

經過一段時間後,假設您需要將 Apigee Edge 從較舊版本升級至較新的版本。升級 Private Cloud Apigee Edge 時,必須在眾多其他元件中升級 Postgres。如果已在 Postgres 資料庫中新增任何自訂欄、資料表或檢視表,則 Postgres 升級時會失敗,並參照自訂物件時發生錯誤,因為這些物件並非由 Apigee Edge 建立。因此 Apigee Edge 升級失敗也會失敗,無法完成。

同樣地,在 Apigee Edge 維護活動期間,系統會執行邊緣元件 (包括 Postgres 資料庫) 的備份與還原作業,導致這類錯誤發生。

影響程度

  • 由於 Postgres 元件升級失敗,但參照並非 Apigee Edge 建立的自訂物件時發生錯誤,因此無法完成 Apigee Edge 升級作業。
  • 在 Apigee 數據分析服務維護期間 (備份/還原) 不一致 (和失敗)。

最佳做法

  • 請勿以資料欄、資料表、檢視表、函式和程序的形式,直接將任何自訂資訊新增至 Apigee 擁有的任何結構定義,例如 analytics
  • 如需支援自訂資訊,您可以使用統計資料收集器政策,將這類資訊新增為 analytics 結構定義中的資料欄 (欄位)。

其他資訊