Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›API кластера

API состояния кластера

Справочник по новым API

Для получения самых актуальных данных об API обратитесь к API кластера.

Возвращает внутреннее представление состояния кластера для отладки или диагностики.

Запрос

GET /_cluster/state/<metrics>/<target>

Предварительные условия

  • Если в Elasticsearch включены функции безопасности, вам необходимо иметь monitor или manage разрешение на работу с кластером, чтобы использовать этот API.

Описание

Состояние кластера — это внутренняя структура данных, которая отслеживает различные сведения, необходимые каждому узлу, включая:

  • Идентификацию и атрибуты других узлов в кластере
  • Параметры всего кластера
  • Метаданные индексов, включая схему и параметры каждого индекса
  • Положение и состояние каждой копии фрагмента в кластере

Избранный мастер-узел гарантирует, что каждый узел в кластере имеет копию одного и того же состояния кластера. API состояния кластера позволяет получить представление об этом внутреннем состоянии для отладки или диагностики. Возможно, вам потребуется обратиться к исходному коду Elasticsearch, чтобы определить точный смысл ответа.

По умолчанию API состояния кластера будет перенаправлять запросы на избранный мастер-узел, так как этот узел является авторитетным источником состояния кластера. Вы также можете получить состояние кластера, хранящееся на узле, обрабатывающем запрос API, добавив параметр запроса ?local=true.

Elasticsearch может потребовать значительных усилий для вычисления ответа на этот API в больших кластерах, и ответ может содержать очень большое количество данных. Если вы используете этот API многократно, ваш кластер может стать нестабильным.

Ответ представляет собой представление внутренней структуры данных. Его формат не подлежит тем же гарантиям совместимости, что и другие более стабильные API, и может изменяться от версии к версии. Не используйте этот API для внешнего мониторинга. Вместо этого получайте необходимую информацию с помощью других более стабильных API кластера.

Параметры пути

Состояние кластера может быть очень большим, и Elasticsearch может потреблять значительные ресурсы при вычислении ответа на этот API. Чтобы уменьшить размер ответа, вы можете запросить только интересующую вас часть состояния кластера:

<metrics>

(Необязательно, строка) Запятая-разделенный список следующих параметров:

_all
Показываются все метрики.
blocks
Показывается blocks часть ответа.
master_node
Показывается master_node часть ответа.
metadata
Показывается metadata часть ответа. Если вы предоставите запятой-разделенный список индексов, возвращаемый вывод будет содержать только метаданные для этих индексов.
nodes
Показывается nodes часть ответа.
routing_nodes
Показывается routing_nodes часть ответа.
routing_table
Показывается routing_table часть ответа. Если вы предоставите запятой-разделенный список индексов, возвращаемый вывод будет содержать только таблицу маршрутизации для этих индексов.
version
Показывается версия состояния кластера.
<target>
(Необязательно, строка) Запятая-разделенный список потоков данных, индексов и алиасов, используемых для ограничения запроса. Поддерживаются подстановочные знаки (*). Для обработки всех потоков данных и индексов опустите этот параметр или используйте * или _all.

Параметры запроса

allow_no_indices

(Необязательно, логическое значение) Если true, выражение подстановки индексов, которое не приводит к конкретным индексам, будет проигнорировано. (Включая _all строку или когда индексы не указаны).

По умолчанию true.

expand_wildcards
(Необязательно, строка) Определяет, к каким конкретным открытым, закрытым или обоим индексам следует расширить выражение с подстановкой. Доступные параметры: open, closed, none, all.
flat_settings
(Необязательно, логическое значение) Если true, возвращает параметры в плоском формате. По умолчанию false.
ignore_unavailable
(Необязательно, логическое значение) Если true, недоступные индексы (отсутствующие или закрытые) будут проигнорированы.
local
(Необязательно, логическое значение) Если true, запрос получает информацию только от локального узла. По умолчанию false, что означает, что информация извлекается с мастер-узла.
master_timeout
(Необязательно, единицы измерения времени) Время ожидания мастер-узла. Если мастер-узел недоступен до истечения срока ожидания, запрос завершается ошибкой и возвращает ошибку. По умолчанию 30s. Также можно установить значение -1, чтобы указать, что запрос никогда не должен истекать.
wait_for_metadata_version
(Необязательно, целое число) Ожидает, что версия метаданных будет равна или больше указанной версии метаданных.
wait_for_timeout
(Необязательно, единицы измерения времени) Указывает максимальное время ожидания wait_for_metadata_version перед истечением времени ожидания.

Примеры

Следующий пример возвращает только metadata и routing_table данные для потоков данных или индексов foo и bar:

resp = client.cluster.state(
    metric="metadata,routing_table",
    index="foo,bar",
)
print(resp)
response = client.cluster.state(
  metric: 'metadata,routing_table',
  index: 'foo,bar'
)
puts response
const response = await client.cluster.state({
  metric: "metadata,routing_table",
  index: "foo,bar",
});
console.log(response);
GET /_cluster/state/metadata,routing_table/foo,bar

Следующий пример возвращает все доступные метаданные для foo и bar:

resp = client.cluster.state(
    metric="_all",
    index="foo,bar",
)
print(resp)
response = client.cluster.state(
  metric: '_all',
  index: 'foo,bar'
)
puts response
const response = await client.cluster.state({
  metric: "_all",
  index: "foo,bar",
});
console.log(response);
GET /_cluster/state/_all/foo,bar

Этот пример возвращает только метаданные blocks:

resp = client.cluster.state(
    metric="blocks",
)
print(resp)
response = client.cluster.state(
  metric: 'blocks'
)
puts response
const response = await client.cluster.state({
  metric: "blocks",
});
console.log(response);
GET /_cluster/state/blocks

© 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/cluster-state.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API