Prom-Stack
This repo contains a quick start for running a development instance of Prometheus.
What's Included?
- Go Metrics
- Prometheus Server
- Push Gateway
- Alertmanager
- Grafana
+--------------+
| |
| Grafana |
| |
+--------------+
|
| datasource
|
+------v-------+ +--------------+
+-----+ | | |
scrape | | Prometheus +-----------> AlertManager |
+--------------+ +-----> Server | push | |
| | | | alerts | |
| go-metrics <---------------+--------------+ +--------------+
| | scrape |
+--------------+ | scrape
|
+------v-------+
| |
| Pushgateway |
| |
+--------------+
How do I use it?
- Clone the repo.
- Navigate to the directory and run
make up
foo@bar:~$ make up
- Go to http://localhost:5000/metrics for Go-Metrics.
- Go to http://localhost:9090 for Prometheus.
- Go to http://localhost:9091 for the Push Gateway.
- Go to http://localhost:9093 for Alertmanager.
- Go to http://localhost:3000 for Grafana.
Guides
Add a Scrape Target
To add a new scrape target, edit the scrape_configs
section of /prometheus/prometheus.yml
and run make reload-prom
See here for more details on scrape configs.
Add an alert
To add a new alert, create or edit a *.rules
file in the prometheus/alerts
directory and run make reload-prom
Use the Push Gateway
The Pushgateway can be used as an intermediary to push metrics, where the Prometheus pull model doesn't fit. Examples of this include short lived processes or batch jobs.
To push a metric in Prom-Stack, you can do something like this:
echo "mymetric 99" | curl --data-binary @- http://localhost:9091/metrics/job/my-push-job
echo "mymetric 87" | curl --data-binary @- http://localhost:9091/metrics/job/other-push-job
You can confirm this has worked by navigating to the Push Gateway UI or the Prometheus expression browser.