From fddabfadabcdfc8a0fa428b5a7688a74877ee60b Mon Sep 17 00:00:00 2001 From: Gordon Kelly Date: Sun, 14 Jan 2018 15:15:55 +0000 Subject: [PATCH] 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 --- docker/barometer-grafana/Dockerfile | 13 ++++++--- docker/barometer-grafana/configure_grafana.sh | 19 +++++++++---- docs/release/userguide/docker.userguide.rst | 41 ++++++++++++++++++++++++--- 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/ `_ 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/ `_ 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: -- 2.16.6