Show Docker Daemon metrics in Prometheus

This commit is contained in:
Matthias Thubauville 2017-10-16 17:25:36 +02:00
Родитель cf247e41bd
Коммит 5f4e72f79d
3 изменённых файлов: 17 добавлений и 7 удалений

Просмотреть файл

@ -190,9 +190,9 @@ Let's apply the filters.
docker system events -f container=web.1.ytyv0gqi7dzxtetssrlsgvvbu docker system events -f container=web.1.ytyv0gqi7dzxtetssrlsgvvbu
``` ```
+ +
You may have to terminate previous run of `docker system events` using `Ctrl` + `C` to give this new command. You may have to terminate previous run of `docker system events` using `Ctrl` + `C` to give this new command.
+ +
.. In T2, terminate the second replica of the service as `docker container rm -f web.2.1ic0vevvvu2nwwyc6css58ref`. .. In T2, terminate the second replica of the service as `docker container rm -f web.2.1ic0vevvvu2nwwyc6css58ref`.
.. T1 does not show any events because its only listening for events from the first replica of the service. .. T1 does not show any events because its only listening for events from the first replica of the service.
. Show events for an event . Show events for an event
.. In T1, give the command `docker system events -f event=create`. .. In T1, give the command `docker system events -f event=create`.
@ -250,14 +250,17 @@ In this section, we'll start Prometheus and use it to scrape it's own health.
. Create a text file `prometheus.yml` and use the following content . Create a text file `prometheus.yml` and use the following content
+ +
``` ```
# A scrape configuration scraping a Node Exporter and the Prometheus server
# itself.
scrape_configs: scrape_configs:
# Scrape Prometheus itself every 5 seconds. # Scrape Prometheus itself every 5 seconds.
- job_name: 'prometheus' - job_name: 'prometheus'
scrape_interval: 5s scrape_interval: 5s
static_configs: static_configs:
- targets: ['localhost:9090'] - targets: ['localhost:9090']
# Scrape Docker-Daemon every 10s
- job_name: 'docker-for-mac'
scrape_interval: 10s
static_configs:
- targets: ['docker.for.mac.localhost:9323']
``` ```
+ +
This configuration file scrapes data from the Prometheus container which will be started subsequently on port 9090. This configuration file scrapes data from the Prometheus container which will be started subsequently on port 9090.
@ -311,6 +314,13 @@ image::prometheus-metrics6.png[]
Multiple graphs can be added this way. Multiple graphs can be added this way.
==== Plot the Docker daemon internal metrics
The experimental feature on the Docker deamon we enabled before, exposes various metrics about the daemon itself.
For example the `engine_daemon_events_total` metric provides the number of events which happend on the Docker Daemon (see also the `docker system events` command).
image::prometheus-metrics17.png[]
=== Node health === Node health
In this section, we'll start Prometheus node exporter that will publish machine metrics. Then we'll use Prometheus to scrape its health information about the node running Docker. In this section, we'll start Prometheus node exporter that will publish machine metrics. Then we'll use Prometheus to scrape its health information about the node running Docker.
@ -358,6 +368,7 @@ scrape_configs:
static_configs: static_configs:
- targets: - targets:
- 'localhost:9090' - 'localhost:9090'
- job_name: 'node resources' - job_name: 'node resources'
dns_sd_configs: dns_sd_configs:
- names: ['tasks.node'] - names: ['tasks.node']
@ -414,7 +425,7 @@ docker service create \
``` ```
ID NAME MODE REPLICAS IMAGE PORTS ID NAME MODE REPLICAS IMAGE PORTS
lzl41s2i66jd metrics replicated 1/1 prom/prometheus:latest *:9090->9090/tcp lzl41s2i66jd metrics replicated 1/1 prom/prometheus:latest *:9090->9090/tcp
dro3ncpyuchp node global 1/1 prom/node-exporter:latest dro3ncpyuchp node global 1/1 prom/node-exporter:latest
``` ```
+ +
. Confirm that all the targets are configured correctly at http://localhost:9090/targets[Prometheus dashboard]: . Confirm that all the targets are configured correctly at http://localhost:9090/targets[Prometheus dashboard]:
@ -597,7 +608,7 @@ As discussed earlier, Prometheus collects metrics from monitored targets by scra
An link:ch05-compose.adoc#configuration-file[earlier chapter] explained a simple Java EE application that talks to a MySQL database. This application also publishes Prometheus-style metrics for the underlying JVM at `/metrics`. It also publishes application-specific metrics such as total number of times `GET /` and `GET /{id}` is called. An link:ch05-compose.adoc#configuration-file[earlier chapter] explained a simple Java EE application that talks to a MySQL database. This application also publishes Prometheus-style metrics for the underlying JVM at `/metrics`. It also publishes application-specific metrics such as total number of times `GET /` and `GET /{id}` is called.
The complete set of JVM metrics are explained at https://github.com/prometheus/client_java. Refer to https://github.com/arun-gupta/docker-javaee/tree/master/employees/src/main/java/org/javaee/samples/employees/metrics for more details on how these metrics are enabled. The complete set of JVM metrics are explained at https://github.com/prometheus/client_java. Refer to https://github.com/arun-gupta/docker-javaee/tree/master/employees/src/main/java/org/javaee/samples/employees/metrics for more details on how these metrics are enabled.
=== Start Java application === Start Java application
@ -851,4 +862,3 @@ The green bar indicates that the data source was added successfully.
. Enter the following Prometheus query expressions in the query field. The graphs will referesh in a few seconds and will look like as shown: . Enter the following Prometheus query expressions in the query field. The graphs will referesh in a few seconds and will look like as shown:
+ +
image::grafana-metrics4.png[] image::grafana-metrics4.png[]

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 91 KiB

После

Ширина:  |  Высота:  |  Размер: 120 KiB

Двоичные данные
developer-tools/java/chapters/images/prometheus-metrics17.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 110 KiB