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

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

Apigee Edge 提供非常強大的內建功能「Edge API Analytics」。這項服務會收集及分析透過 API 傳輸的各種資料,擷取的數據分析資料可提供非常實用的洞察資訊。舉例來說,API 流量在一段時間內的趨勢如何?哪個 API 的使用率最高?哪些 API 的錯誤率較高?

定期分析這類資料和洞察資訊,有助於採取適當行動,例如根據目前的 API 使用情形、業務和未來投資決策,規劃未來的 API 容量。

數據分析資料和儲存方式

API Analytics 會擷取多種資料,例如:

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

所有這些資料都會儲存在 Apigee Edge 在 Postgres 資料庫中建立及管理的analytics 結構定義中。

一般來說,在 Edge 的原始安裝中,Postgres 會包含下列結構定義:

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

Apigee Edge 會在執行階段動態新增事實資料表,因此 analytics 架構會不斷變更。Postgres 伺服器元件會將事實資料匯總至匯總資料表,並載入 Edge UI 顯示。

反模式

不建議直接使用 SQL 查詢,在 Private Cloud 環境的 Postgres 資料庫中,將自訂資料欄、資料表和/或檢視區塊新增至任何 Apigee 擁有的結構定義,因為這可能會造成負面影響。

讓我們舉例詳細說明。

假設您已在 Analytics 結構定義下建立名為 account 的自訂資料表,如下所示:

過一段時間後,假設需要將 Apigee Edge 從較舊版本升級至較新版本,升級 Private Cloud Apigee Edge 時,除了 Postgres 之外,還需要升級許多其他元件。如果 Postgres 資料庫中新增了任何自訂資料欄、表格或檢視區塊,Postgres 升級就會失敗,並顯示參照自訂物件的錯誤,因為這些物件並非由 Apigee Edge 建立。因此 Apigee Edge 升級也會失敗,無法完成。

同樣地,在執行 Apigee Edge 維護活動 (包括備份及還原 Edge 元件,包括 Postgres 資料庫) 時,也可能發生錯誤。

影響

  • Postgres 元件升級失敗,且錯誤參照的自訂物件並非由 Apigee Edge 建立,因此無法完成 Apigee Edge 升級。
  • 執行 Apigee Analytics 服務維護 (備份/還原) 時發生不一致 (和失敗) 的情況。

最佳做法

  • 請勿直接在任何 Apigee 擁有的結構定義 (例如 analytics 等) 中,以資料欄、表格、檢視區塊、函式和程序的形式新增任何自訂資訊
  • 如有需要支援自訂資訊,可以使用 Statistics Collector 政策將資訊新增為資料欄 (欄位) 至 analytics 結構定義。

延伸閱讀