100 lines
4.9 KiB
Bash
Executable File
100 lines
4.9 KiB
Bash
Executable File
#!/bin/bash -eu
|
|
|
|
# Copyright 2018 ConsenSys AG.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
# the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations under the License.
|
|
|
|
NO_LOCK_REQUIRED=false
|
|
|
|
. ./.env
|
|
. ./.common.sh
|
|
dots=""
|
|
maxRetryCount=50
|
|
HOST=${DOCKER_PORT_2375_TCP_ADDR:-"localhost"}
|
|
|
|
# Displays links to exposed services
|
|
echo "${bold}*************************************"
|
|
echo "Quorum Dev Quickstart "
|
|
echo "*************************************${normal}"
|
|
|
|
elk_setup=true
|
|
if [ -z `docker compose -f docker-compose.yml ps -q kibana 2>/dev/null` ] ; then
|
|
elk_setup=false
|
|
fi
|
|
if [ $elk_setup == true ]; then
|
|
while [ "$(curl -m 10 -s -o /dev/null -w ''%{http_code}'' http://${HOST}:5601/api/status)" != "200" ] && [ ${#dots} -le ${maxRetryCount} ]
|
|
do
|
|
dots=$dots"."
|
|
printf "Kibana is starting, please wait $dots\\r"
|
|
sleep 10
|
|
done
|
|
|
|
echo "Setting up the index patterns in kibana ..."
|
|
if [ -z `docker ps -q --filter 'label=consensus=goquorum' 2> /dev/null ` ] ; then
|
|
curl --silent --output /dev/null -X POST "http://${HOST}:5601/api/saved_objects/index-pattern/besu" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d '{"attributes": {"title": "besu-*","timeFieldName": "@timestamp"}}'
|
|
curl --silent --output /dev/null -X POST "http://${HOST}:5601/api/saved_objects/index-pattern/metricbeat" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d '{"attributes": {"title": "metricbeat-*","timeFieldName": "@timestamp"}}'
|
|
curl --silent --output /dev/null -X POST "http://${HOST}:5601/api/saved_objects/_import" -H 'kbn-xsrf: true' --form file=@./config/kibana/besu_overview_dashboard.ndjson
|
|
else
|
|
curl --silent --output /dev/null -X POST "http://${HOST}:5601/api/saved_objects/index-pattern/quorum" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d '{"attributes": {"title": "quorum-*","timeFieldName": "@timestamp"}}'
|
|
fi
|
|
curl --silent --output /dev/null -X POST "http://${HOST}:5601/api/saved_objects/index-pattern/tessera" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d '{"attributes": {"title": "tessera-*","timeFieldName": "@timestamp"}}'
|
|
|
|
fi
|
|
|
|
splunk_setup=true
|
|
if [ -z `docker compose -f docker-compose.yml ps -q splunk 2>/dev/null` ] ; then
|
|
splunk_setup=false
|
|
fi
|
|
if [ $splunk_setup == true ]; then
|
|
while [ "$(docker inspect --format='{{json .State.Health.Status}}' splunk)" != "\"healthy\"" ] && [ ${#dots} -le ${maxRetryCount} ]
|
|
do
|
|
dots=$dots"."
|
|
printf "Splunk is starting, please wait $dots\\r"
|
|
sleep 10
|
|
done
|
|
fi
|
|
|
|
echo "----------------------------------"
|
|
echo "List endpoints and services"
|
|
echo "----------------------------------"
|
|
|
|
echo "JSON-RPC HTTP service endpoint : http://${HOST}:8545"
|
|
echo "JSON-RPC WebSocket service endpoint : ws://${HOST}:8546"
|
|
echo "Web block explorer address : http://${HOST}:25000/explorer/nodes"
|
|
if [ ! -z `docker compose -f docker-compose.yml ps -q chainlensapi 2> /dev/null` ]; then
|
|
echo "Chainlens address : http://${HOST}:8081/"
|
|
fi
|
|
if [ ! -z `docker compose -f docker-compose.yml ps -q blockscout 2> /dev/null` ]; then
|
|
echo "Blockscout address : http://${HOST}:26000/"
|
|
fi
|
|
if [ ! -z `docker compose -f docker-compose.yml ps -q prometheus 2> /dev/null` ]; then
|
|
echo "Prometheus address : http://${HOST}:9090/graph"
|
|
fi
|
|
grafana_url="http://${HOST}:3000/d/a1lVy7ycin9Yv/goquorum-overview?orgId=1&refresh=10s&from=now-30m&to=now&var-system=All"
|
|
grafana_loki_url="http://${HOST}:3000/d/Ak6eXLsPxFemKYKEXfcH/quorum-logs-loki?orgId=1&var-app=quorum&var-search="
|
|
if [[ ! -z `docker ps -q --filter 'label=consensus=besu' 2> /dev/null ` ]]; then
|
|
grafana_url="http://${HOST}:3000/d/XE4V0WGZz/besu-overview?orgId=1&refresh=10s&from=now-30m&to=now&var-system=All"
|
|
grafana_loki_url="http://${HOST}:3000/d/Ak6eXLsPxFemKYKEXfcH/quorum-logs-loki?orgId=1&var-app=besu&var-search="
|
|
fi
|
|
if [ ! -z `docker compose -f docker-compose.yml ps -q grafana 2> /dev/null` ]; then
|
|
echo "Grafana address : $grafana_url"
|
|
echo "Collated logs using Grafana and Loki : $grafana_loki_url"
|
|
fi
|
|
|
|
if [ $elk_setup == true ]; then
|
|
echo "Collated logs using Kibana endpoint : http://${HOST}:5601/app/kibana#/discover"
|
|
fi
|
|
if [ $splunk_setup == true ]; then
|
|
echo "Logs, traces and metrics using Splunk endpoint : http://${HOST}:8000/"
|
|
fi
|
|
echo ""
|
|
echo "For more information on the endpoints and services, refer to README.md in the installation directory."
|
|
echo "****************************************************************"
|