README.md 3.3 KB
Newer Older
1
# Prometheus
Matt T. Proud's avatar
Matt T. Proud committed
2

3
4
Bedecke deinen Himmel, Zeus!  A new kid is in town.

Matt T. Proud's avatar
Matt T. Proud committed
5
6
7
Prometheus is a generic time series collection and computation server that is
useful in the following fields:

8
9
10
* Industrial Experimentation / Real-Time Behavioral Validation / Software Release Qualification
* Econometric and Natural Sciences
* Operational Concerns and Monitoring
Matt T. Proud's avatar
Matt T. Proud committed
11
12
13
14

The system is designed to collect telemetry from named targets on given
intervals, evaluate rule expressions, display the results, and trigger an
action if some condition is observed to be true.
15

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
16
TODO: The above description is somewhat esoteric. Rephrase it into
juliusv's avatar
juliusv committed
17
something that tells normal people how they will usually benefit from
Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
18
using Prometheus.
Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
19

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
20
## Install
Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
21

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
22
There are various ways of installing Prometheus.
Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
23

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
24
### Precompiled packages
25

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
26
27
28
We plan to provide precompiled binaries for various platforms and even
packages for common Linux distribution soon. Once those are offered,
it will be the recommended way of installing Prometheus.
29

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
30
### Use `make`
31

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
32
In most cirumstances, the following should work:
33

juliusv's avatar
juliusv committed
34
35
    $ make build
    $ ./prometheus -config.file=documentation/examples/prometheus.conf
36

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
37
38
39
40
41
42
The above requires a number of common tools to be installed, namely
`curl`, `git`, `gzip`, `hg` (Mercurial CLI), `sed`, `xxd`. Should you
need to change any of the protocol buffer definition files
(`*.proto`), you also need the protocol buffer compiler
[`protoc`](http://code.google.com/p/protobuf/](http://code.google.com/p/protobuf/),
v2.5.0 or higher, in your `$PATH`.
43

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
44
45
46
Everything else will be downloaded and installed into a staging
environment in the `.build` sub-directory. That includes a Go
development environment of the appropriate version.
47

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
48
The `Makefile` offers a number of useful targets. Some examples:
49

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
50
* `make test` runs tests.
juliusv's avatar
juliusv committed
51
52
* `make tarball` creates a tarball with the binary for distribution.
* `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`).
53

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
54
### Use your own Go development environment
Matt T. Proud's avatar
Matt T. Proud committed
55

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
56
57
58
Using your own Go development environment with the usual tooling is
possible, too, but you have to take care of various generated files
(usually by running `make` in the respective sub-directory):
59

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
60
61
62
* Compiling the protocol buffer definitions in `config` (only if you have changed them).
* Generating the parser and lexer code in `rules` (only if you have changed `parser.y` or `lexer.l`).
* The `files.go` blob in `web/blob`, which embeds the static web content into the binary.
63

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
64
65
66
67
Furthermore, the build info (see `build_info.go`) will not be
populated if you simply run `go build`. You have to pass in command
line flags as defined in `Makefile.INCLUDE` (see `${BUILDFLAGS}`) to
do that.
68

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
69
## More information
70

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
71
72
  * 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`.
juliusv's avatar
juliusv committed
73
  * 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`.
Matt T. Proud's avatar
Matt T. Proud committed
74

75
76
## Contributing

77
Refer to [CONTRIBUTING.md](CONTRIBUTING.md)
78

79
## License
80

Bjoern Rabenstein's avatar
Bjoern Rabenstein committed
81
Apache License 2.0, see [LICENSE](LICENSE).