A multitenant, horizontally scalable Prometheus as a Service
agrahamlincoln and csmarchbanks update golint path (#1073)
See: golang/lint#415

Signed-off-by: Graham Rounds <graham@platform9.com>
Latest commit 90bea5c Oct 16, 2018
Failed to load latest commit information.
.circleci Switch imports (#1038) Oct 2, 2018
build-image update golint path (#1073) Oct 16, 2018
cmd Bounded parallelism for DoParallelQueries (#1053) Oct 5, 2018
docs Add some documentation about the new query frontend features. Sep 28, 2018
imgs Note Cortex is a CNCF project; make commercial references more balanc… Sep 20, 2018
k8s Switch imports (#1038) Oct 2, 2018
pkg Merge pull request #1065 from grafana/avoid_cache_fresh_queries Oct 10, 2018
tools Switch imports (#1038) Oct 2, 2018
vendor Label opentracing op-names using routes declared Oct 3, 2018
.gitignore Switch imports (#1038) Oct 2, 2018
.lintignore Add .lintignore to speed up lint Mar 20, 2017
COPYING.LGPL-3 license: document vendored code which is under LGPL3 and MPL-2.0 Aug 16, 2018
GOVERNANCE.md Create GOVERNANCE.md and MAINTAINERS (#823) Jun 5, 2018
Gopkg.lock Label opentracing op-names using routes declared Oct 3, 2018
Gopkg.toml Remove constaint on weaveworks/common. Sep 29, 2018
LICENSE Bump license copyright year to 2017 (#571) Oct 6, 2017
MAINTAINERS Add Goutham to the MAINTAINERS file. Sep 6, 2018
Makefile Switch imports (#1038) Oct 2, 2018
README.md Add a note about signing off in the README (#1022) Sep 21, 2018
VENDORED_CODE.md license: document vendored code which is under LGPL3 and MPL-2.0 Aug 16, 2018
code-of-conduct.md Add a Code of Conduct referencing the CNCF Code of Conduct (#1016) Sep 21, 2018
push-images Remove parallelism from push-images. Sep 25, 2018


Cortex Logo

Open source, horizontally scalable, multi-tenant Prometheus as a service

Circle CI GoDoc

Cortex is a CNCF sandbox project used in several production systems including Weave Cloud, GrafanaCloud and FreshTracks.io.

Cortex provides horizontally scalable, multi-tenant, long term storage for Prometheus metrics when used as a remote write destination, and a horizontally scalable, Prometheus-compatible query API.

Multi-tenant means it handles metrics from multiple independent Prometheus sources, keeping them separate.

Instrumenting Your App: Best Practises

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.


To use Cortex as part of Grafana Cloud, sign up for GrafanaCloud 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.

For Developers

To build:


(By default the build runs in a Docker container, using an image built with all the tools required. The source code is mounted from where you run make into the build container as a Docker volume.)

To run the test suite:

make test

To checkout Cortex in minikube:

kubectl create -f ./k8s

(these manifests use latest tags, i.e. this will work if you have just built the images and they are available on the node(s) in your Kubernetes cluster)

Cortex will sit behind an nginx instance exposed on port 30080. A job is deployed to scrape it itself. Try it:

Sign your work

Before submitting your work in a pull request, make sure all commits are signed off. See DCO for more information.


We use dep to vendor dependencies. To fetch a new dependency, run:

dep ensure

To update dependencies, run

dep ensure --update

Further reading

To learn more about Cortex, consult the following documents / talks:

Getting Help

If you have any questions regarding Cortex:

Your feedback is always welcome.