Analyze the index disk usage Technical preview; Added in 7.15.0

POST /{index}/_disk_usage

Analyze the disk usage of each field of an index or data stream. This API might not support indices created in previous Elasticsearch versions. The result of a small index can be inaccurate as some parts of an index might not be analyzed by the API.

NOTE: The total size of fields of the analyzed shards of the index in the response is usually smaller than the index store_size value because some small metadata files are ignored and some parts of data files might not be scanned by the API. Since stored fields are stored together in a compressed format, the sizes of stored fields are also estimates and can be inaccurate. The stored size of the _id field is likely underestimated while the _source field is overestimated.

For usage examples see the External documentation or refer to Analyze the index disk usage example for an example.

About analyzing index disk usage

Path parameters

  • index string | array[string] Required

    Comma-separated list of data streams, indices, and aliases used to limit the request. It’s recommended to execute this API with a single index (or the latest backing index of a data stream) as the API consumes resources significantly.

Query parameters

  • allow_no_indices boolean

    A setting that does two separate checks on the index expression. If false, the request returns an error (1) if any wildcard expression (including _all and *) resolves to zero matching indices or (2) if the complete set of resolved indices, aliases or data streams is empty after all expressions are evaluated. If true, index expressions that resolve to no indices are allowed and the request returns an empty result.

  • expand_wildcards string | array[string]

    Type of index that wildcard patterns can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. Supports comma-separated values, such as open,hidden.

    Values are all, open, closed, hidden, or none.

  • flush boolean

    If true, the API performs a flush before analysis. If false, the response may not include uncommitted data.

  • ignore_unavailable boolean

    If false, the request returns an error if it targets a concrete (non-wildcarded) index, alias, or data stream that is missing, closed, or otherwise unavailable. If true, unavailable concrete targets are silently ignored.

  • run_expensive_tasks boolean

    Analyzing field disk usage is resource-intensive. To use the API, this parameter must be set to true.

Responses

  • 200 application/json
POST /{index}/_disk_usage
curl \
 --request POST 'http://api.example.com/{index}/_disk_usage'
Response examples (200)
An abbreviated response from `POST /my-index-000001/_disk_usage?run_expensive_tasks=true`.
{
  "_shards": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "my-index-000001": {
    "store_size": "929mb",
    "store_size_in_bytes": 974192723,
    "all_fields": {
      "total": "928.9mb",
      "total_in_bytes": 973977084,
      "inverted_index": {
        "total": "107.8mb",
        "total_in_bytes": 113128526
      },
      "stored_fields": "623.5mb",
      "stored_fields_in_bytes": 653819143,
      "doc_values": "125.7mb",
      "doc_values_in_bytes": 131885142,
      "points": "59.9mb",
      "points_in_bytes": 62885773,
      "norms": "2.3kb",
      "norms_in_bytes": 2356,
      "term_vectors": "2.2kb",
      "term_vectors_in_bytes": 2310,
      "knn_vectors": "0b",
      "knn_vectors_in_bytes": 0
    },
    "fields": {
      "_id": {
        "total": "49.3mb",
        "total_in_bytes": 51709993,
        "inverted_index": {
          "total": "29.7mb",
          "total_in_bytes": 31172745
        },
        "stored_fields": "19.5mb",
        "stored_fields_in_bytes": 20537248,
        "doc_values": "0b",
        "doc_values_in_bytes": 0,
        "points": "0b",
        "points_in_bytes": 0,
        "norms": "0b",
        "norms_in_bytes": 0,
        "term_vectors": "0b",
        "term_vectors_in_bytes": 0,
        "knn_vectors": "0b",
        "knn_vectors_in_bytes": 0
      },
      "_primary_term": {},
      "_seq_no": {},
      "_version": {},
      "_source": {
        "total": "603.9mb",
        "total_in_bytes": 633281895,
        "inverted_index": {},
        "stored_fields": "603.9mb",
        "stored_fields_in_bytes": 633281895,
        "doc_values": "0b",
        "doc_values_in_bytes": 0,
        "points": "0b",
        "points_in_bytes": 0,
        "norms": "0b",
        "norms_in_bytes": 0,
        "term_vectors": "0b",
        "term_vectors_in_bytes": 0,
        "knn_vectors": "0b",
        "knn_vectors_in_bytes": 0
      },
      "context": {
        "total": "28.6mb",
        "total_in_bytes": 30060405,
        "inverted_index": {
          "total": "22mb",
          "total_in_bytes": 23090908
        },
        "stored_fields": "0b",
        "stored_fields_in_bytes": 0,
        "doc_values": "0b",
        "doc_values_in_bytes": 0,
        "points": "0b",
        "points_in_bytes": 0,
        "norms": "2.3kb",
        "norms_in_bytes": 2356,
        "term_vectors": "2.2kb",
        "term_vectors_in_bytes": 2310,
        "knn_vectors": "0b",
        "knn_vectors_in_bytes": 0
      },
      "context.keyword": {},
      "message": {},
      "message.keyword": {}
    }
  }
}