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