博客 / 詳情

返回

INFINI Console 指標採集優化

前言

在 Easysearch / Elasticsearch / Opensearch 管理系統中,對於不同集羣不同指標數據進行採集是一個常規任務。但是採集過程中不僅會對採集系統 CPU 和訪問性能造成不少壓力,也會對 Easysearch / Elasticsearch / Opensearch 集羣造成資源消耗,從而影響集羣本身的健康運行。因此,優化設計採集指標任務系統設計尤為重要。

原架構分析

先前基於對 Console 自身性能影響的考量,我們將所有納管集羣的指標採集任務都放到單一線程中去順序執行,如下圖:

在原有架構中,所有集羣指標的採集任務操作均依賴於一個線程執行,每個集羣的採集任務包括 “集羣健康”,“集羣統計”,“節點統計” 等採集任務。該模型實現簡單,但也帶來以下問題:

  1. 單線程實現增加應用總時間而導致超時風險。
  2. 不同集羣間採集指標任務相互干擾,導致指標採集相當不穩定。
  3. 不同的集羣指標採集時間間隔可能不一樣,無法精確控制。

新架構優化

新設計中,我們將每個集羣中不同採集項分佈到獨立線程去執行:

  1. 每個集羣的“集羣健康”,“節點統計”,和“指數統計”採用獨線程執行。
  2. 不同的指標採集任務可以獨立設置採集時間間隔。
  3. 將所有采集任務放到一個線程池中去執行,集中控制資源使用和任務調度。

優化效果

通過拆分併發執行,新設計獲得瞭如下收益:

  1. 解決了相互干擾並導致性能不穩定的問題
  2. 提升輸出和數據分析完整性。
  3. 解決了不同指標採集任務設置不同採集間隔的問題

總結

通過拆分併發採集集羣指標,使得 INFINI Console 的指標採集功能更加流暢,指標輸出更加完整,給用户帶來更好的使用體驗。最近 INFINI Console 宣佈開源了,如果您想了解更多的細節, 可以去 https://github.com/infinilabs/console 查看源碼。

關於 INFINI Console

INFINI Console 是一款非常輕量級的多集羣、跨版本的搜索基礎設施統一管控平台。通過對流行的搜索引擎基礎設施進行跨版本、多集羣的集中納管,企業可以快速方便的統一管理企業內部的不同版本的多套搜索集羣。INFINI Console 還可以對集羣內的索引及數據進行操作管理,可以配置靈活的告警規則,可以指定統一的安全策略,可以查看各個維度的日誌和審計信息,真正實現企業級的搜索服務平台化建設和運營。

官方文檔:https://infinilabs.cn/products/console

user avatar kasong 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.