クエリー・メトリクス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分を超えたため記録されていないレイテンシー値の総数。