2015-12-21 17:09:38 +00:00
|
|
|
# Prometheus [![Build Status](https://travis-ci.org/prometheus/prometheus.svg)][travis]
|
|
|
|
|
|
|
|
[![CircleCI](https://circleci.com/gh/prometheus/prometheus/tree/master.svg?style=shield)][circleci]
|
2016-04-26 15:23:41 +00:00
|
|
|
[![Docker Repository on Quay](https://quay.io/repository/prometheus/prometheus/status)][quay]
|
|
|
|
[![Docker Pulls](https://img.shields.io/docker/pulls/prom/prometheus.svg?maxAge=604800)][hub]
|
2016-09-15 03:09:26 +00:00
|
|
|
[![Go Report Card](https://goreportcard.com/badge/github.com/prometheus/prometheus)](https://goreportcard.com/report/github.com/prometheus/prometheus)
|
2017-01-19 22:22:22 +00:00
|
|
|
[![Code Climate](https://codeclimate.com/github/prometheus/prometheus/badges/gpa.svg)](https://codeclimate.com/github/prometheus/prometheus)
|
|
|
|
[![Issue Count](https://codeclimate.com/github/prometheus/prometheus/badges/issue_count.svg)](https://codeclimate.com/github/prometheus/prometheus)
|
2012-11-24 11:14:12 +00:00
|
|
|
|
2016-04-13 01:01:09 +00:00
|
|
|
Visit [prometheus.io](https://prometheus.io) for the full documentation,
|
|
|
|
examples and guides.
|
|
|
|
|
2016-07-27 22:15:03 +00:00
|
|
|
Prometheus, a [Cloud Native Computing Foundation](https://cncf.io/) project, is a systems and service monitoring system. It collects metrics
|
2014-12-07 00:23:01 +00:00
|
|
|
from configured targets at given intervals, evaluates rule expressions,
|
|
|
|
displays the results, and can trigger alerts if some condition is observed
|
|
|
|
to be true.
|
|
|
|
|
|
|
|
Prometheus' main distinguishing features as compared to other monitoring systems are:
|
2014-12-06 23:05:10 +00:00
|
|
|
|
|
|
|
- a **multi-dimensional** data model (timeseries defined by metric name and set of key/value dimensions)
|
|
|
|
- a **flexible query language** to leverage this dimensionality
|
|
|
|
- no dependency on distributed storage; **single server nodes are autonomous**
|
|
|
|
- timeseries collection happens via a **pull model** over HTTP
|
|
|
|
- **pushing timeseries** is supported via an intermediary gateway
|
|
|
|
- targets are discovered via **service discovery** or **static configuration**
|
|
|
|
- multiple modes of **graphing and dashboarding support**
|
2015-11-08 22:35:11 +00:00
|
|
|
- support for hierarchical and horizontal **federation**
|
2014-12-06 23:05:10 +00:00
|
|
|
|
2014-12-07 00:29:56 +00:00
|
|
|
## Architecture overview
|
2014-12-07 00:23:01 +00:00
|
|
|
|
2017-03-23 12:16:54 +00:00
|
|
|
![](https://cdn.rawgit.com/prometheus/prometheus/c34257d069c630685da35bcef084632ffd5d6209/documentation/images/architecture.svg)
|
2014-11-17 18:20:39 +00:00
|
|
|
|
2014-11-21 12:27:28 +00:00
|
|
|
## Install
|
2014-11-17 18:20:39 +00:00
|
|
|
|
2014-11-21 12:27:28 +00:00
|
|
|
There are various ways of installing Prometheus.
|
2014-11-17 18:20:39 +00:00
|
|
|
|
2015-05-22 11:31:59 +00:00
|
|
|
### Precompiled binaries
|
2012-11-24 11:33:34 +00:00
|
|
|
|
2015-05-22 11:31:59 +00:00
|
|
|
Precompiled binaries for released versions are available in the
|
2016-09-07 12:32:48 +00:00
|
|
|
[*download* section](https://prometheus.io/download/)
|
|
|
|
on [prometheus.io](https://prometheus.io). Using the latest production release binary
|
2016-09-15 03:09:26 +00:00
|
|
|
is the recommended way of installing Prometheus.
|
|
|
|
See the [Installing](https://prometheus.io/docs/introduction/install/)
|
2016-04-25 09:31:38 +00:00
|
|
|
chapter in the documentation for all the details.
|
2015-05-22 11:31:59 +00:00
|
|
|
|
2016-07-01 08:16:49 +00:00
|
|
|
Debian packages [are available](https://packages.debian.org/sid/net/prometheus).
|
|
|
|
|
2016-09-07 12:32:48 +00:00
|
|
|
### Docker images
|
2016-07-01 08:16:49 +00:00
|
|
|
|
2016-09-07 12:32:48 +00:00
|
|
|
Docker images are available on [Quay.io](https://quay.io/repository/prometheus/prometheus).
|
2013-01-24 23:33:16 +00:00
|
|
|
|
2017-03-13 10:37:25 +00:00
|
|
|
You can launch a Prometheus container for trying it out with
|
|
|
|
|
|
|
|
$ docker run --name prometheus -d -p 127.0.0.1:9090:9090 quay.io/prometheus/prometheus
|
|
|
|
|
|
|
|
Prometheus will now be reachable at http://localhost:9090/.
|
|
|
|
|
2015-09-17 16:20:38 +00:00
|
|
|
### Building from source
|
2013-01-24 23:33:16 +00:00
|
|
|
|
2015-09-17 16:20:38 +00:00
|
|
|
To build Prometheus from the source code yourself you need to have a working
|
2015-09-18 07:34:17 +00:00
|
|
|
Go environment with [version 1.5 or greater installed](http://golang.org/doc/install).
|
2015-04-10 11:53:32 +00:00
|
|
|
|
2015-09-17 16:20:38 +00:00
|
|
|
You can directly use the `go` tool to download and install the `prometheus`
|
2015-10-15 20:33:59 +00:00
|
|
|
and `promtool` binaries into your `GOPATH`. We use Go 1.5's experimental
|
|
|
|
vendoring feature, so you will also need to set the `GO15VENDOREXPERIMENT=1`
|
|
|
|
environment variable in this case:
|
2013-04-14 04:59:55 +00:00
|
|
|
|
2015-10-15 20:33:59 +00:00
|
|
|
$ GO15VENDOREXPERIMENT=1 go get github.com/prometheus/prometheus/cmd/...
|
2015-09-17 16:20:38 +00:00
|
|
|
$ prometheus -config.file=your_config.yml
|
2013-04-14 04:59:55 +00:00
|
|
|
|
2015-09-17 16:20:38 +00:00
|
|
|
You can also clone the repository yourself and build using `make`:
|
2013-04-14 04:59:55 +00:00
|
|
|
|
2015-09-17 16:20:38 +00:00
|
|
|
$ mkdir -p $GOPATH/src/github.com/prometheus
|
|
|
|
$ cd $GOPATH/src/github.com/prometheus
|
|
|
|
$ git clone https://github.com/prometheus/prometheus.git
|
|
|
|
$ cd prometheus
|
2016-02-05 10:30:31 +00:00
|
|
|
$ make build
|
2015-09-17 16:20:38 +00:00
|
|
|
$ ./prometheus -config.file=your_config.yml
|
2013-04-14 04:59:55 +00:00
|
|
|
|
2015-09-18 07:34:17 +00:00
|
|
|
The Makefile provides several targets:
|
2013-04-14 04:59:55 +00:00
|
|
|
|
2015-09-17 16:20:38 +00:00
|
|
|
* *build*: build the `prometheus` and `promtool` binaries
|
|
|
|
* *test*: run the tests
|
2017-04-07 11:46:06 +00:00
|
|
|
* *test-short*: run the short tests
|
2015-09-17 16:20:38 +00:00
|
|
|
* *format*: format the source code
|
|
|
|
* *vet*: check the source code for common errors
|
|
|
|
* *assets*: rebuild the static assets
|
|
|
|
* *docker*: build a docker container for the current `HEAD`
|
2013-06-13 13:17:03 +00:00
|
|
|
|
2014-11-21 12:27:28 +00:00
|
|
|
## More information
|
2013-05-06 08:54:27 +00:00
|
|
|
|
2014-11-21 12:27:28 +00:00
|
|
|
* The source code is periodically indexed: [Prometheus Core](http://godoc.org/github.com/prometheus/prometheus).
|
|
|
|
* You will find a Travis CI configuration in `.travis.yml`.
|
2016-11-10 06:45:09 +00:00
|
|
|
* See the [Community page](https://prometheus.io/community) for how to reach the Prometheus developers and users on various communication channels.
|
2013-03-28 14:54:40 +00:00
|
|
|
|
2013-04-14 04:59:55 +00:00
|
|
|
## Contributing
|
|
|
|
|
2017-01-03 20:07:33 +00:00
|
|
|
Refer to [CONTRIBUTING.md](https://github.com/prometheus/prometheus/blob/master/CONTRIBUTING.md)
|
2013-04-14 04:59:55 +00:00
|
|
|
|
2013-01-24 20:56:08 +00:00
|
|
|
## License
|
2012-11-26 19:11:34 +00:00
|
|
|
|
2017-01-03 20:07:33 +00:00
|
|
|
Apache License 2.0, see [LICENSE](https://github.com/prometheus/prometheus/blob/master/LICENSE).
|
2015-12-21 17:09:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
[travis]: https://travis-ci.org/prometheus/prometheus
|
|
|
|
[hub]: https://hub.docker.com/r/prom/prometheus/
|
|
|
|
[circleci]: https://circleci.com/gh/prometheus/prometheus
|
2016-04-26 15:23:41 +00:00
|
|
|
[quay]: https://quay.io/repository/prometheus/prometheus
|