Commit e4de4e4f authored by Brian Brazil's avatar Brian Brazil

Expand faq.

parent 77e02e8e
......@@ -13,9 +13,9 @@ Choose a Prometheus client library that matches the language in which your
application is written. This lets you define and expose internal metrics via an
HTTP endpoint on your application’s instance:
- [Go](https://github.com/prometheus/client_golang)
- [Java or Scala](https://github.com/prometheus/client_java)
- [Ruby](https://github.com/prometheus/client_ruby)
* [Go](https://github.com/prometheus/client_golang)
* [Java or Scala](https://github.com/prometheus/client_java)
* [Ruby](https://github.com/prometheus/client_ruby)
When Prometheus scrapes your instance's HTTP endpoint, the client library
sends the current state of all tracked metrics to the server.
......
......@@ -17,3 +17,7 @@ following is a list of existing third-party exporters:
* [StatsD bridge](https://github.com/prometheus/statsd_bridge)
* [JMX exporter](https://github.com/prometheus/jmx_exporter)
* [Hystrix metrics publisher](https://github.com/prometheus/hystrix)
The [JMX exporter](https://github.com/prometheus/jmx_exporter) can export from a
wide variety of JVM-based applications, for example [Kafka](http://kafka.apache.org/) and
[Cassandra](http://cassandra.apache.org/).
......@@ -30,6 +30,22 @@ The Alertmanager cannot currently be made highly available, but this is a goal.
Most Prometheus components are written in Go. Some are also written in Java and Ruby.
### Why do you pull rather than push?
Pulling over HTTP offers a number of advantages:
* You can run your monitoring on your laptop when developing changes.
* You can more easily tell if a target is down.
* You can manually go to a target and inspect its health with a web browser.
Overall we believe that pulling is slightly better than pushing, but it should
not be considered a major point when considering a monitoring system.
The [Push vs Pull for Monitoring](http://www.boxever.com/push-vs-pull-for-monitoring)
blog post by Brian Brazil goes into more detail.
For cases where you must push, we offer the [Pushgateway](../../instrumenting/pushing).
### Who wrote Prometheus?
Prometheus was initially started privately by
......@@ -47,6 +63,11 @@ file in each repository.
Prometheus is released under the
[Apache 2.0](https://github.com/prometheus/prometheus/blob/master/LICENSE) license.
### What is the plural of Prometheus?
After extensive research it has been determined that the correct plural of
'Prometheus' is 'Prometheis'.
### Can I send alerts?
Yes, with the experimental [Alertmanager](https://github.com/prometheus/alertmanager).
......@@ -63,9 +84,9 @@ templates](visualization/consoles/).
Currently there are client libraries for:
- [Go](https://github.com/prometheus/client_golang)
- [Java or Scala](https://github.com/prometheus/client_java)
- [Ruby](https://github.com/prometheus/client_ruby)
* [Go](https://github.com/prometheus/client_golang)
* [Java or Scala](https://github.com/prometheus/client_java)
* [Ruby](https://github.com/prometheus/client_ruby)
If you are interested in contributing a client library for a new language, see
the [exposition formats](../../instrumenting/exposition_formats/).
......@@ -82,6 +103,10 @@ Yes, using the [Pushgateway](../../instrumenting/pushing). See also the
[best practices](../../practices/instrumentation/#batch-jobs) for monitoring batch
jobs.
### What applications can Prometheus monitor out of the box?
See [exporters for third-party systems](../../instrumenting/exporters).
### Which Java client should I use?
New users are advised to use the
......
......@@ -16,28 +16,28 @@ services at SoundCloud and is seeing growing external usage and contributions.
Prometheus's main features are:
- a multi-dimensional [data model](/docs/concepts/data_model/) (time series identified by metric name and key/value pairs)
- a [flexible query language](/docs/querying/basics/)
* a multi-dimensional [data model](/docs/concepts/data_model/) (time series identified by metric name and key/value pairs)
* a [flexible query language](/docs/querying/basics/)
to leverage this dimensionality
- no reliance on distributed storage; single server nodes are autonomous
- time series collection happens via a pull model over HTTP
- [pushing time series](/docs/instrumenting/pushing/) is supported via an intermediary gateway
- targets are discovered via service discovery or static configuration
- multiple modes of graphing and dashboarding support
* no reliance on distributed storage; single server nodes are autonomous
* time series collection happens via a pull model over HTTP
* [pushing time series](/docs/instrumenting/pushing/) is supported via an intermediary gateway
* targets are discovered via service discovery or static configuration
* multiple modes of graphing and dashboarding support
### Components
The Prometheus ecosystem consists of multiple components, many of which are
optional:
- the main [Prometheus server](https://github.com/prometheus/prometheus) which scrapes and stores time series data
- [client libraries](/docs/instrumenting/clientlibs/) for instrumenting application code
- a [push gateway](https://github.com/prometheus/pushgateway) for supporting short-lived jobs
- a [GUI-based dashboard builder](/docs/visualization/promdash/) based on Rails/SQL
- special-purpose [exporters](/docs/instrumenting/exporters/) (for HAProxy, StatsD, Ganglia, etc.)
- an (experimental) [alert manager](https://github.com/prometheus/alertmanager)
- a [command-line querying tool](https://github.com/prometheus/prometheus_cli)
- various support tools
* the main [Prometheus server](https://github.com/prometheus/prometheus) which scrapes and stores time series data
* [client libraries](/docs/instrumenting/clientlibs/) for instrumenting application code
* a [push gateway](https://github.com/prometheus/pushgateway) for supporting short-lived jobs
* a [GUI-based dashboard builder](/docs/visualization/promdash/) based on Rails/SQL
* special-purpose [exporters](/docs/instrumenting/exporters/) (for HAProxy, StatsD, Ganglia, etc.)
* an (experimental) [alert manager](https://github.com/prometheus/alertmanager)
* a [command-line querying tool](https://github.com/prometheus/prometheus_cli)
* various support tools
Most Prometheus components are written in [Go](https://golang.org/), making
them easy to build and deploy as static binaries.
......
......@@ -103,11 +103,11 @@ expression is to be evaluated.
The following functions allow aggregating each series of a given range vector
over time and return an instant vector with per-series aggregation results:
- `avg_over_time(range-vector)`: the average value of all points under the specified interval.
- `min_over_time(range-vector)`: the minimum value of all points under the specified interval.
- `max_over_time(range-vector)`: the maximum value of all points under the specified interval.
- `sum_over_time(range-vector)`: the sum of all values under the specified interval.
- `count_over_time(range-vector)`: the count of all values under the specified interval.
* `avg_over_time(range-vector)`: the average value of all points under the specified interval.
* `min_over_time(range-vector)`: the minimum value of all points under the specified interval.
* `max_over_time(range-vector)`: the maximum value of all points under the specified interval.
* `sum_over_time(range-vector)`: the sum of all values under the specified interval.
* `count_over_time(range-vector)`: the count of all values under the specified interval.
## `topk()` and `bottomk()`
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment