docker: updated grafana image to continue to send API request to grafana 55/50655/9
authorGordon Kelly <gordon.kelly@intel.com>
Sun, 14 Jan 2018 15:15:55 +0000 (15:15 +0000)
committerMaryam Tahhan <maryam.tahhan@intel.com>
Tue, 23 Jan 2018 09:47:57 +0000 (09:47 +0000)
Updated grafana image to continue to send API request to grafana server
at 1 sec intervals at start time until grafana server is up and listening
on port. Dashboards folder has been moved to /opt/grafana/dashboards.
Documentation updated accordingly for all changes

Change-Id: I748b05372f0aa0890d3befa5645834fb217db784
Signed-off-by: gordonkelly <gordon.kelly@intel.com>
docker/barometer-grafana/Dockerfile
docker/barometer-grafana/configure_grafana.sh
docs/release/userguide/docker.userguide.rst

index 32a7886..610e808 100644 (file)
@@ -1,6 +1,11 @@
-FROM grafana/grafana:latest
+FROM grafana/grafana:4.6.3
 
-COPY ./configure_grafana.sh /
+ENV grafana_folder /opt/grafana
+RUN mkdir -p ${grafana_folder}/dashboards/
+
+COPY ./configure_grafana.sh ${grafana_folder}
 COPY ./run.sh /
-COPY ./dashboards/ /var/lib/grafana/dashboards/
-RUN chmod 755 run.sh configure_grafana.sh
+COPY ./dashboards/ ${grafana_folder}/dashboards/
+
+WORKDIR $grafana_folder
+RUN chmod 755 /run.sh configure_grafana.sh
index 0b18529..abe8582 100755 (executable)
@@ -1,4 +1,4 @@
-# Copyright 2017 OPNFV
+# Copyright 2017-2018 OPNFV, Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+if [ -z "${influxdb_host}" ]
+then
+  influxdb_host=localhost
+fi
 
-sleep 20 #allow 20 seconds for grafana complete initilization 
 
-curl -u admin:admin -X POST -H 'content-type: application/json'\
-      http://127.0.0.1:3000/api/datasources -d \
-      '{"name":"collectd","type":"influxdb","url":"http://localhost:8086","access":"proxy","isDefault":true,"database":"collectd","user":"admin","password":"admin","basicAuth":false}'
+while [ -z "$RETURN" ]
+do
+  sleep 1
+  RETURN=$(curl -u admin:admin -X POST -H 'content-type: application/json'\
+  http://127.0.0.1:3000/api/datasources -d \
+  '{"name":"collectd","type":"influxdb","url":"http://'"${influxdb_host}"':8086","access":"proxy","isDefault":true,"database":"collectd","user":"admin","password":"admin","basicAuth":false}')
+done
 
-FILES=/var/lib/grafana/dashboards/*.json
+FILES=/opt/grafana/dashboards/*.json
 for f in $FILES
 do
   curl -u admin:admin -X POST -H 'content-type: application/json' \
index ace38f8..f0fa46e 100644 (file)
@@ -291,6 +291,29 @@ Check your docker image is running
 
 Build the influxdb + Grafana docker images
 ------------------------------------------
+
+Overview
+^^^^^^^^
+The barometer-influxdb image is based on the influxdb:1.3.7 image from the influxdb dockerhub. To
+view detils on the base image please visit
+`https://hub.docker.com/_/influxdb/  <https://hub.docker.com/_/influxdb/>`_ Page includes details of
+exposed ports and configurable enviromental variables of the base image.
+
+The barometer-grafana image is based on grafana:4.6.3 image from the grafana dockerhub. To view
+details on the base image please visit
+`https://hub.docker.com/r/grafana/grafana/ <https://hub.docker.com/r/grafana/grafana/>`_ Page
+includes details on exposed ports and configurable enviromental variables of the base image.
+
+The barometer-grafana image includes pre-configured source and dashboards to display statistics exposed
+by the barometer-collectd image. The default datasource is an influxdb database running on localhost
+but the address of the influxdb server can be modified when launching the image by setting the
+environmental variables influxdb_host to IP or hostname of host on which influxdb server is running.
+
+Additional dashboards can be added to barometer-grafana by mapping a volume to /opt/grafana/dashboards.
+Incase where a folder is mounted to this volume only files included in this folder will be visible
+inside barometer-grafana. To ensure all default files are also loaded please ensure they are included in
+volume folder been mounted. Appropriate example are given in section ``Run the Grafana docker image``
+
 Download the InfluxDB and Grafana docker image
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 If you wish to use pre-built barometer project's influxdb and grafana images, you can pull the
@@ -366,7 +389,7 @@ Run the InfluxDB  docker image
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 .. code:: bash
 
-   $ sudo docker run -tid --net=host -v /var/lib/influxdb:/var/lib/influxdb -p 8086:8086 opnfv/barometer-influxdb
+   $ sudo docker run -tid --net=host -v /var/lib/influxdb:/var/lib/influxdb -p 8086:8086 -p 25826:25826  opnfv/barometer-influxdb
 
 To make some changes when the container is running run:
 
@@ -379,11 +402,21 @@ Check your docker image is running
 .. code:: bash
 
    sudo docker ps
-Run the Grafana docker image
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Run the Grafana docker image 
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Connecting to an influxdb instance running on local system and adding own custom dashboards
+
+.. code:: bash
+
+   $ sudo docker run -tid --net=host -v /var/lib/grafana:/var/lib/grafana -v ${PWD}/dashboards:/opt/grafana/dashboards -p 3000:3000 opnfv/barometer-grafana
+
+Connecting to an influxdb instance running on remote system with hostname of someserver and IP address of 192.168.121.111
+
 .. code:: bash
 
-   $ sudo docker run -tid --net=host -v /var/lib/grafana:/var/lib/grafana -p 3000:3000 opnfv/barometer-grafana
+   $ sudo docker run -tid --net=host -v /var/lib/grafana:/var/lib/grafana -p 3000:3000 -e influxdb_host=someserver --add-host someserver:192.168.121.111 opnfv/barometer-grafana
 
 To make some changes when the container is running run: