Add prometheus-grafana sample
Signed-off-by: Anca Iordache <anca.iordache@docker.com>master
parent
6c8754131d
commit
6b957fa0b5
@ -0,0 +1,66 @@
|
||||
## Compose sample
|
||||
### Prometheus & Grafana
|
||||
|
||||
Project structure:
|
||||
```
|
||||
.
|
||||
├── docker-compose.yml
|
||||
├── grafana
|
||||
│ └── datasource.yml
|
||||
├── prometheus
|
||||
│ └── prometheus.yml
|
||||
└── README.md
|
||||
```
|
||||
|
||||
[_docker-compose.yaml_](docker-compose.yaml)
|
||||
```
|
||||
version: "3.7"
|
||||
services:
|
||||
prometheus:
|
||||
image: prom/prometheus
|
||||
...
|
||||
ports:
|
||||
- 9090:9090
|
||||
grafana:
|
||||
image: grafana/grafana
|
||||
...
|
||||
ports:
|
||||
- 3000:3000
|
||||
```
|
||||
The compose file defines a stack with two services `prometheus` and `grafana`.
|
||||
When deploying the stack, docker-compose maps port the default ports for each service to the equivalent ports on the host in order to inspect easier the web interface of each service.
|
||||
Make sure the ports 9090 and 3000 on the host are not already in use.
|
||||
|
||||
## Deploy with docker-compose
|
||||
|
||||
```
|
||||
$ docker-compose up -d
|
||||
Creating network "prometheus-grafana_default" with the default driver
|
||||
Creating volume "prometheus-grafana_prom_data" with default driver
|
||||
...
|
||||
Creating grafana ... done
|
||||
Creating prometheus ... done
|
||||
Attaching to prometheus, grafana
|
||||
|
||||
```
|
||||
|
||||
## Expected result
|
||||
|
||||
Listing containers must show two containers running and the port mapping as below:
|
||||
```
|
||||
$ docker ps
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
dbdec637814f prom/prometheus "/bin/prometheus --c…" 8 minutes ago Up 8 minutes 0.0.0.0:9090->9090/tcp prometheus
|
||||
79f667cb7dc2 grafana/grafana "/run.sh" 8 minutes ago Up 8 minutes 0.0.0.0:3000->3000/tcp grafana
|
||||
```
|
||||
|
||||
Navigate to `http://localhost:3000` in your web browser and use the login credentials specified in the compose file to access Grafana. It is already configured with prometheus as the default datasource.
|
||||
|
||||
![page](output.jpg)
|
||||
|
||||
Navigate to `http://localhost:9090` in your web browser to access directly the web interface of prometheus.
|
||||
|
||||
Stop and remove the containers. Use `-v` to remove the volumes if looking to erase all data.
|
||||
```
|
||||
$ docker-compose down -v
|
||||
```
|
@ -0,0 +1,25 @@
|
||||
|
||||
version: "3.7"
|
||||
services:
|
||||
prometheus:
|
||||
image: prom/prometheus
|
||||
container_name: prometheus
|
||||
command:
|
||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||
ports:
|
||||
- 9090:9090
|
||||
volumes:
|
||||
- ./prometheus:/etc/prometheus
|
||||
- prom_data:/prometheus
|
||||
grafana:
|
||||
image: grafana/grafana
|
||||
container_name: grafana
|
||||
ports:
|
||||
- 3000:3000
|
||||
environment:
|
||||
- GF_SECURITY_ADMIN_USER=admin
|
||||
- GF_SECURITY_ADMIN_PASSWORD=grafana
|
||||
volumes:
|
||||
- ./grafana:/etc/grafana/provisioning/datasources
|
||||
volumes:
|
||||
prom_data:
|
@ -0,0 +1,9 @@
|
||||
apiVersion: 1
|
||||
|
||||
datasources:
|
||||
- name: Prometheus
|
||||
type: prometheus
|
||||
url: http://prometheus:9090
|
||||
isDefault: true
|
||||
access: proxy
|
||||
editable: true
|
Binary file not shown.
After Width: | Height: | Size: 101 KiB |
@ -0,0 +1,21 @@
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
evaluation_interval: 15s
|
||||
alerting:
|
||||
alertmanagers:
|
||||
- static_configs:
|
||||
- targets: []
|
||||
scheme: http
|
||||
timeout: 10s
|
||||
api_version: v1
|
||||
scrape_configs:
|
||||
- job_name: prometheus
|
||||
honor_timestamps: true
|
||||
scrape_interval: 15s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets:
|
||||
- localhost:9090
|
Loading…
Reference in New Issue