2019-01-03 22:56:49 +08:00
# Prometheus
2015-12-21 18:09:38 +01:00
2019-01-03 22:56:49 +08:00
[![Build Status ](https://travis-ci.org/prometheus/prometheus.svg )][travis]
2015-12-21 18:09:38 +01:00
[![CircleCI ](https://circleci.com/gh/prometheus/prometheus/tree/master.svg?style=shield )][circleci]
2016-04-26 17:23:41 +02: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-14 23:09:26 -04:00
[![Go Report Card ](https://goreportcard.com/badge/github.com/prometheus/prometheus )](https://goreportcard.com/report/github.com/prometheus/prometheus)
2018-02-05 20:39:32 +01:00
[![CII Best Practices ](https://bestpractices.coreinfrastructure.org/projects/486/badge )](https://bestpractices.coreinfrastructure.org/projects/486)
2019-08-21 11:43:53 +03:00
[![fuzzit ](https://app.fuzzit.dev/badge?org_id=prometheus&branch=master )](https://fuzzit.dev)
2012-11-24 03:14:12 -08:00
2016-04-12 21:01:09 -04:00
Visit [prometheus.io ](https://prometheus.io ) for the full documentation,
examples and guides.
2016-07-27 17:15:03 -05:00
Prometheus, a [Cloud Native Computing Foundation ](https://cncf.io/ ) project, is a systems and service monitoring system. It collects metrics
2014-12-07 01:23:01 +01: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.
2019-10-01 00:26:54 +01:00
Prometheus's main distinguishing features as compared to other monitoring systems are:
2014-12-07 00:05:10 +01: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 23:35:11 +01:00
- support for hierarchical and horizontal **federation**
2014-12-07 00:05:10 +01:00
2014-12-07 01:29:56 +01:00
## Architecture overview
2014-12-07 01:23:01 +01:00
2018-10-13 13:20:29 +01:00
![](https://cdn.jsdelivr.net/gh/prometheus/prometheus@c34257d069c630685da35bcef084632ffd5d6209/documentation/images/architecture .svg)
2014-11-17 19:20:39 +01:00
2014-11-21 13:27:28 +01:00
## Install
2014-11-17 19:20:39 +01:00
2014-11-21 13:27:28 +01:00
There are various ways of installing Prometheus.
2014-11-17 19:20:39 +01:00
2015-05-22 13:31:59 +02:00
### Precompiled binaries
2012-11-24 12:33:34 +01:00
2015-05-22 13:31:59 +02:00
Precompiled binaries for released versions are available in the
2016-09-07 14:32:48 +02:00
[*download* section ](https://prometheus.io/download/ )
on [prometheus.io ](https://prometheus.io ). Using the latest production release binary
2016-09-14 23:09:26 -04:00
is the recommended way of installing Prometheus.
See the [Installing ](https://prometheus.io/docs/introduction/install/ )
2016-04-25 11:31:38 +02:00
chapter in the documentation for all the details.
2015-05-22 13:31:59 +02:00
2016-07-01 10:16:49 +02:00
Debian packages [are available ](https://packages.debian.org/sid/net/prometheus ).
2016-09-07 14:32:48 +02:00
### Docker images
2016-07-01 10:16:49 +02:00
2018-11-16 06:26:10 -05:00
Docker images are available on [Quay.io ](https://quay.io/repository/prometheus/prometheus ) or [Docker Hub ](https://hub.docker.com/r/prom/prometheus/ ).
2013-01-25 00:33:16 +01:00
2017-03-13 11:37:25 +01:00
You can launch a Prometheus container for trying it out with
2018-11-16 06:26:10 -05:00
$ docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
2017-03-13 11:37:25 +01:00
Prometheus will now be reachable at http://localhost:9090/.
2015-09-17 18:20:38 +02:00
### Building from source
2013-01-25 00:33:16 +01:00
2015-09-17 18:20:38 +02:00
To build Prometheus from the source code yourself you need to have a working
2019-09-13 14:55:18 +02:00
Go environment with [version 1.13 or greater installed ](https://golang.org/doc/install ).
2015-04-10 13:53:32 +02:00
2015-09-17 18:20:38 +02:00
You can directly use the `go` tool to download and install the `prometheus`
2017-10-13 00:15:29 +02:00
and `promtool` binaries into your `GOPATH` :
2013-04-14 06:59:55 +02:00
2017-10-13 00:15:29 +02:00
$ go get github.com/prometheus/prometheus/cmd/...
2017-08-08 12:49:35 +05:30
$ prometheus --config.file=your_config.yml
2013-04-14 06:59:55 +02:00
2015-09-17 18:20:38 +02:00
You can also clone the repository yourself and build using `make` :
2013-04-14 06:59:55 +02:00
2015-09-17 18:20:38 +02: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 11:30:31 +01:00
$ make build
2017-08-08 12:49:35 +05:30
$ ./prometheus --config.file=your_config.yml
2013-04-14 06:59:55 +02:00
2015-09-18 09:34:17 +02:00
The Makefile provides several targets:
2013-04-14 06:59:55 +02:00
2015-09-17 18:20:38 +02:00
* *build*: build the `prometheus` and `promtool` binaries
* *test*: run the tests
2017-04-07 17:16:06 +05:30
* *test-short*: run the short tests
2015-09-17 18:20:38 +02: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 15:17:03 +02:00
2014-11-21 13:27:28 +01:00
## More information
2013-05-06 10:54:27 +02:00
2019-02-20 16:50:45 +07:00
* The source code is periodically indexed: [Prometheus Core ](https://godoc.org/github.com/prometheus/prometheus ).
2014-11-21 13:27:28 +01:00
* You will find a Travis CI configuration in `.travis.yml` .
2016-11-10 07:45:09 +01: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 15:54:40 +01:00
2013-04-14 06:59:55 +02:00
## Contributing
2017-01-03 21:07:33 +01:00
Refer to [CONTRIBUTING.md ](https://github.com/prometheus/prometheus/blob/master/CONTRIBUTING.md )
2013-04-14 06:59:55 +02:00
2013-01-24 21:56:08 +01:00
## License
2012-11-26 20:11:34 +01:00
2017-01-03 21:07:33 +01:00
Apache License 2.0, see [LICENSE ](https://github.com/prometheus/prometheus/blob/master/LICENSE ).
2015-12-21 18:09:38 +01: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 17:23:41 +02:00
[quay]: https://quay.io/repository/prometheus/prometheus