How to estimate the size of a snapshot for a single index or indices in Elasticsearch?

Hi everyone,

I'm currently working with Elasticsearch snapshots and I need some clarification on how to estimate the size of a snapshot, especially for a specific index.

For example:

  • Let's say I have an index called logs-2025.04.08.
  • I take a snapshot using the _snapshot/my_repo/snap-20250408 API.
  • I would like to calculate or estimate the storage size that this snapshot will consume in the snapshot repository (e.g., on S3 or a shared filesystem).

I have some questions:

  1. Is there a way to get the exact or approximate size of the snapshot for this specific index?
  2. Does Elasticsearch expose this information via any API?
  3. Are there any tools or best practices to monitor snapshot sizes over time?

Some additional context:

  • Elasticsearch version: 8.6.1, 8.8
  • Repository type: S3 or FS

Welcome!

Wild guess: it's more or less an equivalent size of what the index size on disk is the day you run your first backup.
Then, the next backup is harder to know as it's like a delta from the previous backup. But not a delta in number of documents but more on the new files on disk.
At most it will be the index size again but most likely will be much lower than that.

3 Likes

Thanks a lot for your answer, I really appreciate it.

Have a nice day, @dadoonet