クエリー・メトリクスMBean
クエリー・パフォーマンスのトラブルシューティング、DSE Searchの構成の調整、およびサーバー・リソースの調整を行います。
クエリー・メトリクスMBeanを使用して、クエリー・パフォーマンスのトラブルシューティング、DSE Search構成(検索インデックス・スキーマやキャッシュなど)の調整、サーバー・リソース(JVMヒープなど)の調整を行います。クエリー・メトリクスMBeanは、検索インデックスで分散クエリーの複数のメイン・フェーズを実行するために費やした時間の長さを記録します。
クエリー・メトリクスMBeanは、レイテンシーをマイクロ秒単位で測定します。
query.name
パラメーターを指定します。たとえば、demo.solrという名前の検索インデックスと、typeという名前のインデックス・フィールドがある場合、以下のURLを使用して追加のquery.name
パラメーターを指定します。http://localhost:8983/solr/demo.solr/select/?q=type:1&query.name=myquery
指定されたクエリー名で収集されたメトリクスはすべて、個別に記録され、取得されます。クエリー名が指定されない場合、すべてのメトリクスがまとめて記録されます。操作のメイン・フェーズ
- ENQEUE
- スレッドの実行を待機しているクエリー要求が費やした時間を構成します。
- EXECUTE
- 1つのシャードが実際のインデックス・クエリーの実行に費やした時間で構成されます。この値は、シャード・クエリーを実行するローカル・ノードで計算されます。
- RETRIEVE
- 1つのノードがデータベースから1つの行を取得するために費やした時間で構成されます。この値は、要求されたデータをホストするローカル・ノードで計算されます。
- COORDINATE
- コーディネーター・ノードがクエリーを分散させ、シャードからの結果を収集/処理するために費やした時間の長さで構成されます。この値は、クエリー・コーディネーター・ノードでのみ計算されます。合計にRETRIEVEとEXECUTEが含まれます。
- TOTAL
- 検索クエリーのサーバー側の合計時間で構成されます。合計にCOORDINATEとENQEUEが含まれます。
クエリー・メトリクスMBeanのセット操作
操作は以下のとおりです。
- setEnabled(boolean enabled)
メトリクスの記録を有効/無効にします。デフォルトでは有効になっています。
- isEnabled()
メトリクスの記録が有効になっているかどうかを確認します。
- getLatencyPercentile(String phase, String query, double percentile)
クエリー・レイテンシー・パーセンタイルをそのクエリー名別に取得します。これは任意であり、nullおよびphaseにすることができます。
- getRecordedLatencyCount(String phase, String query)
記録されたレイテンシー・メトリクスの総数をそのクエリー名別に取得します。これは任意であり、nullおよびphaseにすることができます。
- getUnrecordedLatencyCount()
追跡されるレイテンシーの最大値10分を超えたため記録されていないレイテンシー値の総数を取得します。
- resetLatency(String query)
指定されたクエリー名に関するレイテンシー・メトリクスをリセットします。これは任意であり、nullにすることができます。
- resetLatencies()
すべてのレイテンシー・メトリクスをリセットします。
クエリー・メトリクスMBeanの各種属性
属性は次のとおりです。
- Enabled
- メトリクスの記録が有効であるか無効であるかを示します。
- EnqueuedRequestCount
- クエリー・スレッドを現在待機しているクライアント要求の数を示します。
EnqueuedRequestCount MBean の値が増加するか、または長期間にわたってゼロを超えて安定する場合、DSE Searchは最大スループットのポイントに達し、追加の負荷はレイテンシーを増加させるだけです。
この属性にアクセスするには、次の例に示すように、
nodetool sjk
コマンドで-f
オプションを使用します。nodetool sjk -p 7199 mx -mg \ -b com.datastax.bdp:type=search,index=demo.solr,name=QueryMetrics \ -f EnqueuedRequestCount
- UnrecordedLatencyCount
- 追跡されるレイテンシーの最大値10分を超えたため記録されていないレイテンシー値の総数。