分片大小的 Elasticsearch GET API

Elasticsearch GET API for Shard Size

对于 Elasticsearch 2.3.3,有没有办法使用 GET API which returns JSON 获取分片大小?

目前我找到了以下获取分片大小的方法,但都存在问题:

  1. /_recovery -> 响应 JSON 并提供分片大小,但副本分片被报告为 "size_in_bytes" 为 0,这是不正确的。

  2. /_cat/shards -> 提供 correct/desired 信息但不是 JSON 并且大小以非统一单位报告为字符串(例如 3.2KB、4.9MB ETC。)。此端点更多用于视觉消费,而我想以编程方式使用来自 AJAX 调用的响应。

我在 Google / Elastic.com 上做了很多搜索,但没有找到任何东西,但如果没有,我会感到非常惊讶....

有什么想法吗?谢谢!!

Animesh 是对的,_stats API 是您想要的,但是要获取碎片级别统计信息,您必须指定 level parameter:

curl -XGET host:9200/my-index/_stats?level=shards

level 当前可以设置为以下任何一项:

  • 碎片
  • 索引(默认)
  • 节点

另一种获取分片大小的方法是通过请求:

curl -XGET localhost:9200/_cat/shards?v=true&format=JSON&bytes=b (mb, gb and etc.)

这是获取分片信息,特别是大小信息的更方便、更好的方法。

弹性文档:elastic doc