github.com/timstclair/heapster@v0.20.0-alpha1/grafana/run.sh (about) 1 #!/bin/bash 2 3 HEADER_CONTENT_TYPE="Content-Type: application/json" 4 HEADER_ACCEPT="Accept: application/json" 5 6 GRAFANA_USER=${GRAFANA_USER:-admin} 7 GRAFANA_PASSWD=${GRAFANA_PASSWD:-admin} 8 GRAFANA_PORT=${GRAFANA_PORT:-3000} 9 10 INFLUXDB_HOST=${INFLUXDB_HOST:-"monitoring-influxdb"} 11 INFLUXDB_DATABASE=${INFLUXDB_DATABASE:-k8s} 12 INFLUXDB_PASSWORD=${INFLUXDB_PASSWORD:-root} 13 INFLUXDB_PORT=${INFLUXDB_PORT:-8086} 14 INFLUXDB_USER=${INFLUXDB_USER:-root} 15 16 DASHBOARD_LOCATION=${DASHBOARD_LOCATION:-"/dashboards"} 17 18 # Allow access to dashboards without having to log in 19 export GF_AUTH_ANONYMOUS_ENABLED=true 20 export GF_SERVER_HTTP_PORT=${GRAFANA_PORT} 21 22 BACKEND_ACCESS_MODE=${BACKEND_ACCESS_MODE:-proxy} 23 INFLUXDB_SERVICE_URL=${INFLUXDB_SERVICE_URL} 24 if [ -n "$INFLUXDB_SERVICE_URL" ]; then 25 echo "Influxdb service URL is provided." 26 else 27 INFLUXDB_SERVICE_URL="http://${INFLUXDB_HOST}:${INFLUXDB_PORT}" 28 fi 29 30 echo "Using the following URL for InfluxDB: ${INFLUXDB_SERVICE_URL}" 31 echo "Using the following backend access mode for InfluxDB: ${BACKEND_ACCESS_MODE}" 32 33 set -m 34 echo "Starting Grafana in the background" 35 exec /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini cfg:default.paths.data=/var/lib/grafana cfg:default.paths.logs=/var/log/grafana & 36 37 echo "Waiting for Grafana to come up..." 38 until $(curl --fail --output /dev/null --silent http://${GRAFANA_USER}:${GRAFANA_PASSWD}@localhost:${GRAFANA_PORT}/api/org); do 39 printf "." 40 sleep 2 41 done 42 echo "Grafana is up and running." 43 echo "Creating default influxdb datasource..." 44 curl -i -XPOST -H "${HEADER_ACCEPT}" -H "${HEADER_CONTENT_TYPE}" "http://${GRAFANA_USER}:${GRAFANA_PASSWD}@localhost:${GRAFANA_PORT}/api/datasources" -d ' 45 { 46 "name": "influxdb-datasource", 47 "type": "influxdb", 48 "access": "'"${BACKEND_ACCESS_MODE}"'", 49 "isDefault": true, 50 "url": "'"${INFLUXDB_SERVICE_URL}"'", 51 "password": "'"${INFLUXDB_PASSWORD}"'", 52 "user": "'"${INFLUXDB_USER}"'", 53 "database": "'"${INFLUXDB_DATABASE}"'" 54 }' 55 56 echo "" 57 echo "Importing default dashboards..." 58 for filename in ${DASHBOARD_LOCATION}/*.json; do 59 echo "Importing ${filename} ..." 60 curl -i -XPOST --data "@${filename}" -H "${HEADER_ACCEPT}" -H "${HEADER_CONTENT_TYPE}" "http://${GRAFANA_USER}:${GRAFANA_PASSWD}@localhost:${GRAFANA_PORT}/api/dashboards/db" 61 echo "" 62 echo "Done importing ${filename}" 63 done 64 echo "" 65 echo "Bringing Grafana back to the foreground" 66 fg 67