Cortex: horizontally scalable, highly available, multi-tenant, long term storage for Prometheus.
Cortex provides horizontally scalable, highly available, multi-tenant, long term storage for
Prometheus.
- Horizontally scalable: Cortex can run across multiple machines in a cluster, exceeding the throughput and storage of a single machine. This enables you to send the metrics from multiple Prometheus servers to a single Cortex cluster and run "globally aggregated" queries across all data in a single place.
- 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.
- Multi-tenant: Cortex can isolate data and queries from multiple different independent
Prometheus sources in a single cluster, allowing untrusted parties to share the same cluster.
- 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.
Cortex is a CNCF sandbox project used in several production systems including Weave Cloud and Grafana Cloud.
Cortex is a primarily used as a remote write destination for Prometheus, with a Prometheus-compatible query API.
Documentation
Read the getting started guide if you're new to the
project. Before deploying Cortex with a permanent storage backend you
should read:
- An overview of Cortex's architecture
- A general guide to running Cortex
- Information regarding configuring Cortex
For a guide to contributing to Cortex, see the contributor guidelines.
Further reading
To learn more about Cortex, consult the following documents & talks:
- May 2019 KubeCon talks; "Cortex: Intro" (video, slides, blog post) and "Cortex: Deep Dive" (video, slides)
- Feb 2019 blog post & podcast; "Prometheus Scalability with Bryan Boreham" (podcast)
- Feb 2019 blog post; "How Aspen Mesh Runs Cortex in Production"
- Dec 2018 KubeCon talk; "Cortex: Infinitely Scalable Prometheus" (video, slides)
- Dec 2018 CNCF blog post; "Cortex: a multi-tenant, horizontally scalable Prometheus-as-a-Service"
- Nov 2018 CloudNative London meetup talk; "Cortex: Horizontally Scalable, Highly Available Prometheus" (slides)
- Nov 2018 CNCF TOC Presentation; "Horizontally Scalable, Multi-tenant Prometheus" (slides)
- Sept 2018 blog post; "What is Cortex?"
- Aug 2018 PromCon panel; "Prometheus Long-Term Storage Approaches" (video)
- Jul 2018 design doc; "Cortex Query Optimisations"
- Aug 2017 PromCon talk; "Cortex: Prometheus as a Service, One Year On" (videos, slides, write up part 1, part 2, part 3)
- Jun 2017 Prometheus London meetup talk; "Cortex: open-source, horizontally-scalable, distributed Prometheus" (video)
- Dec 2016 KubeCon talk; "Weave Cortex: Multi-tenant, horizontally scalable Prometheus as a Service" (video, slides)
- Aug 2016 PromCon talk; "Project Frankenstein: Multitenant, Scale-Out Prometheus": (video, slides)
- Jun 2016 design document; "Project Frankenstein: A Multi Tenant, Scale Out Prometheus"
Getting Help
If you have any questions about Cortex:
Your feedback is always welcome.
Hosted Cortex (Prometheus as a service)
There are several commercial services where you can use Cortex
on-demand:
Weave Cloud
Weave Cloud from
Weaveworks lets you deploy, manage, and monitor
container-based applications. Sign up at https://cloud.weave.works
and follow the instructions there. Additional help can also be found
in the Weave Cloud documentation.
Instrumenting Your App: Best Practices
Grafana Cloud
To use Cortex as part of Grafana Cloud, sign up for Grafana Cloud
by clicking "Log In" in the top right and then "Sign Up Now". Cortex is included
as part of the Starter and Basic Hosted Grafana plans.