Spryker Elasticsearch 日志監控:提升應用可觀測性

在 spryker 電商平臺的開發過程中,我們經常與 elasticsearch 交互進行搜索和數據檢索。然而,在早期版本中,我們缺乏對 elasticsearch api 調用細節的有效監控機制。當出現搜索異常或性能問題時,定位問題根源變得異常困難,這嚴重影響了我們的開發效率和運維效率。 日志信息要么過于簡略,要么分散在各個地方,難以整合分析。

為了解決這個問題,我們決定引入一個專門的 Elasticsearch 日志監控方案。在調研了多種方案后,我們選擇了 valantic-spryker/elasticsearch-Logging 這個庫。這個庫專為 Spryker 設計,能夠將 Spryker 的日志客戶端與 Elasticsearch 集成,并將 Elasticsearch API 調用的詳細信息記錄到 Elasticsearch 中,方便我們進行集中監控和分析。

安裝該庫非常簡單,只需要使用 composer

composer require valantic-spryker/elasticsearch-logging

安裝完成后,我們需要更新 Spryker 的共享配置 shared/config/config.php 文件,添加命名空間并設置日志級別為 DEBUG:

$config[KernelConstants::PROJECT_NAMESPACES] = [    'ValanticSpryker',    // ... other namespaces];$config[LogConstants::LOG_LEVEL] = Logger::DEBUG;

設置日志級別為 DEBUG 能夠確保記錄 Elasticsearch API 調用的所有細節。 配置完成后,重新啟動 Spryker 應用。之后,所有 Elasticsearch API 調用都會以 json 格式記錄到 Elasticsearch 中,包含請求 URL、請求頭、請求體、響應狀態碼和響應體等詳細信息。

日志示例如下(Glue 和 Zed 模塊的日志格式略有不同):

Glue 模塊日志示例:

{"@timestamp":"2023-02-02T11:51:26.930431+00:00", ...}

Zed 模塊日志示例:

{"@timestamp":"2023-02-02T11:53:13.947352+00:00", ...}

這些詳細的日志信息為我們提供了豐富的上下文信息,例如請求參數、響應時間等,幫助我們快速定位問題。例如,我們可以根據響應狀態碼快速篩選出失敗的請求,并根據請求參數分析問題原因。

通過使用 Kibana 等工具可視化 Elasticsearch 中的日志數據,我們可以創建儀表盤來監控 Elasticsearch API 的性能指標,例如請求成功率、平均響應時間、請求數量等,從而更好地了解 Elasticsearch 的運行狀況,及時發現潛在問題。

總結:

valantic-spryker/elasticsearch-logging 庫極大地提升了我們對 Spryker 應用中 Elasticsearch 交互的監控能力。它帶來的優勢主要體現在以下幾個方面:

  • 提升可觀測性: 提供了對 Elasticsearch API 調用的全面監控,方便我們了解應用的運行狀況。
  • 簡化問題排查: 詳細的日志信息幫助我們快速定位和解決 Elasticsearch 相關的問題。
  • 性能監控: 可以基于日志數據監控 Elasticsearch API 的性能指標,及時發現性能瓶頸。
  • 易于集成: 與 Spryker 的集成非常簡單,只需要簡單的 Composer 命令和配置修改。

總而言之,valantic-spryker/elasticsearch-logging 是一個非常有用的庫,強烈推薦在 Spryker 項目中使用,以提升應用的可觀測性和穩定性。 如果你想更深入地學習 Composer 的使用,可以參考這個 Composer 在線學習地址:學習地址

以上就是Spryker Elasticsearch

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享