【问题标题】:Find total amount of disk space used by a Elasticsearch cluster查找 Elasticsearch 集群使用的磁盘空间总量
【发布时间】:2020-12-26 09:51:27
【问题描述】:

我正在寻找一种方法来获取 弹性搜索集群。我发现了使用以下 REST API 端点获取此信息的建议:

GET /_cat/stats
GET /_nodes/stats

我想知道在旧版本的 Elasticsearch 中使用 Elasticsearch Java 高级 REST 客户端或传输客户端能否获得相同的信息?

【问题讨论】:

  • 没有从高级客户端获取节点统计信息的特定方法。你只需要直接从你的代码中调用/_nodes/stats
  • @SankarPrasanthGadhamsetti 我已经在我的回答中提供了这个信息,还添加了一个工作代码示例来实现这一点:)

标签: java elasticsearch resthighlevelclient


【解决方案1】:

是的,您是正确的,可以使用_nodes/stats API 获取磁盘统计信息,因为 REST 高级客户端不提供任何用于节点统计信息的直接 API,您可以看到它支持的所有 API here

但是您可以使用高级客户端中提供的低级休息客户端,下面是工作示例代码。

 private void getDiskStats(RestHighLevelClient restHighLevelClient) throws IOException {
        RestClient lowLevelClient = restHighLevelClient.getLowLevelClient();
        Request request = new Request(
                "GET",
                "/_nodes/stats");
        Response response = lowLevelClient.performRequest(request);
        if (response.getStatusLine().getStatusCode() == 200) {
            System.out.println("resp: \n"+ EntityUtils.toString(response.getEntity()));
        }
    }

您可以看到我正在控制台上打印上述 API 的 O/P,并验证它包含以下格式的磁盘使用状态:

"most_usage_estimate": {
"path": "/home/opster/runtime/elastic/elasticsearch-7.8.1/data/nodes/0",
"total_in_bytes": 124959473664,
"available_in_bytes": 6933352448,
"used_disk_percent": 94.45151916481107
},

【讨论】:

    猜你喜欢
    • 2012-12-30
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多