From ef08df0e6f6021fb83fe335355d19bf097966efe Mon Sep 17 00:00:00 2001 From: Julius Volz Date: Tue, 7 Nov 2017 22:00:38 +0100 Subject: [PATCH] Add 2.0 storage docs (#3423) * Add 2.0 storage docs * Review fixups * More review fixups --- docs/images/remote_integrations.png | Bin 0 -> 14508 bytes docs/storage.md | 88 ++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 docs/images/remote_integrations.png create mode 100644 docs/storage.md diff --git a/docs/images/remote_integrations.png b/docs/images/remote_integrations.png new file mode 100644 index 0000000000000000000000000000000000000000..ae263d136d81b17c0512dae941232911bd0d290e GIT binary patch literal 14508 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 XZw;$JFD|AE5qPYo`>0aII_&=daWI3Z literal 0 HcmV?d00001 diff --git a/docs/storage.md b/docs/storage.md new file mode 100644 index 000000000..ea3e97d78 --- /dev/null +++ b/docs/storage.md @@ -0,0 +1,88 @@ +--- +title: Storage +sort_rank: 5 +--- + +# Storage + +Prometheus includes a local on-disk time series database, but also optionally integrates with remote storage systems. + +## Local storage + +Prometheus's local time series database stores time series data in a custom format on disk. + +### On-disk layout + +Ingested samples are grouped into blocks of two hours. Each two-hour block consists of a directory containing one or more chunk files that contain all time series samples for that window of time, as well as a metadata file and index file (which indexes metric names and labels to series in the chunk files). The block for currently incoming samples is kept in memory and not fully persisted yet. It is secured against crashes by a write-ahead-log (WAL) that can be replayed when the Prometheus server restarts after a crash. When series are deleted via the API, deletion records are stored in separate tombstone files (instead of deleting the data immediately from the chunk files). + +The directory structure of a Prometheus server's data directory will look something like this: + +``` +./data/01BKGV7JBM69T2G1BGBGM6KB12 +./data/01BKGV7JBM69T2G1BGBGM6KB12/meta.json +./data/01BKGV7JBM69T2G1BGBGM6KB12/wal +./data/01BKGV7JBM69T2G1BGBGM6KB12/wal/000002 +./data/01BKGV7JBM69T2G1BGBGM6KB12/wal/000001 +./data/01BKGTZQ1SYQJTR4PB43C8PD98 +./data/01BKGTZQ1SYQJTR4PB43C8PD98/meta.json +./data/01BKGTZQ1SYQJTR4PB43C8PD98/index +./data/01BKGTZQ1SYQJTR4PB43C8PD98/chunks +./data/01BKGTZQ1SYQJTR4PB43C8PD98/chunks/000001 +./data/01BKGTZQ1SYQJTR4PB43C8PD98/tombstones +./data/01BKGTZQ1HHWHV8FBJXW1Y3W0K +./data/01BKGTZQ1HHWHV8FBJXW1Y3W0K/meta.json +./data/01BKGTZQ1HHWHV8FBJXW1Y3W0K/wal +./data/01BKGTZQ1HHWHV8FBJXW1Y3W0K/wal/000001 +./data/01BKGV7JC0RY8A6MACW02A2PJD +./data/01BKGV7JC0RY8A6MACW02A2PJD/meta.json +./data/01BKGV7JC0RY8A6MACW02A2PJD/index +./data/01BKGV7JC0RY8A6MACW02A2PJD/chunks +./data/01BKGV7JC0RY8A6MACW02A2PJD/chunks/000001 +./data/01BKGV7JC0RY8A6MACW02A2PJD/tombstones +``` + +The initial two-hour blocks are eventually compacted into longer blocks in the background. + +Note that a limitation of the local storage is that it is not clustered or replicated. Thus, it is not arbitrarily scalable or durable in the face of disk or node outages and should thus be treated as more of an ephemeral sliding window of recent data. However, if your durability requirements are not strict, you may still succeed in storing up to years of data in the local storage. + +## Operational aspects + +Prometheus has several flags that allow configuring the local storage. The most important ones are: + +* `--storage.tsdb.path`: This determines where Prometheus writes its database. Defaults to `data/`. +* `--storage.tsdb.retention`: This determines when to remove old data. Defaults to `15d`. + +On average, Prometheus uses only around 1-2 bytes per sample. Thus, to plan the capacity of a Prometheus server, you can use the rough formula: + +``` +needed_disk_space = retention_time_seconds * ingested_samples_per_second * bytes_per_sample +``` + +To tune the rate of ingested samples per second, you can either reduce the number of time series you scrape (fewer targets or fewer series per target), or you can increase the scrape interval. However, reducing the number of series is likely more effective, due to compression of samples within a series. + +If your local storage becomes corrupted for whatever reason, your best bet is to shut down Prometheus and remove the entire storage directory. However, you can also try removing individual block directories to resolve the problem. This means losing a time window of around two hours worth of data per block directory. Again, Prometheus's local storage is not meant as durable long-term storage. + +## Remote storage integrations + +As outlined above, Prometheus's local storage is limited in its scalability and durability. Instead of trying to solve long-term storage in Prometheus itself, Prometheus has a set of interfaces that allow integrating with remote long-term storage systems. + +### Overview + +Prometheus integrates with remote storage systems in two ways: + +* Prometheus can write samples that it ingests to a remote URL in a standardized format. +* Prometheus can read (back) sample data from a remote URL in a standardized format. + +![Remote read and write architecture](images/remote_integrations.png) + +The read and write protocols both use a snappy-compressed protocol buffer encoding over HTTP. The protocols are still marked experimental and may change to use gRPC over HTTP/2 in the future, when all hops between Prometheus and the long-term storage can safely be assumed to support HTTP/2. + +For details on configuring remote storage integrations in Prometheus, see the [remote write](configuration/configuration.md#remote_write) and [remote read](configuration/configuration.md#remote_read) sections of the Prometheus configuration documentation. + +For details on the request and response messages, see the [remote storage protocol buffer definitions](https://github.com/prometheus/prometheus/blob/master/storage/remote/remote.proto). + +Note that on the read path, Prometheus only fetches raw series data for a set of label selectors and time ranges from the remote end. All PromQL evaluation on the raw data still happens in Prometheus itself. This means that remote read queries have some scalability limit, since all necessary data needs to be loaded into the querying Prometheus server first and then processed there. However, supporting fully distributed evaluation of PromQL was deemed infeasible for the time being. + +### Existing integrations + +To learn more about existing integrations with remote storage systems, see the [Integrations documentation](https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage).