github.com/intelsdi-x/heapster@v1.2.1-0.20221107230227-7f05c7c5dbad/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=${GF_AUTH_ANONYMOUS_ENABLED:-true} 20 export GF_SERVER_HTTP_PORT=${GRAFANA_PORT} 21 22 GF_SERVER_PROTOCOL=${GF_SERVER_PROTOCOL:-http} 23 24 BACKEND_ACCESS_MODE=${BACKEND_ACCESS_MODE:-proxy} 25 INFLUXDB_SERVICE_URL=${INFLUXDB_SERVICE_URL} 26 if [ -n "$INFLUXDB_SERVICE_URL" ]; then 27 echo "Influxdb service URL is provided." 28 else 29 INFLUXDB_SERVICE_URL="http://${INFLUXDB_HOST}:${INFLUXDB_PORT}" 30 fi 31 32 echo "Using the following URL for InfluxDB: ${INFLUXDB_SERVICE_URL}" 33 echo "Using the following backend access mode for InfluxDB: ${BACKEND_ACCESS_MODE}" 34 35 set -m 36 echo "Starting Grafana in the background" 37 exec /usr/sbin/grafana-server --homepath=/usr/share/grafana --config=/etc/grafana/grafana.ini cfg:default.paths.data=/var/lib/grafana cfg:default.paths.logs=/var/log/grafana & 38 39 echo "Waiting for Grafana to come up..." 40 until $(curl -k --fail --output /dev/null --silent ${GF_SERVER_PROTOCOL}://${GRAFANA_USER}:${GRAFANA_PASSWD}@localhost:${GRAFANA_PORT}/api/org); do 41 printf "." 42 sleep 2 43 done 44 echo "Grafana is up and running." 45 echo "Creating default influxdb datasource..." 46 curl -k -i -XPOST -H "${HEADER_ACCEPT}" -H "${HEADER_CONTENT_TYPE}" "${GF_SERVER_PROTOCOL}://${GRAFANA_USER}:${GRAFANA_PASSWD}@localhost:${GRAFANA_PORT}/api/datasources" -d ' 47 { 48 "name": "influxdb-datasource", 49 "type": "influxdb", 50 "access": "'"${BACKEND_ACCESS_MODE}"'", 51 "isDefault": true, 52 "url": "'"${INFLUXDB_SERVICE_URL}"'", 53 "password": "'"${INFLUXDB_PASSWORD}"'", 54 "user": "'"${INFLUXDB_USER}"'", 55 "database": "'"${INFLUXDB_DATABASE}"'" 56 }' 57 58 echo "" 59 echo "Importing default dashboards..." 60 for filename in ${DASHBOARD_LOCATION}/*.json; do 61 echo "Importing ${filename} ..." 62 curl -k -i -XPOST --data "@${filename}" -H "${HEADER_ACCEPT}" -H "${HEADER_CONTENT_TYPE}" "${GF_SERVER_PROTOCOL}://${GRAFANA_USER}:${GRAFANA_PASSWD}@localhost:${GRAFANA_PORT}/api/dashboards/db" 63 echo "" 64 echo "Done importing ${filename}" 65 done 66 echo "" 67 echo "Bringing Grafana back to the foreground" 68 fg 69