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
 |