查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
問題
使用 StatisticsCollector 政策是 不會顯示在 Edge UI 的 Analytics 自訂報表的「自訂維度」下方。
錯誤訊息
沒有發現任何錯誤。
可能原因
下表列出這個問題的可能原因:
原因 | 適用於 |
---|---|
自訂變數未遵循標準規範 | 邊緣私人與公有雲使用者 |
API Proxy 上沒有導入 StatisticsCollector 政策的 API Proxy | 邊緣私人與公有雲使用者 |
未推送至 Postgres 伺服器的自訂變數 | Edge Private Cloud 使用者 |
按一下表格中的連結,查看可能的解決方式。
自訂變數不符合標準規範
診斷
如果 StatisticsCollector 政策中使用的自訂變數名稱沒有 遵守標準指南 (請參閱 解析度),因此不會顯示在「自訂報表」中。
下方的程式碼片段顯示變數名稱「product id」具有空格 因此不會顯示在「自訂報表」的「自訂維度」下方
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="productID" ref="product id" type="string">999999</Statistic> </Statistics> </StatisticsCollector>
解析度
API 中 StatisticsCollector 政策中使用的自訂變數名稱 Proxy 應遵循下列指南:
- 名稱可包含 [a-z][0-9] 和「_」。
- 名稱不得包含空格。例如,在上述程式碼範例中,變數名稱 應改為「product_id」。
- 會忽略大小寫。
- 列於以下連結表格中的保留關鍵字不屬於 。例如「user」不符合條件。若需更多資訊,請參閲 SQL 關鍵字詞。
如果問題持續發生,請繼續 API Proxy 上沒有導入 StatisticsCollector 政策的 API Proxy。
實作 StatisticsCollector 政策的 API Proxy 沒有任何流量
診斷
如果導入 StatsCollector 的 API Proxy 上沒有任何流量 政策,自訂變數就不會出現在「自訂報表」中。
解析度
呼叫實作 StatsCollector 的 API Proxy 政策。
請等候一段時間,然後檢查自訂變數是否出現在 自訂報表。
如果問題仍未解決,請接著前往「系統不會將自訂變數推送至」 Postgres 伺服器。
自訂變數未推送至 Postgres 伺服器
診斷
在 API Proxy 中建立自訂變數並發出 API 呼叫後, 變數會先儲存在訊息中,再儲存於訊息處理器中訊息 接著,處理者會將新變數的相關資訊傳送至 ZooKeeper 並傳送到 Postgres 伺服器,在 Postgres 中新增為資料欄 資料庫
有時候,網路的緣故,ZooKeeper 傳送的通知可能無法連到 Postgres 伺服器 以負載平衡機制分配流量 即可降低應用程式發生效能問題的風險受這項錯誤影響,自訂變數可能不會顯示在 自訂報表。
如何找出自訂變數缺漏的位置:
- 使用下列指令產生 ZooKeeper 樹狀結構:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
- 在 ZooKeeper 樹狀結構輸出內容中搜尋自訂變數。
- 如果自訂變數位於 ZooKeeper 樹狀結構中,則執行
請輸入下列指令,檢查自訂變數是否已新增至 Postgres
資料庫:
- 在 Postgres 節點上登入 PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- 執行下列 SQL 查詢:
select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'orgname.envname.fact';
- 在 Postgres 節點上登入 PostgreSQL:
- 您很有可能在 這項資訊不會顯示在自訂維度中。
解析度
解決方案 #1:重新啟動 Postgres 伺服器
- 重新啟動 Postgres 伺服器,強制要求伺服器讀取所有
Zookeeper 提供的數據分析:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
如果問題持續發生,請採用解決方案 #2。
解決方案 #2:啟用屬性強制啟用板
按照下列步驟啟用 forceonboard 屬性:
- 在以下位置建立
/opt/apigee/customer/application/postgres-server.properties
個檔案: 建立 Postgres 伺服器機器 (如果尚未存在)。 - 在這個檔案中新增下列程式碼:
conf_pg-agent_forceonboard=true
- 使用下列指令,確保這個檔案的擁有者為 Apigee:
chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
- 重新啟動 Postgres 伺服器:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- 如果您有多個 Postgres 伺服器,請在所有 Postgres 伺服器。
- 取消部署及部署使用 StatsCollector 的 API Proxy 政策。
- 執行 API 呼叫。
- 檢查自訂變數是否顯示在「自訂」自訂維度中 檢舉。
如果問題仍未解決,請與 Apigee Edge 支援團隊聯絡。