| 
									
										
										
										
											2019-06-13 08:28:31 -07:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							| 
									
										
										
										
											2019-05-06 16:44:06 -07:00
										 |  |  | # | 
					
						
							|  |  |  | # (Re)starts the local metrics | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2019-06-13 08:28:31 -07:00
										 |  |  | set -e | 
					
						
							| 
									
										
										
										
											2019-05-06 16:44:06 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | cd "$(dirname "$0")" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Stop if already running | 
					
						
							|  |  |  | ./stop.sh | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-13 11:48:35 -07:00
										 |  |  | randomPassword() { | 
					
						
							|  |  |  |   declare p= | 
					
						
							|  |  |  |   for _ in $(seq 0 16); do | 
					
						
							|  |  |  |     p+="$((RANDOM % 10))" | 
					
						
							|  |  |  |   done | 
					
						
							|  |  |  |   echo $p | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | mkdir -p lib | 
					
						
							|  |  |  | if [[ ! -f lib/config.sh ]]; then | 
					
						
							|  |  |  |   cat > lib/config.sh <<EOF | 
					
						
							|  |  |  | INFLUXDB_ADMIN_USER=admin | 
					
						
							|  |  |  | INFLUXDB_ADMIN_PASSWORD=$(randomPassword) | 
					
						
							|  |  |  | INFLUXDB_WRITE_USER=write | 
					
						
							|  |  |  | INFLUXDB_WRITE_PASSWORD=$(randomPassword) | 
					
						
							|  |  |  | INFLUXDB_READ_USER=read | 
					
						
							|  |  |  | INFLUXDB_READ_PASSWORD=read | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | # shellcheck source=/dev/null | 
					
						
							|  |  |  | source lib/config.sh | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ ! -f lib/grafana-provisioning ]]; then | 
					
						
							|  |  |  |   cp -va grafana-provisioning lib | 
					
						
							|  |  |  |   ./adjust-dashboard-for-channel.py \
 | 
					
						
							| 
									
										
										
										
											2020-03-11 10:21:53 -07:00
										 |  |  |     lib/grafana-provisioning/dashboards/cluster-monitor.json local | 
					
						
							| 
									
										
										
										
											2019-06-13 11:48:35 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   mkdir -p lib/grafana-provisioning/datasources | 
					
						
							|  |  |  |   cat > lib/grafana-provisioning/datasources/datasource.yml <<EOF | 
					
						
							|  |  |  | apiVersion: 1 | 
					
						
							| 
									
										
										
										
											2019-06-13 08:28:31 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-13 11:48:35 -07:00
										 |  |  | datasources: | 
					
						
							|  |  |  | - name: local-influxdb | 
					
						
							|  |  |  |   type: influxdb | 
					
						
							|  |  |  |   isDefault: true | 
					
						
							|  |  |  |   access: proxy | 
					
						
							|  |  |  |   database: testnet | 
					
						
							|  |  |  |   user: $INFLUXDB_READ_USER | 
					
						
							|  |  |  |   password: $INFLUXDB_READ_PASSWORD | 
					
						
							|  |  |  |   url: http://influxdb:8086 | 
					
						
							|  |  |  |   editable: true | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set -x | 
					
						
							| 
									
										
										
										
											2019-06-13 09:03:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-03 18:44:49 -06:00
										 |  |  | : "${INFLUXDB_IMAGE:=influxdb:1.7}" | 
					
						
							| 
									
										
										
										
											2019-06-11 13:22:47 -07:00
										 |  |  | : "${GRAFANA_IMAGE:=solanalabs/grafana:stable}" | 
					
						
							| 
									
										
										
										
											2019-05-06 16:44:06 -07:00
										 |  |  | : "${GRAFANA_IMAGE:=grafana/grafana:5.2.3}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | docker pull $INFLUXDB_IMAGE | 
					
						
							|  |  |  | docker pull $GRAFANA_IMAGE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | docker network remove influxdb || true | 
					
						
							|  |  |  | docker network create influxdb | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-13 11:48:35 -07:00
										 |  |  | cat > "$PWD"/lib/influx-env-file <<EOF | 
					
						
							|  |  |  | INFLUXDB_ADMIN_USER=$INFLUXDB_ADMIN_USER | 
					
						
							|  |  |  | INFLUXDB_ADMIN_PASSWORD=$INFLUXDB_ADMIN_PASSWORD | 
					
						
							|  |  |  | INFLUXDB_READ_USER=$INFLUXDB_READ_USER | 
					
						
							|  |  |  | INFLUXDB_READ_PASSWORD=$INFLUXDB_READ_PASSWORD | 
					
						
							|  |  |  | INFLUXDB_WRITE_USER=$INFLUXDB_WRITE_USER | 
					
						
							|  |  |  | INFLUXDB_WRITE_PASSWORD=$INFLUXDB_WRITE_PASSWORD | 
					
						
							|  |  |  | INFLUXDB_DB=testnet | 
					
						
							|  |  |  | EOF | 
					
						
							| 
									
										
										
										
											2019-06-13 12:54:43 -07:00
										 |  |  | mkdir -p lib/influxdb | 
					
						
							| 
									
										
										
										
											2019-05-06 16:44:06 -07:00
										 |  |  | docker run \
 | 
					
						
							|  |  |  |   --detach \
 | 
					
						
							|  |  |  |   --name=influxdb \
 | 
					
						
							|  |  |  |   --net=influxdb \
 | 
					
						
							|  |  |  |   --publish 8086:8086 \
 | 
					
						
							|  |  |  |   --user "$(id -u):$(id -g)" \
 | 
					
						
							|  |  |  |   --volume "$PWD"/influxdb.conf:/etc/influxdb/influxdb.conf:ro \
 | 
					
						
							|  |  |  |   --volume "$PWD"/lib/influxdb:/var/lib/influxdb \
 | 
					
						
							| 
									
										
										
										
											2019-06-13 11:48:35 -07:00
										 |  |  |   --env-file "$PWD"/lib/influx-env-file \
 | 
					
						
							| 
									
										
										
										
											2019-05-06 16:44:06 -07:00
										 |  |  |   $INFLUXDB_IMAGE -config /etc/influxdb/influxdb.conf /init-influxdb.sh | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-13 11:48:35 -07:00
										 |  |  | cat > "$PWD"/lib/grafana-env-file <<EOF | 
					
						
							|  |  |  | GF_PATHS_CONFIG=/grafana.ini | 
					
						
							|  |  |  | GF_SECURITY_ADMIN_USER=$INFLUXDB_ADMIN_USER | 
					
						
							|  |  |  | GF_SECURITY_ADMIN_PASSWORD=$INFLUXDB_ADMIN_PASSWORD | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-13 12:54:43 -07:00
										 |  |  | mkdir -p lib/grafana | 
					
						
							| 
									
										
										
										
											2019-05-06 16:44:06 -07:00
										 |  |  | docker run \
 | 
					
						
							|  |  |  |   --detach \
 | 
					
						
							|  |  |  |   --name=grafana \
 | 
					
						
							|  |  |  |   --net=influxdb \
 | 
					
						
							|  |  |  |   --publish 3000:3000 \
 | 
					
						
							|  |  |  |   --user "$(id -u):$(id -g)" \
 | 
					
						
							| 
									
										
										
										
											2019-06-13 11:48:35 -07:00
										 |  |  |   --env-file "$PWD"/lib/grafana-env-file \
 | 
					
						
							| 
									
										
										
										
											2019-05-06 16:44:06 -07:00
										 |  |  |   --volume "$PWD"/grafana.ini:/grafana.ini:ro \
 | 
					
						
							|  |  |  |   --volume "$PWD"/lib/grafana:/var/lib/grafana \
 | 
					
						
							| 
									
										
										
										
											2019-06-13 11:48:35 -07:00
										 |  |  |   --volume "$PWD"/lib/grafana-provisioning/:/etc/grafana/provisioning:ro \
 | 
					
						
							| 
									
										
										
										
											2019-05-06 16:44:06 -07:00
										 |  |  |   $GRAFANA_IMAGE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | sleep 5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ./status.sh |