Add script for loading prometheus snapshots, improve grafana
[dcaegen2/collectors/hv-ves.git] / tools / performance / cloud / snapshot-loader / load-snapshot.sh
1 #!/usr/bin/env bash
2 # ============LICENSE_START=======================================================
3 # dcaegen2-collectors-veshv
4 # ================================================================================
5 # Copyright (C) 2020 NOKIA
6 # ================================================================================
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #      http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 # ============LICENSE_END=========================================================
19
20 SNAPSHOT_PATH=$1
21 OPEN=$2
22 if [ ! -d $SNAPSHOT_PATH ] || [ -v $SNAPSHOT_PATH ]; then
23   echo "Usage: ./load-snapshot.sh <PATH-TO-SNAPSHOT>"
24   echo "To automatically open links use: ./load-snapshot.sh <PATH-TO-SNAPSHOT> -o"
25   echo "Important: path to snapshot must point to prometheus timestamped folder"
26   echo "Example: ~/prometheus-snapshot/20200409T123412Z-2e3108dabb158644"
27   exit 1
28 fi
29
30 docker-compose down > /dev/null 2> /dev/null
31 mkdir -p current-snapshot
32 rm -rf current-snapshot > /dev/null 2> /dev/null
33 cp -r $SNAPSHOT_PATH/* ./current-snapshot/
34 docker-compose up -d
35
36 echo "Waiting for Grafana up..."
37 sleep 10
38
39 TIME=$(echo $SNAPSHOT_PATH | sed -r 's/(.*)Z-.*/\1/')
40 TIME=$(echo $TIME | sed -r 's/.*\/(.*)/\1/')
41 TIME=$(echo $TIME | sed -r 's/(.*)T(..)(..)(..)/\1 \2:\3:\4/')
42
43 EPOCH_END=$(date +'%s' -u -d "$TIME")
44 EPOCH_DIFF_20MIN=1200
45 EPOCH_START=$(expr $EPOCH_END - $EPOCH_DIFF_20MIN)
46 URL_TIME_ARG="from=${EPOCH_START}000&to=${EPOCH_END}000"
47
48 GRAFANA_BASE_URL="http://localhost:3000/d/"
49 PROCESSING_DASHBOARD_URL=${GRAFANA_BASE_URL}"V94Kjlwmz/hv-ves-processing?orgId=1&"${URL_TIME_ARG}
50 PERFORMANCE_DASHBOARD_URL=${GRAFANA_BASE_URL}"ErPSMaIZk/performance-tests?orgId=1&"${URL_TIME_ARG}
51 KAFKA_PRODUCERS_DASHBOARD_URL=${GRAFANA_BASE_URL}"-28uHcjZk/kafka-and-producers-statistics?orgId=1&"${URL_TIME_ARG}
52 K8S_DASHBOARD_URL=${GRAFANA_BASE_URL}"RxjnWpjZk/k8s-metrics?orgId=1&"${URL_TIME_ARG}
53 CONNECTIONS_DASHBOARD_URL=${GRAFANA_BASE_URL}"bAy7xlwmk/hv-ves-connections?orgId=1&"${URL_TIME_ARG}
54 LATENCIES_DASHBOARD_URL=${GRAFANA_BASE_URL}"k22_V1qZk/latencies?orgId=1&"${URL_TIME_ARG}
55 echo "Dashboards:"
56 echo "HV-VES Processing:" ${PROCESSING_DASHBOARD_URL}
57 echo "Performance:" ${PERFORMANCE_DASHBOARD_URL}
58 echo "Kafka and producers statistics:" ${KAFKA_PRODUCERS_DASHBOARD_URL}
59 echo "K8s Metrics:" ${K8S_DASHBOARD_URL}
60 echo "Connections:" ${CONNECTIONS_DASHBOARD_URL}
61 echo "Latencies:" ${LATENCIES_DASHBOARD_URL}
62
63 if [ "$OPEN" == "-o" ]; then
64     xdg-open ${PROCESSING_DASHBOARD_URL}
65     xdg-open ${PERFORMANCE_DASHBOARD_URL}
66     xdg-open ${KAFKA_PRODUCERS_DASHBOARD_URL}
67     xdg-open ${K8S_DASHBOARD_URL}
68     xdg-open ${CONNECTIONS_DASHBOARD_URL}
69     xdg-open ${LATENCIES_DASHBOARD_URL}
70 fi