パフォーマンス統計リファレンス
このページでは、Solrが公開している統計情報の一部について説明します。
メトリクスを取得するには2つの方法があります。1つ目は、メトリクスAPIを使用する方法です。2つ目は、JMXを有効にして、MBeanリクエストハンドラまたはJConsoleなどの外部ツールからメトリクスを取得する方法です。以下の説明では、メトリクスAPIを使用したメトリクスの取得に焦点を当てていますが、MBeanリクエストハンドラまたは外部ツールを使用する場合でも、メトリクス名は同じです。
これらの統計はコアごとです。SolrCloudモードで実行している場合、これらの統計は個々のレプリカのパフォーマンスに関連します。
リクエストハンドラ統計
更新リクエストハンドラ
更新リクエストハンドラは、Solrにデータを送信するためのエンドポイントです。更新リクエストがいくつ発行されているか、実行速度、およびリクエストに関するその他の貴重な情報を確認できます。
レジストリとパス: solr.<core>:UPDATE./update
https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=UPDATE
などのAPIリクエストを使用して、更新リクエストハンドラの統計情報をリクエストできます。
検索リクエストハンドラ
検索クエリの件数、応答時間などを測定および追跡するのに役立ちます。「select」ハンドラを使用していない場合は、パスを適切に変更する必要があります。同様に、「sql」ハンドラまたは「export」ハンドラ、リアルタイムハンドラ「get」、またはその他のハンドラを使用している場合も、同様の統計情報を見つけることができます。
レジストリとパス: solr.<core>:QUERY./select
https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=QUERY./select
などのAPIリクエストを使用して、 /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分間に受信した1秒あたりのリクエスト数。 |
5minRate |
過去5分間に受信した1秒あたりのリクエスト数。 |
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コアが最初に作成されてから受信した、1秒あたりの平均リクエスト数。 |
エラーとその他の時間
エラーやタイムアウトなどの他のタイプのデータも提供されます。これらは、異なるメトリック名で利用できます。例えば
-
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
以下の表は、リクエストするメトリック名と属性を示しています
メトリック名 | 説明 |
---|---|
|
ハンドラで発生したエラーの数。エラー数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
クライアントがリクエストを行う際に発生した構文エラーまたは解析エラーの数。エラー数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
このハンドラが受信したリクエストの数。 |
|
リクエストの実行中にサーバーがスローしたエラーの数。エラー数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
部分的な結果で受信したレスポンスの数。タイムアウトイベント数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
Solrプロセスが開始されてからのすべてのリクエスト処理時間の合計(ナノ秒単位)。 |
|
ハンドラが登録されたエポック時間。 |
内部リクエストの区別
SolrCloudでの大規模コレクションの単一リクエストの処理には、他のレプリカ(多くの場合、他のノード上)への追加リクエストを行う必要があります。内部リクエストは表面上は非常によく似ていますが(同じハンドラ)、包括的なタスクの一部を実行しています。これらのリクエストを区別することは非常に重要です! Solrは、リクエストが他のリクエストに寄与している場合、異なるハンドラ名を使用してこれらのハンドラのメトリックを追跡します。
-
クエリ:
/select
クエリの内部リクエストは、/select[shard]
として追跡されます。技術的には、これはSearchHandler
とそのサブクラスで発生します。 -
(将来的には、より多くの計測が可能になる可能性があります)
SolrのPrometheusエクスポーター設定は、ハンドラのこのサフィックスを「internal」という名前のラベルに抽出します。 Grafanaやその他のメトリックツールを設定する際は、分析対象に応じて、これらのメトリックをフィルタリングして含めるか除外してください。
更新ハンドラ
このセクションには、追加の総数と、Solrコアに対して実行されたコミットの数が記載されています。
レジストリとパス: solr.<core>:UPDATE.updateHandler
https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=UPDATE.updateHandler
などのAPIリクエストを使用して、以下の表に示されているすべての更新ハンドラの統計情報を取得できます。
以下では、取得できる具体的な統計情報について説明します。
属性 | 説明 |
---|---|
|
最後のコミット以降の「追加」リクエストの総数。 |
|
2つの自動コミット実行間の最大時間。 |
|
実行された自動コミットの総数。 |
|
実行されたコミットの総数。 コミット数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
ライフタイムにわたって実行された「有効な」追加の数。「追加」コマンドが実行されるとカウンターが増加し、「ロールバック」が実行されると減少します。 追加数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
ライフタイムにわたってIDで実行されたドキュメント削除の数。「削除」コマンドが実行されるとカウンターが増加し、「ロールバック」が実行されると減少します。 削除数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
ライフタイムにわたってクエリによって実行されたドキュメント削除の数。「削除」コマンドが実行されるとカウンターが増加し、「ロールバック」が実行されると減少します。 削除数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
ライフタイムにわたってドキュメントの追加/削除アクションを実行中に受信したエラーメッセージの数。 エラー数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
現在コミットされていないIDによる削除。 |
|
現在コミットされていないクエリによる削除。 |
|
コミット待ちのドキュメントの数。 |
|
コアのライフタイムにわたってドキュメントの追加/削除/コミット/ロールバックアクションを実行中に受信したエラーメッセージの数。 |
|
削除を消去して発行されたコミットコマンドの数。 削除の消去数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
発生したインデックスマージの数。 マージ数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
発行された明示的な最適化コマンドの数。 最適化数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
実行されたロールバックの数。 ロールバック数に加えて、平均、1分、5分、15分のレートも利用可能です。 |
|
2つのソフト自動コミット間の最大ドキュメント「追加」数。 |
|
実行されたソフトコミットの数。 |
キャッシュ統計
ドキュメントキャッシュ
このキャッシュは、Luceneドキュメントオブジェクト(各ドキュメントの格納フィールド)を保持します。 Luceneの内部ドキュメントIDは一時的なため、このキャッシュは自動ウォーミングできません。
レジストリとパス: solr.<core>:CACHE.searcher.documentCache
https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.documentCache
などのAPIリクエストを使用して、以下の表に示されている統計情報を取得できます。
クエリ結果キャッシュ
このキャッシュは、以前の検索結果(クエリ、ソート、およびリクエストされたドキュメントの範囲に基づくドキュメントIDの順序付きリスト)を保持します。
レジストリとパス: solr.<core>:CACHE.searcher.queryResultCache
https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.queryResultCache
などのAPIリクエストを使用して、以下の表に示されている統計情報を取得できます。
フィルターキャッシュ
このキャッシュは、クエリに一致するすべてのドキュメントの順序付けられていないセットのフィルターに使用されます。
レジストリとパス: solr.<core>:CACHE.searcher.filterCache
https://127.0.0.1:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.filterCache
などのAPIリクエストを使用して、以下の表に示されている統計情報を取得できます。
キャッシュの統計
上記の各キャッシュについて、以下の統計情報が利用可能です。
属性 | 説明 |
---|---|
cumulative_evictions |
このノードが実行されてからのすべてのキャッシュにおけるキャッシュエビクションの数。 |
cumulative_hitratio |
このノードが実行されてからのすべてのキャッシュにおける、キャッシュヒットとルックアップの比率。 |
cumulative_hits |
このノードが実行されてからのすべてのキャッシュにおけるキャッシュヒットの数。 |
cumulative_inserts |
このノードが実行されてからのすべてのキャッシュにおけるキャッシュ挿入の数。 |
cumulative_lookups |
このノードが実行されてからのすべてのキャッシュにおけるキャッシュルックアップの数。 |
evictions |
現在のインデックスサーチャーのキャッシュエビクションの数。 |
hitratio |
現在のインデックスサーチャーのキャッシュヒットとルックアップの比率。 |
hits |
現在のインデックスサーチャーのヒット数。 |
inserts |
キャッシュへの挿入数。 |
lookups |
キャッシュに対するルックアップの数。 |
size |
その特定のインスタンスにおけるキャッシュ内のエントリの数。 |
warmupTime |
登録済みインデックスサーチャーのウォームアップ時間(ミリ秒)。この時間は、キャッシュの「自動ウォーミング」に考慮されます。 |
ヒープ使用量によるエビクションが有効になっている場合、クエリ結果キャッシュについて以下の追加の統計情報が利用可能です。
属性 | 説明 |
---|---|
maxRamMB |
キャッシュが使用できる最大ヒープ。これを超えるとキーがエビクトされます。 |
ramBytesUsed |
その特定のインスタンスにおけるキャッシュの実際のヒープ使用量。 |
evictionsRamUsage |
ヒープ使用量がmaxRamMBを超えたために、現在のインデックスサーチャーのキャッシュエビクションの数。 |
Solrキャッシュの詳細については、キャッシュとクエリのウォーミングのセクションを参照してください。