mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-27 22:49:40 -08:00
Merge branch 'master' into bjoern/deal-with-complicated-todos
Conflicts: README.md Change-Id: Ia9cf8c3498ec6238669f52b4114f3db54dd0bd07
This commit is contained in:
commit
41dbff7058
|
@ -4,7 +4,9 @@ EXPOSE 9090
|
||||||
VOLUME [ "/prometheus" ]
|
VOLUME [ "/prometheus" ]
|
||||||
WORKDIR /prometheus
|
WORKDIR /prometheus
|
||||||
|
|
||||||
ENTRYPOINT [ "/prometheus-src/.build/package/run_prometheus.sh" ]
|
ENTRYPOINT [ "/prometheus-src/prometheus" ]
|
||||||
|
CMD [ "-config.file=/prometheus.conf" ]
|
||||||
RUN apt-get update && apt-get install -yq make git curl sudo mercurial vim-common
|
RUN apt-get update && apt-get install -yq make git curl sudo mercurial vim-common
|
||||||
ADD . /prometheus-src
|
ADD . /prometheus-src
|
||||||
RUN cd /prometheus-src && make tools binary
|
RUN cd /prometheus-src && make tools binary
|
||||||
|
ADD ./documentation/examples/prometheus.conf /prometheus.conf
|
||||||
|
|
44
README.md
44
README.md
|
@ -1,21 +1,24 @@
|
||||||
# Prometheus
|
# Prometheus
|
||||||
|
|
||||||
Bedecke deinen Himmel, Zeus! A new kid is in town.
|
Prometheus is a systems and service monitoring system. It collects metrics
|
||||||
|
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 is a generic time series collection and computation server that is
|
Prometheus' main distinguishing features as compared to other monitoring systems are:
|
||||||
useful in the following fields:
|
|
||||||
|
|
||||||
* Industrial Experimentation / Real-Time Behavioral Validation / Software Release Qualification
|
- a **multi-dimensional** data model (timeseries defined by metric name and set of key/value dimensions)
|
||||||
* Econometric and Natural Sciences
|
- a **flexible query language** to leverage this dimensionality
|
||||||
* Operational Concerns and Monitoring
|
- 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**
|
||||||
|
- **federation support** coming soon
|
||||||
|
|
||||||
The system is designed to collect telemetry from named targets on given
|
## Architecture overview
|
||||||
intervals, evaluate rule expressions, display the results, and trigger an
|
|
||||||
action if some condition is observed to be true.
|
|
||||||
|
|
||||||
TODO: The above description is somewhat esoteric. Rephrase it into
|
![](https://cdn.rawgit.com/prometheus/prometheus/9c43ed7/documentation/images/architecture.svg)
|
||||||
something that tells normal people how they will usually benefit from
|
|
||||||
using Prometheus.
|
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
|
@ -24,25 +27,22 @@ There are various ways of installing Prometheus.
|
||||||
### Precompiled packages
|
### Precompiled packages
|
||||||
|
|
||||||
We plan to provide precompiled binaries for various platforms and even
|
We plan to provide precompiled binaries for various platforms and even
|
||||||
packages for common Linux distribution soon. Once those are offered,
|
packages for common Linux distributions soon. Once those are offered,
|
||||||
it will be the recommended way of installing Prometheus.
|
it will be the recommended way of installing Prometheus.
|
||||||
|
|
||||||
### Use `make`
|
### Use `make`
|
||||||
|
|
||||||
In most cirumstances, the following should work:
|
In most cirumstances, the following should work:
|
||||||
|
|
||||||
$ make
|
$ make build
|
||||||
$ ARGUMENTS="-config.file=documentation/examples/prometheus.conf" make run
|
$ ./prometheus -config.file=documentation/examples/prometheus.conf
|
||||||
|
|
||||||
``${ARGUMENTS}`` is passed verbatim to the commandline starting the Prometheus binary.
|
|
||||||
This is useful for quick one-off invocations and smoke testing.
|
|
||||||
|
|
||||||
The above requires a number of common tools to be installed, namely
|
The above requires a number of common tools to be installed, namely
|
||||||
`curl`, `git`, `gzip`, `hg` (Mercurial CLI), `sed`, `xxd`. Should you
|
`curl`, `git`, `gzip`, `hg` (Mercurial CLI), `sed`, `xxd`. Should you
|
||||||
need to change any of the protocol buffer definition files
|
need to change any of the protocol buffer definition files
|
||||||
(`*.proto`), you also need the protocol buffer compiler
|
(`*.proto`), you also need the protocol buffer compiler
|
||||||
[`protoc`](http://code.google.com/p/protobuf/](http://code.google.com/p/protobuf/),
|
[`protoc`](http://code.google.com/p/protobuf/), v2.5.0 or higher,
|
||||||
v2.5.0 or higher, in your `$PATH`.
|
in your `$PATH`.
|
||||||
|
|
||||||
Everything else will be downloaded and installed into a staging
|
Everything else will be downloaded and installed into a staging
|
||||||
environment in the `.build` sub-directory. That includes a Go
|
environment in the `.build` sub-directory. That includes a Go
|
||||||
|
@ -52,7 +52,7 @@ The `Makefile` offers a number of useful targets. Some examples:
|
||||||
|
|
||||||
* `make test` runs tests.
|
* `make test` runs tests.
|
||||||
* `make tarball` creates a tarball with the binary for distribution.
|
* `make tarball` creates a tarball with the binary for distribution.
|
||||||
* `make race_condition_run` compiles and runs a binary with the race detector enabled.
|
* `make race_condition_run` compiles and runs a binary with the race detector enabled. To pass arguments when running Prometheus this way, set the `ARGUMENTS` environment variable (e.g. `ARGUMENTS="-config.file=./prometheus.conf" make race_condition_run`).
|
||||||
|
|
||||||
### Use your own Go development environment
|
### Use your own Go development environment
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ do that.
|
||||||
|
|
||||||
* The source code is periodically indexed: [Prometheus Core](http://godoc.org/github.com/prometheus/prometheus).
|
* 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`.
|
* You will find a Travis CI configuration in `.travis.yml`.
|
||||||
* All of the core developers are accessible via the [Prometheus Developers Mailinglist](https://groups.google.com/forum/?fromgroups#!forum/prometheus-developers).
|
* All of the core developers are accessible via the [Prometheus Developers Mailinglist](https://groups.google.com/forum/?fromgroups#!forum/prometheus-developers) and the `#prometheus` channel on `irc.freenode.net`.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|
1
documentation/images/architecture.svg
Normal file
1
documentation/images/architecture.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 29 KiB |
Loading…
Reference in a new issue