summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGordon Kelly <gordon.kelly@intel.com>2017-12-16 12:11:40 +0000
committerMaryam Tahhan <maryam.tahhan@intel.com>2018-01-10 15:14:27 +0000
commit4dff681899d1f609f9e1bbdd171adb00fe6c0fc6 (patch)
tree2d1cb5167cce36189afba8456080a1319725e49b
parenteda0dc0173f6f27aa393f05a9ee3365c3e58e021 (diff)
docker: add barometer/grafana grafana
Change-Id: I6352b908ee1fc0819e19f786d73897fd6db841e6 Signed-off-by: gordonkelly <gordon.kelly@intel.com>
-rw-r--r--docker/grafana/Dockerfile5
-rwxr-xr-xdocker/grafana/configure_grafana.sh27
-rw-r--r--docker/grafana/run.sh70
3 files changed, 102 insertions, 0 deletions
diff --git a/docker/grafana/Dockerfile b/docker/grafana/Dockerfile
new file mode 100644
index 00000000..e459531b
--- /dev/null
+++ b/docker/grafana/Dockerfile
@@ -0,0 +1,5 @@
+FROM grafana/grafana:latest
+
+COPY ./configure_grafana.sh /
+COPY ./run.sh /
+RUN chmod 755 run.sh configure_grafana.sh
diff --git a/docker/grafana/configure_grafana.sh b/docker/grafana/configure_grafana.sh
new file mode 100755
index 00000000..0b185297
--- /dev/null
+++ b/docker/grafana/configure_grafana.sh
@@ -0,0 +1,27 @@
+# Copyright 2017 OPNFV
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+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}'
+
+FILES=/var/lib/grafana/dashboards/*.json
+for f in $FILES
+do
+ curl -u admin:admin -X POST -H 'content-type: application/json' \
+ http://127.0.0.1:3000/api/dashboards/db -d @$f ;
+done
diff --git a/docker/grafana/run.sh b/docker/grafana/run.sh
new file mode 100644
index 00000000..5b9a8191
--- /dev/null
+++ b/docker/grafana/run.sh
@@ -0,0 +1,70 @@
+#!/bin/bash -e
+# Copyright 2014-2016 Torkel Ödegaard, Raintank Inc.
+# Modifications Copyright 2017 OPNFV
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+: "${GF_PATHS_CONFIG:=/etc/grafana/grafana.ini}"
+: "${GF_PATHS_DATA:=/var/lib/grafana}"
+: "${GF_PATHS_LOGS:=/var/log/grafana}"
+: "${GF_PATHS_PLUGINS:=/var/lib/grafana/plugins}"
+
+chown -R grafana:grafana "$GF_PATHS_DATA" "$GF_PATHS_LOGS"
+chown -R grafana:grafana /etc/grafana
+
+
+if [ ! -z ${GF_AWS_PROFILES+x} ]; then
+ mkdir -p ~grafana/.aws/
+ touch ~grafana/.aws/credentials
+
+ for profile in ${GF_AWS_PROFILES}; do
+ access_key_varname="GF_AWS_${profile}_ACCESS_KEY_ID"
+ secret_key_varname="GF_AWS_${profile}_SECRET_ACCESS_KEY"
+ region_varname="GF_AWS_${profile}_REGION"
+
+ if [ ! -z "${!access_key_varname}" -a ! -z "${!secret_key_varname}" ]; then
+ echo "[${profile}]" >> ~grafana/.aws/credentials
+ echo "aws_access_key_id = ${!access_key_varname}" >> ~grafana/.aws/credentials
+ echo "aws_secret_access_key = ${!secret_key_varname}" >> ~grafana/.aws/credentials
+ if [ ! -z "${!region_varname}" ]; then
+ echo "region = ${!region_varname}" >> ~grafana/.aws/credentials
+ fi
+ fi
+ done
+
+ chown grafana:grafana -R ~grafana/.aws
+ chmod 600 ~grafana/.aws/credentials
+fi
+
+if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then
+ OLDIFS=$IFS
+ IFS=','
+ for plugin in ${GF_INSTALL_PLUGINS}; do
+ IFS=$OLDIFS
+ gosu grafana grafana-cli --pluginsDir "${GF_PATHS_PLUGINS}" plugins install ${plugin}
+ done
+fi
+
+/bin/bash ./configure_grafana.sh &
+
+exec gosu grafana /usr/sbin/grafana-server \
+ --homepath=/usr/share/grafana \
+ --config="$GF_PATHS_CONFIG" \
+ cfg:default.log.mode="console" \
+ cfg:default.paths.data="$GF_PATHS_DATA" \
+ cfg:default.paths.logs="$GF_PATHS_LOGS" \
+ cfg:default.paths.plugins="$GF_PATHS_PLUGINS" \
+ "$@"
+
+
+