72 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
set -e
 | 
						|
 | 
						|
cd "$(dirname "$0")"
 | 
						|
 | 
						|
CHANNEL=$1
 | 
						|
if [[ -z $CHANNEL ]]; then
 | 
						|
  echo "usage: $0 [channel]"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
case $CHANNEL in
 | 
						|
edge)
 | 
						|
  DASHBOARD=cluster-telemetry-edge
 | 
						|
  ;;
 | 
						|
beta)
 | 
						|
  DASHBOARD=cluster-telemetry-beta
 | 
						|
  ;;
 | 
						|
stable)
 | 
						|
  DASHBOARD=cluster-telemetry
 | 
						|
  ;;
 | 
						|
*)
 | 
						|
  echo "Error: Invalid CHANNEL=$CHANNEL"
 | 
						|
  exit 1
 | 
						|
  ;;
 | 
						|
esac
 | 
						|
 | 
						|
 | 
						|
if [[ -z $GRAFANA_API_TOKEN ]]; then
 | 
						|
  echo Error: GRAFANA_API_TOKEN not defined
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
DASHBOARD_JSON=scripts/grafana-provisioning/dashboards/cluster-monitor.json
 | 
						|
if [[ ! -r $DASHBOARD_JSON ]]; then
 | 
						|
  echo Error: $DASHBOARD_JSON not found
 | 
						|
fi
 | 
						|
 | 
						|
(
 | 
						|
  set -x
 | 
						|
  scripts/adjust-dashboard-for-channel.py "$DASHBOARD_JSON" "$CHANNEL"
 | 
						|
)
 | 
						|
 | 
						|
rm -rf venv
 | 
						|
python3 -m venv venv
 | 
						|
# shellcheck source=/dev/null
 | 
						|
source venv/bin/activate
 | 
						|
 | 
						|
echo --- Fetch/build grafcli
 | 
						|
(
 | 
						|
  set -x
 | 
						|
  git clone git@github.com:mvines/grafcli.git -b experimental-v5 venv/grafcli
 | 
						|
  cd venv/grafcli
 | 
						|
  python3 setup.py install
 | 
						|
)
 | 
						|
 | 
						|
echo --- Take a backup of existing dashboard if possible
 | 
						|
(
 | 
						|
  set -x +e
 | 
						|
  grafcli export remote/metrics/$DASHBOARD $DASHBOARD_JSON.org
 | 
						|
  grafcli rm remote/metrics/$DASHBOARD
 | 
						|
  :
 | 
						|
)
 | 
						|
 | 
						|
echo --- Publish $DASHBOARD_JSON to $DASHBOARD
 | 
						|
(
 | 
						|
  set -x
 | 
						|
  grafcli import "$DASHBOARD_JSON" remote/metrics
 | 
						|
)
 | 
						|
 | 
						|
exit 0
 |