aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGordon Kelly <gordon.kelly@intel.com>2018-01-14 15:15:55 +0000
committerMaryam Tahhan <maryam.tahhan@intel.com>2018-01-23 09:47:57 +0000
commitfddabfadabcdfc8a0fa428b5a7688a74877ee60b (patch)
tree11bdbd4731e48e4f98bb462f20186366618fa5c4
parent7a803394c9b74aa0af41ceb16c6d2d735cca7382 (diff)
docker: updated grafana image to continue to send API request to grafana
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>
-rw-r--r--docker/barometer-grafana/Dockerfile13
-rwxr-xr-xdocker/barometer-grafana/configure_grafana.sh19
-rw-r--r--docs/release/userguide/docker.userguide.rst41
3 files changed, 59 insertions, 14 deletions
diff --git a/docker/barometer-grafana/Dockerfile b/docker/barometer-grafana/Dockerfile
index 32a78862..610e8086 100644
--- a/docker/barometer-grafana/Dockerfile
+++ b/docker/barometer-grafana/Dockerfile
@@ -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
diff --git a/docker/barometer-grafana/configure_grafana.sh b/docker/barometer-grafana/configure_grafana.sh
index 0b185297..abe85824 100755
--- a/docker/barometer-grafana/configure_grafana.sh
+++ b/docker/barometer-grafana/configure_grafana.sh
@@ -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.
@@ -12,14 +12,21 @@
# 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' \
diff --git a/docs/release/userguide/docker.userguide.rst b/docs/release/userguide/docker.userguide.rst
index ace38f8d..f0fa46e4 100644
--- a/docs/release/userguide/docker.userguide.rst
+++ b/docs/release/userguide/docker.userguide.rst
@@ -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: