API History
#
用途說明可以動態配置 API紀錄頁面中的 Log 來源要從 Database 或 ElasticSearch 中取得。
#
欄位配置說明啟用時可以看到以下畫面:
對應的配置說明如下:
參數 | 類型 | 預設值 | 說明 | 必填 |
---|---|---|---|---|
source_by | string | database | 要從哪個來源管道拿取 API 紀錄。 可以選擇的管道有以下其一:database、elastic-search。 | V |
es_host | string | elastic-search 的主機位置。 若 source_by 選擇 elastic-search,則務必填寫此欄位。 | ||
es_port | number | 9200 | elastic-search 的連接 port 數。 若 source_by 選擇 elastic-search,則務必填寫此欄位。 | |
es_protocol | string | http | elastic-search 的 protocol。 若 source_by 選擇 elastic-search,則務必填寫此欄位。 | |
es_index | string | api_gateway_log | elastic-search 的 index,可以支援 wild-card 的方式來搜尋到對應的 index,例如:api_gateway_log-* 就可以搜尋到 api_gateway_log-2021.01.01 及 api_gateway_log-2022.05.01 這兩個 index。若 source_by 選擇 elastic-search,則務必填寫此欄位。 |
#
source_by 選擇 database選擇 database,則代表 API Log 會寫入 database,否則無法從 database 中取得任何 API Log。
因此需要確定是否也有同步啟用日誌分類的「database-log」插件(請務必確認是有顏色的 "啟用" 狀態,而非灰色的 "禁用" 狀態),啟動後, API Log 才會正確的寫入 database。詳細可參考 database-log 插件的說明頁面。
caution
將 API Log 存入 database 是不建議的做法,因 database 本身效能及資料儲存量可能過大,影響本身系統效能,因此只建議在 小量測試、小量驗證 的應用情境下使用。
大量的 API Log 請另外串接 ELK (elastic-search, logstash, kibana),ELK 相較於 Database,本身索引及搜尋特性更適合用來儲存大量 API Log 的資料。
#
source_by 選擇 elastic-search選擇 elastic-search,則代表 API Log 會寫入 elastic-search,否則無法從 elastic-search 中取得任何 API Log。
除了目前的「api-history」插件需要啟用及設定之外,同步也要啟用日誌分類的「tcp-body-log」插件, API Log 才會正確的透過 logstash 拋送寫入 elastic-search。詳細可參考 tcp-body-log 插件的說明頁面。
#
用法示例#
在全局啟用插件- 從網站左邊 Menu 中
外掛插件
頁面中,點選右上角的新增外掛插件
:
- 點選後,選擇
分析及監控
頁籤,並啟用 API History,填寫內容參考欄位配置說明,設定成功後,API 紀錄頁面就會依照配置至對應的來源端,從 database or elastic-search 中取得 API Log。
#
驗證啟用插件後,確認配置設定無誤後,透過 GOC API Gateway 去呼叫服務,再切換到「API 紀錄」頁面,選擇欲查詢的 API 紀錄起訖日、輸入要篩選之關鍵字後點擊查詢,即可看到如下圖的 API 紀錄: