Deploying Docker Flow Monitor is easy (as almost all Docker services are). We'll start by creating a network called monitor. We could let Docker stack create it for us, but it is useful to have it defined externally so that we can easily attach it to services from other stacks:
docker network create -d overlay monitor
The stack is as follows:
version: "3" services: monitor: image: vfarcic/docker-flow-monitor:${TAG:-latest} environment: - GLOBAL_SCRAPE_INTERVAL=10s networks: - monitor ports: - 9090:9090 networks: monitor: external: true
The environment variable GLOBAL_SCRAPE_INTERVAL shows the first improvement over the "original" Prometheus service. It allows us to define entries of its configuration as environment variables. That, in itself, is not a significant improvement but is a good start. More powerful additions will be explored later on.
Please visit environment variables section of the documentation for more information about configuration options at (http://monitor.dockerflow.com/config/#environment-variables).
Now we're ready to deploy the stack:
docker stack rm monitor docker stack deploy \ -c stacks/docker-flow-monitor.yml \ monitor
Please wait a few moments until Swarm pulls the image and starts the service. You can monitor the status by executing docker stack ps monitor command.
Once the service is running, we can confirm that the environment variable indeed generated the configuration:
open "http://$(docker-machine ip swarm-1):9090/config"
We are going to expose services url in pretty format, therefore we must get rid of port number (9090) in preceding url.