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