A multitenant, horizontally scalable Prometheus as a Service
Go JavaScript HTML CSS Makefile Protocol Buffer Shell
Latest commit 16e69d3 Jan 19, 2017 @juliusv juliusv committed on GitHub Merge pull request #221 from weaveworks/fix-log-message
Fix logging for dropping non-matching chunks

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)