Skip to content

Commit e511415

Browse files
authored
Deprecated Cortex chunks storage (#4268)
Deprecate Cortex chunks storage Remove k8s example config which is chunks-based Signed-off-by: Marco Pracucci <[email protected]>
1 parent eef2c03 commit e511415

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+38
-927
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## master / unreleased
44

5+
* [CHANGE] Cortex chunks storage has been deprecated and it's now in maintenance mode: all Cortex users are encouraged to migrate to the blocks storage. No new features will be added to the chunks storage. The default Cortex configuration still runs the chunks engine; please check out the [blocks storage doc](https://cortexmetrics.io/docs/blocks-storage/) on how to configure Cortex to run with the blocks storage. #4268
6+
* [CHANGE] The example Kubernetes manifests (stored at `k8s/`) have been removed due to a lack of proper support and maintenance. #4268
57
* [CHANGE] Querier / ruler: deprecated `-store.query-chunk-limit` CLI flag (and its respective YAML config option `max_chunks_per_query`) in favour of `-querier.max-fetched-chunks-per-query` (and its respective YAML config option `max_fetched_chunks_per_query`). The new limit specifies the maximum number of chunks that can be fetched in a single query from ingesters and long-term storage: the total number of actual fetched chunks could be 2x the limit, being independently applied when querying ingesters and long-term storage. #4125
68
* [CHANGE] Alertmanager: allowed to configure the experimental receivers firewall on a per-tenant basis. The following CLI flags (and their respective YAML config options) have been changed and moved to the limits config section: #4143
79
- `-alertmanager.receivers-firewall.block.cidr-networks` renamed to `-alertmanager.receivers-firewall-block-cidr-networks`

Makefile

-4
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,6 @@ lint:
213213
./pkg/querier/... \
214214
./pkg/ruler/...
215215

216-
# Validate Kubernetes spec files. Requires:
217-
# https://kubeval.instrumenta.dev
218-
kubeval ./k8s/*
219-
220216
test:
221217
go test -tags netgo -timeout 30m -race -count 1 ./...
222218

README.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Cortex provides horizontally scalable, highly available, multi-tenant, long term
1414
- **Highly available:** When run in a cluster, Cortex can replicate data between machines. This allows you to survive machine failure without gaps in your graphs.
1515
- **Multi-tenant:** Cortex can isolate data and queries from multiple different independent
1616
Prometheus sources in a single cluster, allowing untrusted parties to share the same cluster.
17-
- **Long term storage:** Cortex supports Amazon DynamoDB, Google Bigtable, Cassandra, S3, GCS and Microsoft Azure for long term storage of metric data. This allows you to durably store data for longer than the lifetime of any single machine, and use this data for long term capacity planning.
17+
- **Long term storage:** Cortex supports S3, GCS, Swift and Microsoft Azure for long term storage of metric data. This allows you to durably store data for longer than the lifetime of any single machine, and use this data for long term capacity planning.
1818

1919
Cortex is a [CNCF](https://cncf.io) incubation project used in several production systems including [Weave Cloud](https://cloud.weave.works) and [Grafana Cloud](https://grafana.com/cloud).
2020
Cortex is primarily used as a [remote write](https://prometheus.io/docs/operating/configuration/#remote_write) destination for Prometheus, with a Prometheus-compatible query API.
@@ -25,9 +25,8 @@ Read the [getting started guide](https://cortexmetrics.io/docs/getting-started)
2525
project. Before deploying Cortex with a permanent storage backend you
2626
should read:
2727
1. [An overview of Cortex's architecture](https://cortexmetrics.io/docs/architecture/)
28-
1. [A guide to running Cortex](https://cortexmetrics.io/docs/chunks-storage/running-chunks-storage-in-production/)
29-
1. [Information regarding configuring Cortex](https://cortexmetrics.io/docs/configuration/arguments/)
30-
1. [Steps to run Cortex with Cassandra](https://cortexmetrics.io/docs/chunks-storage/running-chunks-storage-with-cassandra/)
28+
1. [Getting started with Cortex](https://cortexmetrics.io/docs/getting-started/)
29+
1. [Information regarding configuring Cortex](https://cortexmetrics.io/docs/configuration/)
3130

3231
For a guide to contributing to Cortex, see the [contributor guidelines](https://cortexmetrics.io/docs/contributing/).
3332

build-image/Dockerfile

-5
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,6 @@ RUN GO111MODULE=on go get \
4040
github.com/campoy/[email protected] \
4141
&& rm -rf /go/pkg /go/src /root/.cache
4242

43-
# Cannot get it to run together in above go get.
44-
RUN GO111MODULE=on go get \
45-
github.com/instrumenta/[email protected] \
46-
&& rm -rf /go/pkg /go/src /root/.cache
47-
4843
ENV NODE_PATH=/usr/lib/node_modules
4944
COPY build.sh /
5045
ENV GOCACHE=/go/cache

docs/_index.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Cortex provides horizontally scalable, highly available, multi-tenant, long term
2121
- **Highly available:** When run in a cluster, Cortex can replicate data between machines. This allows you to survive machine failure without gaps in your graphs.
2222
- **Multi-tenant:** Cortex can isolate data and queries from multiple different independent
2323
Prometheus sources in a single cluster, allowing untrusted parties to share the same cluster.
24-
- **Long term storage:** Cortex supports Amazon DynamoDB, Google Bigtable, Cassandra, S3 and GCS for long term storage of metric data. This allows you to durably store data for longer than the lifetime of any single machine, and use this data for long term capacity planning.
24+
- **Long term storage:** Cortex supports S3, GCS, Swift and Microsoft Azure for long term storage of metric data. This allows you to durably store data for longer than the lifetime of any single machine, and use this data for long term capacity planning.
2525

2626
Cortex is a [CNCF](https://cncf.io) incubation project used in several production systems including [Weave Cloud](https://cloud.weave.works) and [Grafana Cloud](https://grafana.com/cloud).
2727
Cortex is primarily used as a [remote write](https://prometheus.io/docs/operating/configuration/#remote_write) destination for Prometheus, exposing a Prometheus-compatible query API.
@@ -33,7 +33,7 @@ project. Before deploying Cortex with a permanent storage backend you
3333
should read:
3434

3535
1. [An overview of Cortex's architecture](architecture.md)
36-
1. [A guide to running Cortex chunks storage](chunks-storage/running-chunks-storage-in-production.md)
36+
1. [Getting started with Cortex](getting-started/_index.md)
3737
1. [Information regarding configuring Cortex](configuration/_index.md)
3838

3939
For a guide to contributing to Cortex, see the [contributor guidelines](contributing/).

docs/architecture.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ Incoming samples (writes from Prometheus) are handled by the [distributor](#dist
2121

2222
Cortex currently supports two storage engines to store and query the time series:
2323

24-
- Chunks (default)
24+
- Chunks (deprecated)
2525
- Blocks
2626

2727
The two engines mostly share the same Cortex architecture with few differences outlined in the rest of the document.
2828

29-
### Chunks storage (default)
29+
### Chunks storage (deprecated)
3030

3131
The chunks storage stores each single time series into a separate object called _Chunk_. Each Chunk contains the samples for a given period (defaults to 12 hours). Chunks are then indexed by time range and labels, in order to provide a fast lookup across many (over millions) Chunks.
3232

docs/chunks-storage/_index.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
---
2-
title: "Chunks Storage"
3-
linkTitle: "Chunks Storage"
2+
title: "Chunks Storage (deprecated)"
3+
linkTitle: "Chunks Storage (deprecated)"
44
weight: 4
55
menu:
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
The chunks storage is a Cortex storage engine which stores each single time series into a separate object called _chunk_. Each chunk contains the samples for a given period (defaults to 12 hours). Chunks are then indexed by time range and labels, in order to provide a fast lookup across many (over millions) chunks. For this reason, the Cortex chunks storage requires two backend storages: a key-value store for the index and an object store for the chunks.
911

1012
The supported backends for the **index store** are:

docs/chunks-storage/aws-tips.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ weight: 10
55
slug: aws-tips
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
This page shares some tips and things to take in consideration when running Cortex chunks storage on AWS.
911

1012
## AWS Credentials

docs/chunks-storage/caching.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ weight: 4
55
slug: caching
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
Correctly configured caching is important for a production-ready Cortex cluster.
911
Cortex has many opportunities for using caching to accelerate queries and reduce cost. Cortex can use a cache for:
1012

docs/chunks-storage/chunks-storage-getting-started.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ weight: 1
55
slug: getting-started-chunks-storage
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
Cortex can be run as a single binary or as multiple independent microservices.
911
The single-binary mode is easier to deploy and is aimed mainly at users wanting to try out Cortex or develop on it.
1012
The microservices mode is intended for production usage, as it allows you to independently scale different services and isolate failures.

docs/chunks-storage/ingesters-with-wal.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ weight: 5
55
slug: ingesters-with-wal
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
By default, ingesters running with the chunks storage, store all their data in memory. If there is a crash, there could be loss of data. The Write-Ahead Log (WAL) helps fill this gap in reliability.
911

1012
To use WAL, there are some changes that needs to be made in the deployment.

docs/chunks-storage/running-chunks-storage-in-production.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ weight: 1
55
slug: running-chunks-storage-in-production
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
This document builds on the [getting started guide](../getting-started/_index.md) and specifies the steps needed to get Cortex [**chunks storage**](../chunks-storage/_index.md) into production.
911
Ensure you have completed all the steps in the [getting started guide](../getting-started/_index.md) and read about [the Cortex architecture](../architecture.md) before you start this one.
1012

docs/chunks-storage/running-chunks-storage-with-cassandra.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ weight: 2
55
slug: running-chunks-storage-with-cassandra
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
This guide covers how to run a single local Cortex instance - with the [**chunks storage**](../chunks-storage/_index.md) engine - storing time series chunks and index in Cassandra.
911

1012
In this guide we're going to:

docs/chunks-storage/schema-config.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ weight: 2
55
slug: schema-configuration
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
Cortex chunks storage stores indexes and chunks in table-based data storages. When such a storage type is used, multiple tables are created over the time: each table - also called periodic table - contains the data for a specific time range. The table-based storage layout is configured through a configuration file called **schema config**.
911

1012
_The schema config is used only by the chunks storage, while it's **not** used by the [blocks storage](../blocks-storage/_index.md) engine._

docs/chunks-storage/table-manager.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ weight: 3
55
slug: table-manager
66
---
77

8+
**Warning: the chunks storage is deprecated. You're encouraged to use the [blocks storage](../blocks-storage/_index.md).**
9+
810
The table-manager is the Cortex service responsible for creating the [periodic tables](./schema-config.md) used to store index and chunks, and deleting them once their data time range exceeds the retention period (if retention is enabled).
911

1012
_For more information about the schema config and periodic tables, please refer to the [Schema config](./schema-config.md) documentation._

docs/configuration/arguments.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Duration arguments should be specified with a unit like `5s` or `3h`. Valid time
2020

2121
- `-querier.query-parallelism`
2222

23-
This refers to database queries against the store (e.g. Bigtable or DynamoDB). This is the max subqueries run in parallel per higher-level query.
23+
This refers to database queries against the store when running the deprecated Cortex chunks storage (e.g. Bigtable or DynamoDB). This is the max subqueries run in parallel per higher-level query.
2424

2525
- `-querier.timeout`
2626

docs/guides/deleting-series.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ weight: 10
55
slug: deleting-series
66
---
77

8-
_This feature is currently experimental and is only supported for Chunks storage._
8+
_This feature is currently experimental and is only supported for Chunks storage (deprecated)._
99

1010
Cortex supports deletion of series using [Prometheus compatible API](https://prometheus.io/docs/prometheus/latest/querying/api/#delete-series).
1111
It however does not support [Prometheuses Clean Tombstones](https://prometheus.io/docs/prometheus/latest/querying/api/#clean-tombstones) API because Cortex uses a different mechanism to manage deletions.

docs/guides/encryption-at-rest.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ sse:
3838
[kms_encryption_context: <string> | default = ""]
3939
```
4040
41-
### Chunks storage
41+
### Chunks storage (deprecated)
4242
4343
The [chunks storage](../chunks-storage/_index.md) S3 server-side encryption can be configured similarly to the blocks storage, but **per-tenant overrides are not supported**.
4444

docs/guides/encryption-at-rest.template

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ The [blocks storage](../blocks-storage/_index.md) S3 server-side encryption can
2020

2121
{{ .S3SSEConfigBlock }}
2222

23-
### Chunks storage
23+
### Chunks storage (deprecated)
2424

2525
The [chunks storage](../chunks-storage/_index.md) S3 server-side encryption can be configured similarly to the blocks storage, but **per-tenant overrides are not supported**.
2626

docs/guides/glossary.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ The blocks storage is a Cortex storage engine based on Prometheus TSDB, which on
1111

1212
For more information, please refer to the [Cortex blocks storage](../blocks-storage/_index.md) documentation.
1313

14-
### Chunks storage
14+
### Chunks storage (deprecated)
1515

1616
The chunks storage is a Cortex storage engine which requires both an index store (eg. AWS DynamoDB, Google BigTable, Cassandra, ...) and an object store (eg. AWS S3, Google GCS, ...) as backend storage.
1717

18+
The chunks storage is deprecated. You're encouraged to use the [blocks storage](#blocks-storage) instead.
19+
1820
### Chunk
1921

2022
A chunk is an object containing compressed timestamp-value pairs.

docs/guides/grpc-storage-plugin.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ weight: 10
55
slug: grpc-based-plugin
66
---
77

8-
_This feature is currently experimental and is only supported for Chunks storage._
8+
_This feature is currently experimental and is only supported for Chunks storage (deprecated)._
99

1010
Cortex chunks storage supports a **gRPC-based plugin system** to use alternative backends for the index and chunks store.
1111
A store plugin is a gRPC-based server which implements the methods required by the index and chunks store. Cortex chunks storage schema is then configured to use the plugin as backend system and gRPC will be used to communicate between Cortex and the plugin.

docs/guides/ingesters-rolling-updates.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The new ingester, which is expected to reuse the same disk of the leaving one, w
2626

2727
_The blocks storage doesn't support the series [hand-over](#chunks-storage-with-wal-disabled-hand-over)._
2828

29-
## Chunks storage
29+
## Chunks storage (deprecated)
3030

3131
The Cortex chunks storage optionally supports a write-ahead log (WAL).
3232
The rolling update procedure for a Cortex cluster running the chunks storage depends whether the WAL is enabled or not.

k8s/alertmanager-dep.yaml

-27
This file was deleted.

k8s/alertmanager-svc.yaml

-10
This file was deleted.

k8s/configs-db-dep.yaml

-29
This file was deleted.

k8s/configs-db-svc.yaml

-11
This file was deleted.

k8s/configs-dep.yaml

-26
This file was deleted.

k8s/configs-svc.yaml

-10
This file was deleted.

k8s/consul-dep.yaml

-37
This file was deleted.

0 commit comments

Comments
 (0)