A multitenant, horizontally scalable Prometheus as a Service
Go JavaScript HTML CSS Makefile Protocol Buffer Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build Split up Cortex into multiple binaries and images Jan 23, 2017
chunk Split up Cortex into multiple binaries and images Jan 23, 2017
cmd Split up Cortex into multiple binaries and images Jan 23, 2017
distributor Split up Cortex into multiple binaries and images Jan 23, 2017
imgs Update README Nov 10, 2016
ingester Split up Cortex into multiple binaries and images Jan 23, 2017
querier Split up Cortex into multiple binaries and images Jan 23, 2017
ring Split up Cortex into multiple binaries and images Jan 23, 2017
ruler Split up Cortex into multiple binaries and images Jan 23, 2017
server Split up Cortex into multiple binaries and images Jan 23, 2017
tools Merge commit '19467dfdfcb52785f532e3d24e55090f499a422b' into tools Jan 21, 2017
ui Generate cortex.pb.go and ui/bindata.go Nov 18, 2016
user Use gRPC for Distributor <-> Ingester comms Nov 19, 2016
util Split up Cortex into multiple binaries and images Jan 23, 2017
vendor Don't use real time in tests. Jan 23, 2017
.gitignore Split up Cortex into multiple binaries and images Jan 23, 2017
LICENSE Remove per-file license header, add single LICENSE file Nov 4, 2016
Makefile Split up Cortex into multiple binaries and images Jan 23, 2017
README.md Review feedback Nov 16, 2016
circle.yml Split up Cortex into multiple binaries and images Jan 23, 2017
cortex.proto Implement MetricsForLabelMatchers Jan 11, 2017
push-images Split up Cortex into multiple binaries and images Jan 23, 2017

README.md

Weave Cortex Logo

Open source, horizontally scalable Prometheus as a service

Circle CI Slack Status

NB this is a pre-beta service. Availability is not 100%. APIs might change. Data could be lost.

Cortex is an API compatible Prometheus implementation, that natively supports multitenancy and horizontal scale-out clustering.

Cortex is a Weaveworks project that forms the monitoring backend of Weave Cloud. If you have any questions regarding our hosted Prometheus as a service, please contact help@weave.works.

Getting started with Weave Cloud & Kubernetes

Go to https://cloud.weave.works and sign up. Follow the steps to create a new instance.

Once you have created your instance, note down the 'Service Token' listed underneath 'Probes' in the box on the right of the screen. You will use this token to authenticate your local Prometheus with Weave Cloud.

Install the Cortex agent (an unmodified OSS Prometheus) on your Kubernetes cluster using the following command:

$ kubectl -n kube-system apply -f 'https://cloud.weave.works/k8s/cortex.yaml?t=<token>'

Select the Cortex service in the Weave Cloud UI:

Cropped screenshot of Weave Cloud showing Prometheus button as graph

Weave Cloud gives you some example queries that show you general system information. You can of course write your own Prometheus queries.

About Weave Cortex

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

Using Cortex on other platforms

Cortex can be used to monitor virtually any application on any platform, as the local agent is a specially configured unmodified OSS Prometheus binary. You can download Prometheus from its website. You will need v1.2.1 or later.

When you've got Prometheus, you will need to configure it to discover your services and configure it to send its data to Weave Cloud by adding the following top-level stanza to prometheus.yml:

remote_write:
  url: https://cloud.weave.works/api/prom/push
  basic_auth:
    password: <token>

Where <token> is the Service Token you obtained from Weave Cloud.

Once your local Prometheus is running you can enter Prometheus queries into Weave Cloud. Go to https://cloud.weave.works and click the graph icon to the right of the instance selector:

Cropped screenshot of Weave Cloud showing Prometheus button as graph

Using Cortex to power Grafana dashboards

To use the Prometheus Service with Grafana, configure your Grafana instance to have a datasource with the following parameters:

  • Type: Prometheus
  • Url: https://cloud.weave.works/api/prom
  • Access: Direct
  • Http Auth: Basic Auth
  • User: user (this is ignored, but must be non-empty)
  • Password: (the same one your retrieval agent uses)