diff options
Diffstat (limited to 'tools/performance/cloud/snapshot-loader')
6 files changed, 121 insertions, 0 deletions
diff --git a/tools/performance/cloud/snapshot-loader/.gitignore b/tools/performance/cloud/snapshot-loader/.gitignore new file mode 100644 index 00000000..9522d705 --- /dev/null +++ b/tools/performance/cloud/snapshot-loader/.gitignore @@ -0,0 +1 @@ +current-snapshot diff --git a/tools/performance/cloud/snapshot-loader/docker-compose.yml b/tools/performance/cloud/snapshot-loader/docker-compose.yml new file mode 100644 index 00000000..7a73d35f --- /dev/null +++ b/tools/performance/cloud/snapshot-loader/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.5" +services: + prometheus: + image: prom/prometheus + command: "--storage.tsdb.path=/snapshot/current-snapshot/ --config.file=/etc/prometheus/prometheus.yml" + user: root + ports: + - "9090:9090" + volumes: + - ./current-snapshot/:/snapshot/current-snapshot/ + - ./prometheus.yml:/etc/prometheus/prometheus.yml + + grafana: + image: grafana/grafana + ports: + - "3000:3000" + environment: + GF_AUTH_DISABLE_LOGIN_FORM: "true" + GF_AUTH_DISABLE_SIGNOUT_MENU: "true" + GF_AUTH_ANONYMOUS_ENABLED: "true" + GF_AUTH_ANONYMOUS_ORG_ROLE: "Admin" + volumes: + - ./grafana/datasources:/etc/grafana/provisioning/datasources + - ./grafana/dashboards-providers:/etc/grafana/provisioning/dashboards + - ../grafana/dashboards:/var/lib/grafana/dashboards/hv-ves diff --git a/tools/performance/cloud/snapshot-loader/grafana/dashboards-providers/dashboard-providers.yaml b/tools/performance/cloud/snapshot-loader/grafana/dashboards-providers/dashboard-providers.yaml new file mode 100644 index 00000000..78da55c9 --- /dev/null +++ b/tools/performance/cloud/snapshot-loader/grafana/dashboards-providers/dashboard-providers.yaml @@ -0,0 +1,10 @@ +apiVersion: 1 + +providers: +- name: 'hv-ves-dashboards' + folder: '' + type: file + disableDeletion: false + updateIntervalSeconds: 10 + options: + path: /var/lib/grafana/dashboards/hv-ves
\ No newline at end of file diff --git a/tools/performance/cloud/snapshot-loader/grafana/datasources/prometheus.yaml b/tools/performance/cloud/snapshot-loader/grafana/datasources/prometheus.yaml new file mode 100644 index 00000000..80717b08 --- /dev/null +++ b/tools/performance/cloud/snapshot-loader/grafana/datasources/prometheus.yaml @@ -0,0 +1,11 @@ +apiVersion: 1 + +datasources: +- name: Prometheus + type: prometheus + access: proxy + url: http://prometheus:9090 + isDefault: true + editable: true + jsonData: + timeInterval: '5s' diff --git a/tools/performance/cloud/snapshot-loader/load-snapshot.sh b/tools/performance/cloud/snapshot-loader/load-snapshot.sh new file mode 100755 index 00000000..986c3c7f --- /dev/null +++ b/tools/performance/cloud/snapshot-loader/load-snapshot.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash +# ============LICENSE_START======================================================= +# dcaegen2-collectors-veshv +# ================================================================================ +# Copyright (C) 2020 NOKIA +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= + +SNAPSHOT_PATH=$1 +OPEN=$2 +if [ ! -d $SNAPSHOT_PATH ] || [ -v $SNAPSHOT_PATH ]; then + echo "Usage: ./load-snapshot.sh <PATH-TO-SNAPSHOT>" + echo "To automatically open links use: ./load-snapshot.sh <PATH-TO-SNAPSHOT> -o" + echo "Important: path to snapshot must point to prometheus timestamped folder" + echo "Example: ~/prometheus-snapshot/20200409T123412Z-2e3108dabb158644" + exit 1 +fi + +docker-compose down > /dev/null 2> /dev/null +mkdir -p current-snapshot +rm -rf current-snapshot > /dev/null 2> /dev/null +cp -r $SNAPSHOT_PATH/* ./current-snapshot/ +docker-compose up -d + +echo "Waiting for Grafana up..." +sleep 10 + +TIME=$(echo $SNAPSHOT_PATH | sed -r 's/(.*)Z-.*/\1/') +TIME=$(echo $TIME | sed -r 's/.*\/(.*)/\1/') +TIME=$(echo $TIME | sed -r 's/(.*)T(..)(..)(..)/\1 \2:\3:\4/') + +EPOCH_END=$(date +'%s' -u -d "$TIME") +EPOCH_DIFF_20MIN=1200 +EPOCH_START=$(expr $EPOCH_END - $EPOCH_DIFF_20MIN) +URL_TIME_ARG="from=${EPOCH_START}000&to=${EPOCH_END}000" + +GRAFANA_BASE_URL="http://localhost:3000/d/" +PROCESSING_DASHBOARD_URL=${GRAFANA_BASE_URL}"V94Kjlwmz/hv-ves-processing?orgId=1&"${URL_TIME_ARG} +PERFORMANCE_DASHBOARD_URL=${GRAFANA_BASE_URL}"ErPSMaIZk/performance-tests?orgId=1&"${URL_TIME_ARG} +KAFKA_PRODUCERS_DASHBOARD_URL=${GRAFANA_BASE_URL}"-28uHcjZk/kafka-and-producers-statistics?orgId=1&"${URL_TIME_ARG} +K8S_DASHBOARD_URL=${GRAFANA_BASE_URL}"RxjnWpjZk/k8s-metrics?orgId=1&"${URL_TIME_ARG} +CONNECTIONS_DASHBOARD_URL=${GRAFANA_BASE_URL}"bAy7xlwmk/hv-ves-connections?orgId=1&"${URL_TIME_ARG} +LATENCIES_DASHBOARD_URL=${GRAFANA_BASE_URL}"k22_V1qZk/latencies?orgId=1&"${URL_TIME_ARG} +echo "Dashboards:" +echo "HV-VES Processing:" ${PROCESSING_DASHBOARD_URL} +echo "Performance:" ${PERFORMANCE_DASHBOARD_URL} +echo "Kafka and producers statistics:" ${KAFKA_PRODUCERS_DASHBOARD_URL} +echo "K8s Metrics:" ${K8S_DASHBOARD_URL} +echo "Connections:" ${CONNECTIONS_DASHBOARD_URL} +echo "Latencies:" ${LATENCIES_DASHBOARD_URL} + +if [ "$OPEN" == "-o" ]; then + xdg-open ${PROCESSING_DASHBOARD_URL} + xdg-open ${PERFORMANCE_DASHBOARD_URL} + xdg-open ${KAFKA_PRODUCERS_DASHBOARD_URL} + xdg-open ${K8S_DASHBOARD_URL} + xdg-open ${CONNECTIONS_DASHBOARD_URL} + xdg-open ${LATENCIES_DASHBOARD_URL} +fi diff --git a/tools/performance/cloud/snapshot-loader/prometheus.yml b/tools/performance/cloud/snapshot-loader/prometheus.yml new file mode 100644 index 00000000..5239adc3 --- /dev/null +++ b/tools/performance/cloud/snapshot-loader/prometheus.yml @@ -0,0 +1,4 @@ +global: + scrape_interval: 5s + external_labels: + monitor: 'my-monitor' |