效能統計參考

此頁面說明 Solr 公開的一些統計資訊。

有兩種方法可以檢索指標。首先,您可以使用 指標 API,或者您可以啟用 JMX 並從 MBean 請求處理器 或透過 JConsole 等外部工具取得指標。以下說明著重於使用指標 API 檢索指標,但如果使用 MBean 請求處理器或外部工具,則指標名稱是相同的。

這些統計資訊是每個核心的。當您在 SolrCloud 模式下執行時,這些統計資訊會與個別副本的效能相關聯。

請求處理器統計資訊

更新請求處理器

更新請求處理器是將資料傳送到 Solr 的端點。我們可以查看有多少更新請求正在觸發、執行速度有多快,以及有關請求的其他有價值資訊。

登錄和路徑: solr.<核心>:UPDATE./update

您可以使用 API 請求(例如 https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=UPDATE)請求更新請求處理器的統計資訊。

搜尋請求處理器

可用於測量和追蹤搜尋查詢的數量、回應時間等。如果您未使用 "select" 處理器,則需要適當變更路徑。同樣地,如果您使用 "sql" 處理器或 "export" 處理器、即時處理器 "get",或任何其他處理器,也可以找到類似的統計資訊。

登錄和路徑solr.<核心>:QUERY./select

您可以使用 API 請求(例如 https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=QUERY./select)請求 /select 請求處理器的統計資訊。

請求處理器的常用統計資訊

所有更新和搜尋請求處理器都會提供以下統計資訊。

請求時間

若要取得請求時間,尤其是,您可以傳送 API 請求,例如

  • https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=UPDATE./update.requestTimes

  • https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=QUERY./select.requestTimes

屬性 描述

15minRate

過去 15 分鐘內每秒收到的請求數。

5minRate

過去 5 分鐘內每秒收到的請求數。

p75_ms

屬於第 75 個百分位數的請求的請求處理時間。例如,如果收到 100 個請求,則此統計資訊會報告第 75 個最快請求時間。

p95_ms

屬於第 95 個百分位數的請求的請求處理時間(毫秒)。例如,如果收到 100 個請求,則此統計資訊會報告第 95 個最快請求時間。

p999_ms

第 99.9 百分位數的請求處理時間,以毫秒為單位。例如,如果收到 1000 個請求,則此統計資訊中將報告第 999 快請求的時間。

p99_ms

第 99 百分位數的請求處理時間,以毫秒為單位。例如,如果收到 100 個請求,則此統計資訊中將報告第 99 快請求的時間。

count

自 Solr 核心首次建立以來發出的請求總數。

median_ms

所有請求處理時間的中位數。

meanRate

自 Solr 核心首次建立以來,每秒收到的平均請求數。

錯誤和其他時間

也提供其他類型的資料,例如錯誤和逾時。這些資料可在不同的指標名稱下取得。例如

  • https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=UPDATE./update.errors

  • https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=QUERY./select.errors

下表顯示了指標名稱和要請求的屬性

指標名稱 描述

QUERY./select.errors UPDATE./update.errors

處理程式遇到的錯誤數量。除了錯誤計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

QUERY./select.clientErrors UPDATE./update.clientErrors

客戶端在發出請求時發生的語法或解析錯誤數量。除了錯誤計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

QUERY./select.requests UPDATE./update.requests

此處理程式收到的請求數量。

QUERY./select.serverErrors UPDATE./update.serverErrors

伺服器在執行請求時擲出的錯誤數量。除了錯誤計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

QUERY./select.timeouts UPDATE./update.timeouts

收到的部分結果回應數量。除了逾時事件計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

QUERY./select.totalTime UPDATE./update.totalTime

自 Solr 處理程序啟動以來,所有請求處理時間的總和,以奈秒為單位。

QUERY./select.handlerStart UPDATE./update.handlerStart

處理程式註冊時的 Epoch 時間。

區分內部請求

在 SolrCloud 中處理大型集合的單個請求需要向其他副本發出額外的請求,這些副本通常位於其他節點上。內部請求在表面上看起來非常相似(相同的處理程式),但它們正在執行整個任務的一部分。區分這些請求非常重要!當請求有助於其他請求時,Solr 會使用不同的處理程式名稱來追蹤這些處理程式的指標

  • 查詢:/select 查詢的內部請求將追蹤為 /select[shard]。從技術上講,這發生在 SearchHandler 及其子類別上。

  • (將來可以檢測更多內容)

Solr 的 Prometheus 匯出器組態會將處理程式上的這個後綴提取到名為「internal」的標籤。在設定 Grafana 或其他指標工具時,請務必根據分析的內容篩選這些指標。

更新處理程式

本節包含有關新增總數以及已針對 Solr 核心觸發的提交次數的資訊。

登錄和路徑: solr.<core>:UPDATE.updateHandler

您可以使用 API 請求(例如 https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=UPDATE.updateHandler)取得下表中顯示的所有更新處理程式統計資訊。

以下說明您可以取得的特定統計資訊

屬性 描述

UPDATE.updateHandler.adds

自上次提交以來的「新增」請求總數。

UPDATE.updateHandler.autoCommitMaxTime

兩個自動提交執行之間的最大時間。

UPDATE.updateHandler.autoCommits

已執行的自動提交總數。

UPDATE.updateHandler.commits

已執行的提交總數。

除了提交計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.cumulativeAdds

生命週期內執行的「有效」新增數量。當執行「add」命令時,計數器會遞增;當執行「rollback」時,計數器會遞減。

除了新增計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.cumulativeDeletesById

生命週期內依 ID 執行的文件刪除數量。當執行「delete」命令時,計數器會遞增;當執行「rollback」時,計數器會遞減。

除了刪除計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.cumulativeDeletesByQuery

生命週期內依查詢執行的文件刪除數量。當執行「delete」命令時,計數器會遞增;當執行「rollback」時,計數器會遞減。

除了刪除計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.cumulativeErrors

在生命週期內,對文件執行新增/刪除動作時收到的錯誤訊息數量。

除了錯誤計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.deletesById

目前未提交的依 ID 刪除。

UPDATE.updateHandler.deletesByQuery

目前未提交的依查詢刪除。

UPDATE.updateHandler.docsPending

待提交的文件數量。

UPDATE.updateHandler.errors

在核心的生命週期內,對文件執行新增/刪除/提交/回滾動作時收到的錯誤訊息數量。

UPDATE.updateHandler.expungeDeletes

發出清除刪除項的提交命令數量。

除了清除刪除項計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.merges

發生的索引合併次數。

除了合併計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.optimizes

發出的明確最佳化命令次數。

除了最佳化計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.rollbacks

已執行的回滾次數。

除了回滾計數之外,還提供平均值、1 分鐘、5 分鐘和 15 分鐘的速率。

UPDATE.updateHandler.softAutoCommitMaxTime

兩個軟式自動提交之間的最大文件「新增」數量。

UPDATE.updateHandler.softAutoCommits

已執行的軟式提交次數。

快取統計資訊

文件快取

此快取保存 Lucene Document 物件(每個文件的已儲存欄位)。由於 Lucene 內部文件 ID 是暫時性的,因此無法自動預熱此快取。

登錄和路徑: solr.<core>:CACHE.searcher.documentCache

您可以使用 API 請求(例如 https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.documentCache)取得下表中顯示的統計資訊。

查詢結果快取

此快取保存先前搜尋的結果:依據查詢、排序和要求的檔案範圍,排序的文件 ID 清單

登錄和路徑: solr.<core>:CACHE.searcher.queryResultCache

您可以使用 API 請求(例如 https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.queryResultCache)取得下表中顯示的統計資訊。

篩選快取

此快取用於符合查詢的所有文件的未排序集合的篩選器。

登錄和路徑: solr.<core>:CACHE.searcher.filterCache

您可以使用 API 請求(例如 https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.filterCache)取得下表中顯示的統計資訊。

快取的統計資訊

以下統計資訊適用於上述每個快取

屬性 描述

cumulative_evictions

自此節點執行以來,所有快取的快取逐出次數。

cumulative_hitratio

自此節點執行以來,所有快取中快取命中次數與查詢次數的比率。

cumulative_hits

自此節點執行以來,所有快取的快取命中次數。

cumulative_inserts

自此節點執行以來,所有快取的快取插入次數。

cumulative_lookups

自此節點執行以來,所有快取的快取查詢次數。

evictions

目前索引搜尋器的快取逐出次數。

hitratio

目前索引搜尋器的快取命中次數與查詢次數的比率。

hits

目前索引搜尋器的命中次數。

inserts

插入到快取的次數。

lookups

對快取的查詢次數。

size

在特定例項中,快取的項目數量。

warmupTime

已註冊索引搜尋器的預熱時間,以毫秒為單位。此時間會納入快取的「自動預熱」計算中。

當啟用依堆積使用量逐出時,下列額外統計資訊適用於查詢結果快取

屬性 描述

maxRamMB

快取應使用的最大堆積,超出此值時,將會逐出索引鍵。

ramBytesUsed

在特定例項中,快取的實際堆積使用量。

evictionsRamUsage

由於堆積使用量超過 maxRamMB,目前索引搜尋器的快取逐出次數。

有關 Solr 快取的詳細資訊,請參閱「快取和查詢預熱」一節。