API индексов фрагментов хранилища
Получает информацию о хранилищах фрагментов реплик в одном или нескольких индексах. Для потоков данных API получает информацию о хранилищах для базовых индексов потока.
resp = client.indices.shard_stores(
index="my-index-000001",
)
print(resp) response = client.indices.shard_stores( index: 'my-index-000001' ) puts response
const response = await client.indices.shardStores({
index: "my-index-000001",
});
console.log(response); GET /my-index-000001/_shard_stores
Запрос
GET /<target>/_shard_stores
GET /_shard_stores
Предварительные условия
- Если включены функции безопасности Elasticsearch, у вас должны быть права доступа
monitorилиmanageиндекса для целевого потока данных, индекса или псевдонима.
Описание
API индексов фрагментов хранилища возвращает следующую информацию:
- Узел, на котором существует каждый фрагмент реплики
- Идентификатор распределения для каждого фрагмента реплики
- Уникальный идентификатор для каждого фрагмента реплики
- Любые ошибки, возникшие при открытии индекса фрагмента или при предыдущей ошибке
По умолчанию API возвращает информацию о хранилищах только для первичных фрагментов, которые не назначены или имеют один или несколько неназначенных фрагментов реплики.
Параметры пути
-
<target> - (Необязательный, строка) Список данных потоков, индексов и псевдонимов, используемый для ограничения запроса. Поддерживает подстановочные знаки (
*). Для определения всех потоков данных и индексов опустите этот параметр или используйте*или_all.
Параметры запроса
-
allow_no_indices -
(Необязательный, булево) Если
false, запрос возвращает ошибку, если какое-либо выражение с подстановочными знаками, псевдоним индекса или_allзначение определяет только отсутствующие или закрытые индексы. Это поведение применяется даже если запрос относится к другим открытым индексам. Например, запрос, относящийся кfoo*,bar*, возвращает ошибку, если индекс начинается сfoo, но ни один индекс не начинается сbar.По умолчанию значение
true. -
expand_wildcards -
(Необязательный, строка) Тип индекса, с которым могут совпадать шаблоны подстановочных знаков. Если запрос может относиться к потокам данных, этот параметр определяет, соответствуют ли выражения с подстановочными знаками скрытым потокам данных. Поддерживает значения, разделённые запятыми, например,
open,hidden. Допустимые значения:-
all - Соответствует любому потоку данных или индексу, включая скрытые.
-
open - Соответствует открытым, нескрытым индексам. Также соответствует любому нескрытому потоку данных.
-
closed - Соответствует закрытым, нескрытым индексам. Также соответствует любому нескрытому потоку данных. Потоки данных не могут быть закрыты.
-
hidden - Соответствует скрытым потокам данных и скрытым индексам. Должно быть комбинировано с
open,closedили обоими. -
none - Шаблоны подстановочных знаков не принимаются.
По умолчанию значение
open. -
-
ignore_unavailable - (Необязательный, булево) Если
false, запрос возвращает ошибку, если он относится к отсутствующему или закрытому индексу. По умолчаниюfalse. -
status -
(Необязательный, строка) Список статусов состояния фрагментов, используемый для ограничения запроса.
Допустимые значения включают:
-
green - Первичный фрагмент и все фрагменты реплик назначены.
-
yellow - Один или несколько фрагментов реплики не назначены.
-
red - Первичный фрагмент не назначен.
-
all - Вернуть все фрагменты независимо от состояния.
По умолчанию
yellow,red. -
-
max_concurrent_shard_requests -
(Необязательный, целое число) Максимальное количество одновременных запросов на уровне фрагментов, отправленных координирующим узлом. По умолчанию
100. Большие значения могут ускорить ответ на запросы, направленные к многим фрагментам, но также могут оказать большее влияние на другие операции кластера.
Примеры
Получение информации о хранилище фрагментов для определенного потока данных или индекса
resp = client.indices.shard_stores(
index="test",
)
print(resp) response = client.indices.shard_stores( index: 'test' ) puts response
const response = await client.indices.shardStores({
index: "test",
});
console.log(response); GET /test/_shard_stores
Получение информации о хранилище фрагментов для нескольких потоков данных и индексов
resp = client.indices.shard_stores(
index="test1,test2",
)
print(resp) response = client.indices.shard_stores( index: 'test1,test2' ) puts response
const response = await client.indices.shardStores({
index: "test1,test2",
});
console.log(response); GET /test1,test2/_shard_stores
Получение информации о хранилище фрагментов для всех потоков данных и индексов
resp = client.indices.shard_stores() print(resp)
response = client.indices.shard_stores puts response
const response = await client.indices.shardStores(); console.log(response);
GET /_shard_stores
Получение информации о хранилище фрагментов на основе состояния кластера
Вы можете использовать параметр запроса status для ограничения возвращаемой информации на основе состояния фрагмента.
Следующий запрос возвращает только информацию для назначенных первичных и фрагментов реплики.
resp = client.indices.shard_stores(
status="green",
)
print(resp) response = client.indices.shard_stores( status: 'green' ) puts response
const response = await client.indices.shardStores({
status: "green",
});
console.log(response); GET /_shard_stores?status=green
API возвращает следующий ответ:
{
"indices": {
"my-index-000001": {
"shards": {
"0": {
"stores": [
{
"sPa3OgxLSYGvQ4oPs-Tajw": {
"name": "node_t0",
"ephemeral_id" : "9NlXRFGCT1m8tkvYCMK-8A",
"transport_address": "local[1]",
"external_id": "node_t0",
"attributes": {},
"roles": [...],
"version": "8.10.0",
"min_index_version": 7000099,
"max_index_version": 8100099
},
"allocation_id": "2iNySv_OQVePRX-yaRH_lQ",
"allocation" : "primary|replica|unused"
"store_exception": ...
}
]
}
}
}
}
} | Ключ — соответствующий идентификатор фрагмента для информации о хранилище | |
| Список информации о хранилищах для всех копий фрагмента | |
| Информация о узле, который содержит копию хранилища, ключ — уникальный идентификатор узла. | |
| Идентификатор распределения копии хранилища | |
| Статус копии хранилища, является ли она первичной, репликой или не используется вообще | |
| Любые исключения, возникшие при открытии индекса фрагмента или ранее при возникновении ошибки двигателя |
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/indices-shards-stores.html