CAT API は、手動での観測とトラブルシューティングを目的としています。日常的な概要確認では、まず Collection レベルを確認してください。キャパシティまたはシャードの問題が発生した場合は、Collection の Backing を確認してください。特定の Slice を確認して、データ分散とドキュメント数を特定してください。アプリケーション リクエストは、CAT 出力に依存してはなりません。
Slice CAT はデータをクエリし、ドキュメントをカウントします。複数の Backing にわたって検索や集計を実行する場合があります。アプリケーションの起動フローや初期化フロー、アプリケーション リクエストパス、または頻繁な検査タスクから Slice CAT を呼び出さないでください。トラブルシューティング時には、可能な限り単一の Slice または Backing を指定し、リクエストの頻度を制限してください。h は返す列をフィルタリングするだけです。docs.count が表示されない場合でも、サーバーはドキュメントをカウントします。Slice のリストのみが必要な場合は、Slice のページネーション オペレーションを使用してください。このオペレーションはドキュメントをカウントしません。
| 観測レベル | API | 主な情報 |
| Collection | GET /_cat/slice_collection[/{name}] | ライフサイクルの状態、Backing 数、Slice 数、キャパシティ、残りキャパシティ、ドキュメント数、データセットサイズ |
| Backing | GET /_cat/slice_collection/{collection}/backings[/{backing}] | ヘルスステータス、新しい Slice の受け入れ可否、シャード、レプリカ、Slice 数、キャパシティ、残りキャパシティ、ドキュメント数、ストレージサイズ、未割り当てシャード数 |
| Slice | GET /_cat/slice_collection/{collection}/slices[/{slice}] | Slice を保持する Backing、ターゲットシャード、レプリカ数、ドキュメント数 |
デフォルト列:
| 観測レベル | デフォルト列 |
| Collection | collection、state、backings、slices、capacity、remaining、docs.count、dataset.size |
| Backing | backing、health、assign、pri、rep、slices、capacity、remaining、docs.count、pri.store.size、store.size、unassigned |
| Slice | slice、backing、shardIds、rep、docs.count |
共通クエリパラメーター:
| パラメーター | 説明 |
v | 列ヘッダーを表示するかどうかを指定します。 |
format | 出力形式を指定します (json、yaml、text など)。 |
h | 指定した列のみを返します。 |
s | 指定した列でソートします (例:docs.count:desc)。 |
bytes | ストレージサイズの単位を指定します。 |
help | 使用可能な列を表示します。 |
プログラムによる処理では、format=json を使用し、デフォルトの列に依存せず、列を明示的に指定してください:
GET /_cat/slice_collection/knowledge-chunks?format=json&h=collection,state,backings,slices,docs.count,dataset.sizeCollection と Backing の動作および制限
パス構文 — Collection API では、
{name}に完全一致の名前、カンマ区切りのリスト、またはワイルドカードを指定できます。Backing および Slice CAT API の{collection}は完全一致の名前を指定する必要があります。
列のセマンティクス —
dataset.sizeは、すべての Backing のプライマリシャードのデータセットサイズの合計です。プライマリシャードのみがカウントされるため、値はレプリカ数で乗算されません。
列のセマンティクス — Backing の
remaining値は、その Backing に必ず割り当てられる Slice の数と等しいわけではありません。assign=disabledの場合、remainingが 0 より大きくても、Backing は新しい Slice を受け付けません。
列のセマンティクス — すべてのプライマリシャードが起動していない場合、
docs.countとpri.store.sizeは空になる場合があります。これらの値はhealthおよびunassignedと合わせて解釈し、空の値を 0 として扱わないでください。
列のセマンティクス —
pri.store.sizeとstore.sizeは、インデックス化されたデータのサイズを示します。これらはステートレスノードのローカルディスク使用量と同じではなく、オブジェクトストレージでクリーンアップ待ちの履歴データも含まれません。
制限 — Collection 概要または Backing リストが 10,000 個を超える Backing に展開される場合、リクエストは HTTP 400 を返します。Collection のスコープを絞り込んでください。
Slice リスト固有のパラメーター
| パラメーター、構文、またはシナリオ | 動作 |
/{slice} | 完全一致の名前で単一の Slice をクエリします。Slice が存在しない場合、リクエストは HTTP 404 を返します。 |
backing={backing} | 完全な名前で指定された 1 つの Backing の Slice のみを返します。 |
backing={backing}&shard={id1,id2,...} | 指定された Backing の中から、検索ルーティングが指定のプライマリシャード ID のいずれかに到達する Slice のみを返します。shard は複数の値をカンマ区切りで指定でき、完全に一致する backing の値と一緒に指定する必要があります。 |
| デフォルトのソート | slice の昇順でソートされた結果を返します。 |
backing を指定した場合の s=docs.count:asc または s=docs.count:desc | その Backing の Slice をドキュメント数で昇順または降順にソートします。 |
allow_expensive_search=true を指定した場合の s=docs.count:asc または s=docs.count:desc | Collection 内のすべての Backing にわたる Slice をドキュメント数で昇順または降順にソートします。 |
シャードで Slice をフィルタリングするには、2 つの手順が必要です。まず、Collection の Backing をリストします。このリクエストでは、v が列ヘッダーを返すため、応答内の完全な Backing 名を識別できます:
GET /_cat/slice_collection/knowledge-chunks/backings?v次に、シャードで Slice をフィルタリングします。次のリクエストのプレースホルダーを、最初の応答の backing 列の完全な Backing 名に置き換えてください:
GET /_cat/slice_collection/knowledge-chunks/slices?backing=<complete-backing-name>&shard=0,1&h=slice,backing,shardIds&format=jsonbacking 名は、この操作のためのフィルタリングにのみ適用されます。アプリケーションは引き続き Collection を通じてデータの読み取りと書き込みを行い、Slice レベルでは _slice を通じて行います。
shard は、0 から index.number_of_shards マイナス 1 までの範囲内でなければなりません。この範囲外の値の場合、リクエストは HTTP 400 を返します。backing なしで shard を指定した場合も、リクエストは HTTP 400 を返します。複数のシャード ID は OR 条件で照合されます。docs.count またはそのエイリアス dc が s の最初のソートフィールドである場合、そのソートと組み合わせて shard を使用することはできません。
s=docs.count は、デフォルトで昇順にソートします。docs.count が最初のソートフィールドである限り、昇順と降順の両方のソートは、結果を選択する前にターゲット Backing で集計します。backing が指定されていない場合、リクエストは Collection 内のすべての Backing をスキャンし、allow_expensive_search=true が明示的に設定されていない限り HTTP 400 を返します。このパラメーターは現在のリクエストにのみ適用されます。別のフィールドが最初のソートフィールドである場合、ソートは Slice 名で選択済みの結果にのみ適用され、グローバルランキングは生成されません。
ドキュメント数が 0 の Slice は、ドキュメント数でソートされた結果には表示されませんが、デフォルトのリストまたは Slice 名を完全一致で指定したクエリでは表示されます。
CAT の動作と使用推奨事項
結果がサーバー側の行制限を超える場合、CAT はページ分割を行いません。応答は許可される最大行数を返し、HTTP
Warningヘッダーを使用して結果が不完全であることを示します。
ドキュメント数のソートは分散集計に依存するため、順序とドキュメント数が不正確になる場合があります。結果が不正確である可能性がある場合、応答には HTTP
Warningヘッダーが含まれ、理由が説明されます。
CAT はニアリアルタイム ビューです。書き込まれたばかりでまだリフレッシュされていないドキュメントは、
docs.countにカウントされない場合があります。
CAT は単一の Slice のストレージサイズを提供せず、Slice ストレージサイズによるソートもサポートしていません。Slice CAT クエリを実行せずに単一の Slice のドキュメント数を取得するには、
include_doc_count=trueを指定した 単一 Slice のクエリ を使用してください。
Branch Slice (Beta) を使用する場合、複数行を返す CAT リストおよびドキュメント数のソートには、継承されたデータが完全には含まれません。そのトピックの指示に従って、ターゲット Slice のドキュメント数を個別にクエリしてください。
インスタンスレベルの監視メトリクスとコンソールエントリポイントについては、クラスターモニタリングをご参照ください。