From 8838f2044f45451e2c7a86d374c2b3d39714405b Mon Sep 17 00:00:00 2001 From: Remigiusz Janeczek Date: Tue, 21 Apr 2020 15:40:52 +0200 Subject: [PATCH] Add script for loading prometheus snapshots, improve grafana 1. Add scripts for loading prometheus snapshots locally 2. Improve Grafana dashboards for performance tests 3. Improve Grafana dashboards management (now there's one configmap for all dashboards and to add new dashboard only needed change is adding new json file in grafana/dashboards directory) 4. Add prometheus job for scraping node metrics and add deployment yaml for node exporter Issue-ID: DCAEGEN2-1576 Signed-off-by: Remigiusz Janeczek Change-Id: I8870fd3291711b5dc09b76a7bf86ac4d13725237 --- .../cloud/cloud-based-performance-test.sh | 20 +- tools/performance/cloud/grafana-deployment.yaml | 32 +- .../grafana/dashboards-providers/dashboards.yaml | 34 +- .../{connections.yaml => connections.json} | 31 +- .../{k8s-metrics.yaml => k8s-metrics.json} | 27 - .../grafana/dashboards/kafka-and-producers.json | 747 +++++++++++++ .../grafana/dashboards/kafka-and-producers.yaml | 774 ------------- .../cloud/grafana/dashboards/latencies.json | 448 ++++++++ ...rformance-tests.yaml => performance-tests.json} | 29 +- .../cloud/grafana/dashboards/processing.json | 952 ++++++++++++++++ .../cloud/grafana/dashboards/processing.yaml | 1156 -------------------- tools/performance/cloud/node-exporter.yaml | 39 + .../cloud/prometheus/prometheus-config-map.yaml | 33 + tools/performance/cloud/snapshot-loader/.gitignore | 1 + .../cloud/snapshot-loader/docker-compose.yml | 25 + .../dashboards-providers/dashboard-providers.yaml | 10 + .../grafana/datasources/prometheus.yaml | 11 + .../cloud/snapshot-loader/load-snapshot.sh | 70 ++ .../cloud/snapshot-loader/prometheus.yml | 4 + 19 files changed, 2358 insertions(+), 2085 deletions(-) rename tools/performance/cloud/grafana/dashboards/{connections.yaml => connections.json} (93%) rename tools/performance/cloud/grafana/dashboards/{k8s-metrics.yaml => k8s-metrics.json} (92%) create mode 100644 tools/performance/cloud/grafana/dashboards/kafka-and-producers.json delete mode 100644 tools/performance/cloud/grafana/dashboards/kafka-and-producers.yaml create mode 100644 tools/performance/cloud/grafana/dashboards/latencies.json rename tools/performance/cloud/grafana/dashboards/{performance-tests.yaml => performance-tests.json} (91%) create mode 100644 tools/performance/cloud/grafana/dashboards/processing.json delete mode 100644 tools/performance/cloud/grafana/dashboards/processing.yaml create mode 100644 tools/performance/cloud/node-exporter.yaml create mode 100644 tools/performance/cloud/snapshot-loader/.gitignore create mode 100644 tools/performance/cloud/snapshot-loader/docker-compose.yml create mode 100644 tools/performance/cloud/snapshot-loader/grafana/dashboards-providers/dashboard-providers.yaml create mode 100644 tools/performance/cloud/snapshot-loader/grafana/datasources/prometheus.yaml create mode 100755 tools/performance/cloud/snapshot-loader/load-snapshot.sh create mode 100644 tools/performance/cloud/snapshot-loader/prometheus.yml diff --git a/tools/performance/cloud/cloud-based-performance-test.sh b/tools/performance/cloud/cloud-based-performance-test.sh index bd699a65..2365cc4d 100755 --- a/tools/performance/cloud/cloud-based-performance-test.sh +++ b/tools/performance/cloud/cloud-based-performance-test.sh @@ -29,7 +29,7 @@ PROMETHEUS_CONF_LABEL=prometheus-server-conf PROMETHEUS_APPS_LABEL=hv-collector-prometheus GRAFANA_APPS_LABEL=hv-collector-grafana GRAFANA_DATASOURCE=grafana-datasources -GRAFANA_DASHBOARD=grafana-dashboards +GRAFANA_DASHBOARDS=grafana-dashboards GRAFANA_DASHBOARD_PROVIDERS=grafana-dashboards-providers ONAP_NAMESPACE=onap MAXIMUM_BACK_OFF_CHECK_ITERATIONS=30 @@ -60,8 +60,8 @@ function clean() { echo "Attempting to delete grafana deployment and service" kubectl delete service,deployments -l app=${GRAFANA_APPS_LABEL} -n ${ONAP_NAMESPACE} - echo "Attempting to delete grafana ConfigMap (DASHBOARD)" - kubectl delete configmap -l name=${GRAFANA_DASHBOARD} -n ${ONAP_NAMESPACE} + echo "Attempting to delete grafana ConfigMap (DASHBOARDS)" + kubectl delete configmap ${GRAFANA_DASHBOARDS} -n ${ONAP_NAMESPACE} echo "Attempting to delete grafana ConfigMap (GRAFANA_DASHBOARD_PROVIDERS)" kubectl delete configmap -l name=${GRAFANA_DASHBOARD_PROVIDERS} -n ${ONAP_NAMESPACE} @@ -203,19 +203,7 @@ function setup_environment() { kubectl apply -f prometheus-deployment.yaml echo "Creating ConfigMap for grafana connections dashboard" - kubectl apply -f grafana/dashboards/connections.yaml - - echo "Creating ConfigMap for grafana processing dashboard" - kubectl apply -f grafana/dashboards/processing.yaml - - echo "Creating ConfigMap for grafana grafana-performance-tests dashboard" - kubectl apply -f grafana/dashboards/performance-tests.yaml - - echo "Creating ConfigMap for grafana grafana-kafka-and-producers dashboard" - kubectl apply -f grafana/dashboards/kafka-and-producers.yaml - - echo "Creating ConfigMap for grafana grafana-k8s-metrics dashboard" - kubectl apply -f grafana/dashboards/k8s-metrics.yaml + kubectl create configmap ${GRAFANA_DASHBOARDS} -n ${ONAP_NAMESPACE} --from-file grafana/dashboards/ echo "Creating ConfigMap for grafana datasource" kubectl apply -f grafana/datasources/datasource.yaml diff --git a/tools/performance/cloud/grafana-deployment.yaml b/tools/performance/cloud/grafana-deployment.yaml index 89e9d909..0a7cda23 100644 --- a/tools/performance/cloud/grafana-deployment.yaml +++ b/tools/performance/cloud/grafana-deployment.yaml @@ -50,40 +50,20 @@ spec: volumeMounts: - name: grafana-datasources mountPath: /etc/grafana/provisioning/datasources - - name: grafana-dashboards + - name: grafana-dashboards-providers mountPath: /etc/grafana/provisioning/dashboards - - name: grafana-connections - mountPath: /grafana/connections - - name: grafana-performance-tests - mountPath: /grafana/performance-tests - - name: grafana-processing - mountPath: /grafana/processing - - name: grafana-kafka-and-producers - mountPath: /grafana/kafka-and-producers - - name: grafana-k8s-metrics - mountPath: /grafana/k8s-metrics + - name: grafana-dashboards + mountPath: /etc/grafana/dashboards/hv-ves volumes: - name: grafana-datasources configMap: name: grafana-datasources + - name: grafana-dashboards-providers + configMap: + name: grafana-dashboards-providers - name: grafana-dashboards configMap: name: grafana-dashboards - - name: grafana-connections - configMap: - name: grafana-connections - - name: grafana-performance-tests - configMap: - name: grafana-performance-tests - - name: grafana-processing - configMap: - name: grafana-processing - - name: grafana-kafka-and-producers - configMap: - name: grafana-kafka-and-producers - - name: grafana-k8s-metrics - configMap: - name: grafana-k8s-metrics --- apiVersion: v1 kind: Service diff --git a/tools/performance/cloud/grafana/dashboards-providers/dashboards.yaml b/tools/performance/cloud/grafana/dashboards-providers/dashboards.yaml index 2701d492..24bd3b8b 100644 --- a/tools/performance/cloud/grafana/dashboards-providers/dashboards.yaml +++ b/tools/performance/cloud/grafana/dashboards-providers/dashboards.yaml @@ -21,38 +21,14 @@ kind: ConfigMap metadata: labels: name: grafana-dashboards-providers - name: grafana-dashboards + name: grafana-dashboards-providers namespace: onap data: dashboards.yaml: |- - - name: 'connections' - org_id: 1 + - name: 'hv-ves-dashboards' folder: '' type: file + disableDeletion: false + updateIntervalSeconds: 10 options: - path: /grafana/connections - - name: 'performance_tests' - org_id: 1 - folder: '' - type: file - options: - path: /grafana/performance-tests - - name: 'processing' - org_id: 1 - folder: '' - type: file - options: - path: /grafana/processing - - name: 'kafka-and-producers' - org_id: 1 - folder: '' - type: file - options: - path: /grafana/kafka-and-producers - - name: 'k8s-metrics' - org_id: 1 - folder: '' - type: file - options: - path: /grafana/k8s-metrics - + path: /etc/grafana/dashboards/hv-ves diff --git a/tools/performance/cloud/grafana/dashboards/connections.yaml b/tools/performance/cloud/grafana/dashboards/connections.json similarity index 93% rename from tools/performance/cloud/grafana/dashboards/connections.yaml rename to tools/performance/cloud/grafana/dashboards/connections.json index 909bf998..d273c3c9 100644 --- a/tools/performance/cloud/grafana/dashboards/connections.yaml +++ b/tools/performance/cloud/grafana/dashboards/connections.json @@ -1,31 +1,4 @@ -# ============LICENSE_START======================================================= -# dcaegen2-collectors-veshv -# ================================================================================ -# Copyright (C) 2019 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========================================================= - -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-connections - namespace: onap - labels: - name: grafana-dashboards -data: - connections.json: |- - { +{ "annotations": { "list": [ { @@ -597,4 +570,4 @@ data: "title": "HV-VES connections", "uid": "bAy7xlwmk", "version": 1 - } \ No newline at end of file + } diff --git a/tools/performance/cloud/grafana/dashboards/k8s-metrics.yaml b/tools/performance/cloud/grafana/dashboards/k8s-metrics.json similarity index 92% rename from tools/performance/cloud/grafana/dashboards/k8s-metrics.yaml rename to tools/performance/cloud/grafana/dashboards/k8s-metrics.json index c91661bf..676d0a93 100644 --- a/tools/performance/cloud/grafana/dashboards/k8s-metrics.yaml +++ b/tools/performance/cloud/grafana/dashboards/k8s-metrics.json @@ -1,30 +1,3 @@ -# ============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========================================================= - -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-k8s-metrics - namespace: onap - labels: - name: grafana-dashboards -data: - k8s-metrics.json: |- { "annotations": { "list": [ diff --git a/tools/performance/cloud/grafana/dashboards/kafka-and-producers.json b/tools/performance/cloud/grafana/dashboards/kafka-and-producers.json new file mode 100644 index 00000000..77150538 --- /dev/null +++ b/tools/performance/cloud/grafana/dashboards/kafka-and-producers.json @@ -0,0 +1,747 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "id": 4, + "links": [], + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 11, + "w": 8, + "x": 0, + "y": 0 + }, + "hiddenSeries": false, + "id": 12, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_network_transmit_bytes_total{pod=~\".*producer.*\"}[1m]))", + "interval": "", + "legendFormat": "Total Transmit Producers", + "refId": "A" + }, + { + "expr": "sum(irate(container_network_transmit_bytes_total{pod=~\".*kafka-.\"}[1m]))", + "interval": "", + "legendFormat": "Total Transmit Kafka", + "refId": "B" + }, + { + "expr": "irate(container_network_transmit_bytes_total{pod=~\".*producer.*\"}[1m])", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "C" + }, + { + "expr": "irate(container_network_transmit_bytes_total{pod=~\".*kafka-.\"}[1m])", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Network Usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 11, + "w": 8, + "x": 8, + "y": 0 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(container_network_transmit_bytes_total{pod=~\".*kafka-.|.*hv-ves-coll.*|.*producer.*\"}[1m]))", + "hide": false, + "interval": "", + "legendFormat": "Total transmit", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Total network usage (producers + hv-ves + kafka)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 11, + "w": 8, + "x": 16, + "y": 0 + }, + "hiddenSeries": false, + "id": 2, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "irate(container_network_receive_bytes_total{pod=~\"dep-dcae-hv-ves-collector.*\"}[1m])", + "hide": false, + "interval": "", + "legendFormat": "receive", + "refId": "A" + }, + { + "expr": "irate(container_network_transmit_bytes_total{pod=~\"dep-dcae-hv-ves-collector.*\"}[1m])", + "interval": "", + "legendFormat": "transmit", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "HV-VES Network Usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "Bps", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 12, + "w": 8, + "x": 0, + "y": 11 + }, + "hiddenSeries": false, + "id": 14, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum (rate (container_cpu_usage_seconds_total{pod=~\".*producer.*\"}[1m])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + }, + { + "expr": "sum (rate (container_cpu_usage_seconds_total{pod=~\".*router-kafka.*\"}[1m])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "CPU usage [cores]", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 12, + "w": 8, + "x": 8, + "y": 11 + }, + "hiddenSeries": false, + "id": 18, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{image!=\"\", pod=~\".*kafka-.\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + }, + { + "expr": "sum(container_memory_working_set_bytes{image!=\"\", pod=~\".*producer.*\"}) by (pod)", + "hide": false, + "interval": "", + "legendFormat": "{{pod}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Memory Usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "datasource": null, + "gridPos": { + "h": 6, + "w": 4, + "x": 16, + "y": 11 + }, + "id": 15, + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "lastNotNull" + ], + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto" + }, + "pluginVersion": "6.7.2", + "targets": [ + { + "expr": "sum(container_network_transmit_packets_dropped_total{pod=~\".*producer.*\"})", + "interval": "", + "legendFormat": "Packets dropped", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Packets Dropped (producers)", + "type": "stat" + }, + { + "datasource": null, + "gridPos": { + "h": 6, + "w": 4, + "x": 20, + "y": 11 + }, + "id": 4, + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "lastNotNull" + ], + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto" + }, + "pluginVersion": "6.7.2", + "targets": [ + { + "expr": "sum(container_network_transmit_packets_dropped_total{pod=~\".*hv-ves-collector.*\"})", + "interval": "", + "legendFormat": "Packets dropped", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Packets Dropped (hv-ves)", + "type": "stat" + }, + { + "datasource": null, + "gridPos": { + "h": 6, + "w": 4, + "x": 16, + "y": 17 + }, + "id": 17, + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "max" + ], + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "bytes" + }, + "overrides": [], + "values": false + }, + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto" + }, + "pluginVersion": "6.7.2", + "targets": [ + { + "expr": "sum(container_network_transmit_bytes_total{pod=~\".*producer.*\"})", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Sent (producers)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "gridPos": { + "h": 6, + "w": 4, + "x": 20, + "y": 17 + }, + "id": 16, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "max" + ], + "defaults": { + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "bytes" + }, + "overrides": [], + "values": false + }, + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal" + }, + "pluginVersion": "6.7.2", + "targets": [ + { + "expr": "container_network_receive_bytes_total{pod=~\".*hv-ves-collector.*\"}", + "interval": "", + "legendFormat": "Packets dropped", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Received (hv-ves)", + "type": "stat" + } + ], + "refresh": "", + "schemaVersion": 22, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Kafka and Producers Statistics", + "uid": "-28uHcjZk", + "variables": { + "list": [] + }, + "version": 1 +} diff --git a/tools/performance/cloud/grafana/dashboards/kafka-and-producers.yaml b/tools/performance/cloud/grafana/dashboards/kafka-and-producers.yaml deleted file mode 100644 index 74cad82d..00000000 --- a/tools/performance/cloud/grafana/dashboards/kafka-and-producers.yaml +++ /dev/null @@ -1,774 +0,0 @@ -# ============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========================================================= - -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-kafka-and-producers - namespace: onap - labels: - name: grafana-dashboards -data: - kafka-and-producers.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 4, - "links": [], - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(irate(container_network_transmit_bytes_total{pod=~\".*producer.*\"}[1m]))", - "interval": "", - "legendFormat": "Total Transmit Producers", - "refId": "A" - }, - { - "expr": "sum(irate(container_network_transmit_bytes_total{pod=~\".*kafka-.\"}[1m]))", - "interval": "", - "legendFormat": "Total Transmit Kafka", - "refId": "B" - }, - { - "expr": "irate(container_network_transmit_bytes_total{pod=~\".*producer.*\"}[1m])", - "interval": "", - "legendFormat": "{{pod}}", - "refId": "C" - }, - { - "expr": "irate(container_network_transmit_bytes_total{pod=~\".*kafka-.\"}[1m])", - "interval": "", - "legendFormat": "{{pod}}", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "Network Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 0 - }, - "hiddenSeries": false, - "id": 22, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(container_network_transmit_bytes_total{pod=~\".*kafka-.|.*hv-ves-coll.*|.*producer.*\"}[1m]))", - "hide": false, - "interval": "", - "legendFormat": "Total transmit", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "Total network usage (producers + hv-ves + kafka)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 0 - }, - "hiddenSeries": false, - "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "irate(container_network_receive_bytes_total{pod=~\"dep-dcae-hv-ves-collector.*\"}[1m])", - "hide": false, - "interval": "", - "legendFormat": "receive", - "refId": "A" - }, - { - "expr": "irate(container_network_transmit_bytes_total{pod=~\"dep-dcae-hv-ves-collector.*\"}[1m])", - "interval": "", - "legendFormat": "transmit", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "HV-VES Network Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 12, - "w": 8, - "x": 0, - "y": 11 - }, - "hiddenSeries": false, - "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum (rate (container_cpu_usage_seconds_total{pod=~\".*producer.*\"}[1m])) by (pod)", - "interval": "", - "legendFormat": "{{pod}}", - "refId": "A" - }, - { - "expr": "sum (rate (container_cpu_usage_seconds_total{pod=~\".*router-kafka.*\"}[1m])) by (pod)", - "interval": "", - "legendFormat": "{{pod}}", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "CPU usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 12, - "w": 8, - "x": 8, - "y": 11 - }, - "hiddenSeries": false, - "id": 18, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(container_memory_working_set_bytes{image!=\"\", pod=~\".*kafka-.\"}) by (pod)", - "interval": "", - "legendFormat": "{{pod}}", - "refId": "A" - }, - { - "expr": "sum (rate (container_cpu_usage_seconds_total{pod=~\".*router-kafka.*\"}[1m])) by (pod)", - "hide": true, - "interval": "", - "legendFormat": "{{pod}}", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "Memory Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": null, - "gridPos": { - "h": 6, - "w": 4, - "x": 16, - "y": 11 - }, - "id": 15, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ], - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [], - "values": false - }, - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto" - }, - "pluginVersion": "6.7.2", - "targets": [ - { - "expr": "sum(container_network_transmit_packets_dropped_total{pod=~\".*producer.*\"})", - "interval": "", - "legendFormat": "Packets dropped", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Packets Dropped (producers)", - "type": "stat" - }, - { - "datasource": null, - "gridPos": { - "h": 6, - "w": 4, - "x": 20, - "y": 11 - }, - "id": 4, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ], - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [], - "values": false - }, - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto" - }, - "pluginVersion": "6.7.2", - "targets": [ - { - "expr": "sum(container_network_transmit_packets_dropped_total{pod=~\".*hv-ves-collector.*\"})", - "interval": "", - "legendFormat": "Packets dropped", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Packets Dropped (hv-ves)", - "type": "stat" - }, - { - "datasource": null, - "gridPos": { - "h": 6, - "w": 4, - "x": 16, - "y": 17 - }, - "id": 17, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "max" - ], - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "bytes" - }, - "overrides": [], - "values": false - }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto" - }, - "pluginVersion": "6.7.2", - "targets": [ - { - "expr": "sum(container_network_transmit_bytes_total{pod=~\".*producer.*\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Sent (producers)", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "gridPos": { - "h": 6, - "w": 4, - "x": 20, - "y": 17 - }, - "id": 16, - "links": [], - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "max" - ], - "defaults": { - "mappings": [ - { - "id": 0, - "op": "=", - "text": "N/A", - "type": 1, - "value": "null" - } - ], - "nullValueMode": "connected", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "bytes" - }, - "overrides": [], - "values": false - }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal" - }, - "pluginVersion": "6.7.2", - "targets": [ - { - "expr": "container_network_receive_bytes_total{pod=~\".*hv-ves-collector.*\"}", - "interval": "", - "legendFormat": "Packets dropped", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Received (hv-ves)", - "type": "stat" - } - ], - "refresh": "5s", - "schemaVersion": 22, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Kafka and Producers Statistics", - "uid": "-28uHcjZk", - "variables": { - "list": [] - }, - "version": 1 - } diff --git a/tools/performance/cloud/grafana/dashboards/latencies.json b/tools/performance/cloud/grafana/dashboards/latencies.json new file mode 100644 index 00000000..43ec7f4f --- /dev/null +++ b/tools/performance/cloud/grafana/dashboards/latencies.json @@ -0,0 +1,448 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "id": 6, + "links": [], + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 11, + "w": 12, + "x": 0, + "y": 0 + }, + "hiddenSeries": false, + "id": 2, + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(hvves_messages_latency_seconds_sum[1h])/rate(hvves_messages_latency_seconds_count[1h]) - rate(hvves_messages_processing_time_seconds_sum[1h])/rate(hvves_messages_processing_time_seconds_count[1h])", + "interval": "", + "legendFormat": "average", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Producer to HV-VES input latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 11, + "w": 12, + "x": 12, + "y": 0 + }, + "hiddenSeries": false, + "id": 7, + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(hvves_messages_latency_seconds_sum[1h])/rate(hvves_messages_latency_seconds_count[1h]) - rate(hvves_messages_processing_time_seconds_sum[1h])/rate(hvves_messages_processing_time_seconds_count[1h]) + rate(hvves_messages_processing_time_without_routing_seconds_sum[1h])/rate(hvves_messages_processing_time_without_routing_seconds_count[1h])", + "interval": "", + "legendFormat": "average", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Producer to HV-VES output (without sending to Kafka) latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 12, + "w": 12, + "x": 0, + "y": 11 + }, + "hiddenSeries": false, + "id": 4, + "interval": "", + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(hvves_messages_latency_seconds_sum[1h])/rate(hvves_messages_latency_seconds_count[1h])", + "format": "time_series", + "hide": false, + "instant": false, + "intervalFactor": 1, + "legendFormat": "average", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.90, sum( rate(hvves_messages_latency_seconds_bucket[1h]) )by(le) )", + "legendFormat": "90th percentile", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.95, sum( rate(hvves_messages_latency_seconds_bucket[1h]) )by(le) )", + "legendFormat": "95th percentile", + "refId": "C" + }, + { + "expr": "histogram_quantile(0.99, sum( rate(hvves_messages_latency_seconds_bucket[1h]) )by(le) )", + "legendFormat": "99th precentile", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Producer to HV-VES output (with sending to Kafka) latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 2, + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 12, + "w": 12, + "x": 12, + "y": 11 + }, + "hiddenSeries": false, + "id": 6, + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(hvves_messages_latency_seconds_sum[1h])/rate(hvves_messages_latency_seconds_count[1h]) - rate(hvves_messages_processing_time_seconds_sum[1h])/rate(hvves_messages_processing_time_seconds_count[1h])", + "interval": "", + "legendFormat": "Producer to HV-VES input", + "refId": "A" + }, + { + "expr": "rate(hvves_messages_latency_seconds_sum[1h])/rate(hvves_messages_latency_seconds_count[1h]) - rate(hvves_messages_processing_time_seconds_sum[1h])/rate(hvves_messages_processing_time_seconds_count[1h]) + rate(hvves_messages_processing_time_without_routing_seconds_sum[1h])/rate(hvves_messages_processing_time_without_routing_seconds_count[1h])", + "interval": "", + "legendFormat": "Producer to HV-VES output (without sending to Kafka)", + "refId": "B" + }, + { + "expr": "rate(hvves_messages_latency_seconds_sum[1h])/rate(hvves_messages_latency_seconds_count[1h])", + "interval": "", + "legendFormat": "Producer to HV-VES output (with sending to Kafka)", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Latencies", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "5s", + "schemaVersion": 22, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Latencies", + "uid": "k22_V1qZk", + "variables": { + "list": [] + }, + "version": 0 +} diff --git a/tools/performance/cloud/grafana/dashboards/performance-tests.yaml b/tools/performance/cloud/grafana/dashboards/performance-tests.json similarity index 91% rename from tools/performance/cloud/grafana/dashboards/performance-tests.yaml rename to tools/performance/cloud/grafana/dashboards/performance-tests.json index 97ca71b1..d5a9e2ae 100644 --- a/tools/performance/cloud/grafana/dashboards/performance-tests.yaml +++ b/tools/performance/cloud/grafana/dashboards/performance-tests.json @@ -1,30 +1,3 @@ -# ============LICENSE_START======================================================= -# dcaegen2-collectors-veshv -# ================================================================================ -# Copyright (C) 2019 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========================================================= - -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-performance-tests - namespace: onap - labels: - name: grafana-dashboards -data: - performance-tests.json: |- { "annotations": { "list": [ @@ -506,4 +479,4 @@ data: "title": "Performance tests", "uid": "ErPSMaIZk", "version": 1 - } \ No newline at end of file + } diff --git a/tools/performance/cloud/grafana/dashboards/processing.json b/tools/performance/cloud/grafana/dashboards/processing.json new file mode 100644 index 00000000..7b606e44 --- /dev/null +++ b/tools/performance/cloud/grafana/dashboards/processing.json @@ -0,0 +1,952 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "Prometheus", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "id": 3, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "datasource": null, + "gridPos": { + "h": 4, + "w": 9, + "x": 0, + "y": 0 + }, + "id": 25, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "max" + ], + "defaults": { + "mappings": [], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [], + "values": false + }, + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto" + }, + "pluginVersion": "6.7.2", + "targets": [ + { + "expr": "sum(hvves_messages_received_total)", + "interval": "", + "legendFormat": "Received by HV-VES", + "refId": "A" + }, + { + "expr": "sum(hvves_messages_dropped_total)", + "interval": "", + "legendFormat": "Dropped in HV-VES", + "refId": "B" + }, + { + "expr": "sum(hvves_messages_sent_total)", + "interval": "", + "legendFormat": "Sent by HV-VES", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Messages", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 13, + "w": 7, + "x": 9, + "y": 0 + }, + "hiddenSeries": false, + "id": 9, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "sideWidth": 350, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(hvves_messages_processing_time_seconds_sum[1h])/rate(hvves_messages_processing_time_seconds_count[1h])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "average", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.90, sum( rate(hvves_messages_processing_time_seconds_bucket[1h]) )by(le) )", + "format": "time_series", + "hide": false, + "instant": false, + "intervalFactor": 1, + "legendFormat": "90th percentile", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.95, sum( rate(hvves_messages_processing_time_seconds_bucket[1h]) )by(le) )", + "legendFormat": "95th percentile", + "refId": "C" + }, + { + "expr": "histogram_quantile(0.99, sum( rate(hvves_messages_processing_time_seconds_bucket[1h]) )by(le) )", + "legendFormat": "99th percentile", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Processing time (HV-VES input to HV-VES output with sending to Kafka)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 13, + "w": 8, + "x": 16, + "y": 0 + }, + "hiddenSeries": false, + "id": 23, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "sideWidth": 350, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(hvves_messages_processing_time_without_routing_seconds_sum[1h])/rate(hvves_messages_processing_time_without_routing_seconds_count[1h])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "average", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.90, sum( rate(hvves_messages_processing_time_without_routing_seconds_bucket[1h]) )by(le) )", + "format": "time_series", + "hide": false, + "instant": false, + "intervalFactor": 1, + "legendFormat": "90th percentile", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.95, sum( rate(hvves_messages_processing_time_without_routing_seconds_bucket[1h]) )by(le) )", + "legendFormat": "95th percentile", + "refId": "C" + }, + { + "expr": "histogram_quantile(0.99, sum( rate(hvves_messages_processing_time_without_routing_seconds_bucket[1h]) )by(le) )", + "legendFormat": "99th percentile", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Processing time (HV-VES input to HV-VES output without sending to Kafka)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 9, + "x": 0, + "y": 4 + }, + "hiddenSeries": false, + "id": 8, + "interval": "", + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(hvves_messages_received_total[1m])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Receive rate", + "refId": "A" + }, + { + "expr": "rate(hvves_messages_sent_total[1m])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Send rate", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "Messages rate [msg/s]", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": null, + "format": "decbytes", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 4, + "x": 0, + "y": 13 + }, + "id": 20, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(hvves_messages_received_payload_bytes_total)", + "format": "time_series", + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "title": "Total received payload bytes", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Prometheus", + "fill": 1, + "fillGradient": 3, + "gridPos": { + "h": 10, + "w": 10, + "x": 4, + "y": 13 + }, + "hiddenSeries": false, + "id": 16, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(process_cpu_usage) by (kubernetes_pod_name)*100", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "CPU usage", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": "20m", + "timeRegions": [], + "timeShift": null, + "title": "HV-VES process cpu usage [% of all cores]", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 2, + "format": "percent", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Prometheus", + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 10, + "w": 10, + "x": 14, + "y": 13 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(jvm_memory_used_bytes)/1024/1024/1024\n", + "format": "time_series", + "hide": false, + "instant": false, + "intervalFactor": 1, + "legendFormat": "Memory used", + "refId": "A" + }, + { + "expr": "sum(jvm_memory_committed_bytes)/1024/1024/1024", + "instant": false, + "legendFormat": "Memory commited", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory usage of HV-VES", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "gbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "Prometheus", + "format": "decbytes", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 2, + "w": 4, + "x": 0, + "y": 15 + }, + "id": 18, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(hvves_messages_received_payload_bytes_total)/sum(hvves_messages_received_total)", + "format": "time_series", + "hide": false, + "instant": false, + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "title": "Average received payload bytes", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "0", + "value": "null" + } + ], + "valueName": "current" + }, + { + "columns": [ + { + "text": "Current", + "value": "current" + } + ], + "datasource": null, + "fontSize": "100%", + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 17 + }, + "id": 12, + "links": [], + "pageSize": null, + "scroll": true, + "showHeader": true, + "sort": { + "col": 0, + "desc": true + }, + "styles": [ + { + "alias": "Time", + "align": "auto", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Time", + "type": "date" + }, + { + "alias": "", + "align": "auto", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "decimals": 2, + "pattern": "/.*/", + "thresholds": [], + "type": "number", + "unit": "short" + } + ], + "targets": [ + { + "expr": "sum(hvves_messages_sent_topic_total) by (topic, value)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{topic}}", + "refId": "A" + } + ], + "title": "Messages sent per topic", + "transform": "timeseries_aggregations", + "type": "table" + }, + { + "columns": [ + { + "text": "Current", + "value": "current" + } + ], + "datasource": null, + "fontSize": "100%", + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 20 + }, + "id": 11, + "links": [], + "pageSize": null, + "scroll": true, + "showHeader": true, + "sort": { + "col": 0, + "desc": true + }, + "styles": [ + { + "alias": "Time", + "align": "auto", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Time", + "type": "date" + }, + { + "alias": "", + "align": "auto", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "decimals": 2, + "pattern": "/.*/", + "thresholds": [], + "type": "number", + "unit": "short" + } + ], + "targets": [ + { + "expr": "sum(hvves_messages_received_total) by (kubernetes_pod_name, value)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}}", + "refId": "A" + } + ], + "title": "Messages processed per pod", + "transform": "timeseries_aggregations", + "type": "table" + } + ], + "refresh": "5s", + "schemaVersion": 22, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "1s", + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "HV-VES processing", + "uid": "V94Kjlwmz", + "variables": { + "list": [] + }, + "version": 1 +} diff --git a/tools/performance/cloud/grafana/dashboards/processing.yaml b/tools/performance/cloud/grafana/dashboards/processing.yaml deleted file mode 100644 index 27abba13..00000000 --- a/tools/performance/cloud/grafana/dashboards/processing.yaml +++ /dev/null @@ -1,1156 +0,0 @@ -# ============LICENSE_START======================================================= -# dcaegen2-collectors-veshv -# ================================================================================ -# Copyright (C) 2019 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========================================================= - -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-processing - namespace: onap - labels: - name: grafana-dashboards -data: - processing.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "Prometheus", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "links": [], - "panels": [ - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 0, - "y": 0 - }, - "id": 2, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(hvves_messages_received_total) by (value)", - "format": "time_series", - "instant": true, - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "Messages received", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 3, - "y": 0 - }, - "id": 4, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(hvves_messages_dropped_total)", - "format": "time_series", - "instant": true, - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "Messages dropped", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 6, - "y": 0 - }, - "id": 6, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(hvves_messages_sent_total)", - "format": "time_series", - "instant": true, - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "Messages Sent", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 12, - "w": 7, - "x": 9, - "y": 0 - }, - "id": 9, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": 350, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(hvves_messages_processing_time_seconds_sum[1h])/rate(hvves_messages_processing_time_seconds_count[1h])", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "average", - "refId": "A" - }, - { - "expr": "histogram_quantile(0.90, sum( rate(hvves_messages_processing_time_seconds_bucket[1h]) )by(le) )", - "format": "time_series", - "hide": false, - "instant": false, - "intervalFactor": 1, - "legendFormat": "90th percentile", - "refId": "B" - }, - { - "expr": "histogram_quantile(0.95, sum( rate(hvves_messages_processing_time_seconds_bucket[1h]) )by(le) )", - "legendFormat": "95th percentile", - "refId": "C" - }, - { - "expr": "histogram_quantile(0.99, sum( rate(hvves_messages_processing_time_seconds_bucket[1h]) )by(le) )", - "legendFormat": "99th percentile", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "Message processing time in HV-VES", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 12, - "w": 8, - "x": 16, - "y": 0 - }, - "id": 23, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": 350, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(hvves_messages_processing_time_without_routing_seconds_sum[1h])/rate(hvves_messages_processing_time_without_routing_seconds_count[1h])", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "average", - "refId": "A" - }, - { - "expr": "histogram_quantile(0.90, sum( rate(hvves_messages_processing_time_without_routing_seconds_bucket[1h]) )by(le) )", - "format": "time_series", - "hide": false, - "instant": false, - "intervalFactor": 1, - "legendFormat": "90th percentile", - "refId": "B" - }, - { - "expr": "histogram_quantile(0.95, sum( rate(hvves_messages_processing_time_without_routing_seconds_bucket[1h]) )by(le) )", - "legendFormat": "95th percentile", - "refId": "C" - }, - { - "expr": "histogram_quantile(0.99, sum( rate(hvves_messages_processing_time_without_routing_seconds_bucket[1h]) )by(le) )", - "legendFormat": "99th percentile", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "Message processing time in HV-VES without routing", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 9, - "x": 0, - "y": 3 - }, - "id": 8, - "interval": "", - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(hvves_messages_latency_seconds_sum[1h])/rate(hvves_messages_latency_seconds_count[1h])", - "format": "time_series", - "hide": false, - "instant": false, - "intervalFactor": 1, - "legendFormat": "average", - "refId": "A" - }, - { - "expr": "histogram_quantile(0.90, sum( rate(hvves_messages_latency_seconds_bucket[1h]) )by(le) )", - "legendFormat": "90th percentile", - "refId": "B" - }, - { - "expr": "histogram_quantile(0.95, sum( rate(hvves_messages_latency_seconds_bucket[1h]) )by(le) )", - "legendFormat": "95th percentile", - "refId": "C" - }, - { - "expr": "histogram_quantile(0.99, sum( rate(hvves_messages_latency_seconds_bucket[1h]) )by(le) )", - "legendFormat": "99th precentile", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "Message travel time from Producer to HV-VES output", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 2, - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 2, - "w": 4, - "x": 0, - "y": 12 - }, - "id": 20, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(hvves_messages_received_payload_bytes_total)", - "format": "time_series", - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "Total received payload bytes", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, - "fillGradient": 3, - "gridPos": { - "h": 10, - "w": 10, - "x": 4, - "y": 12 - }, - "id": 16, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(process_cpu_usage) by (kubernetes_pod_name)*100", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "CPU usage", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": "20m", - "timeRegions": [], - "timeShift": null, - "title": "HV-VES process cpu usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 2, - "format": "percent", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 10, - "w": 10, - "x": 14, - "y": 12 - }, - "id": 22, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(jvm_memory_used_bytes)/1024/1024/1024\n", - "format": "time_series", - "hide": false, - "instant": false, - "intervalFactor": 1, - "legendFormat": "Memory used", - "refId": "A" - }, - { - "expr": "sum(jvm_memory_committed_bytes)/1024/1024/1024", - "instant": false, - "legendFormat": "Memory commited", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory usage of HV-VES", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "gbytes", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 2, - "w": 4, - "x": 0, - "y": 14 - }, - "id": 18, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(hvves_messages_received_payload_bytes_total)/sum(hvves_messages_received_total)", - "format": "time_series", - "hide": false, - "instant": false, - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "Average received payload bytes", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "current" - }, - { - "columns": [ - { - "text": "Current", - "value": "current" - } - ], - "datasource": null, - "fontSize": "100%", - "gridPos": { - "h": 3, - "w": 4, - "x": 0, - "y": 16 - }, - "id": 12, - "links": [], - "options": {}, - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 0, - "desc": true - }, - "styles": [ - { - "alias": "Time", - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "pattern": "Time", - "type": "date" - }, - { - "alias": "", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "decimals": 2, - "pattern": "/.*/", - "thresholds": [], - "type": "number", - "unit": "short" - } - ], - "targets": [ - { - "expr": "sum(hvves_messages_sent_topic_total) by (topic, value)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{topic}}", - "refId": "A" - } - ], - "title": "Messages sent per topic", - "transform": "timeseries_aggregations", - "type": "table" - }, - { - "columns": [ - { - "text": "Current", - "value": "current" - } - ], - "datasource": null, - "fontSize": "100%", - "gridPos": { - "h": 3, - "w": 4, - "x": 0, - "y": 19 - }, - "id": 11, - "links": [], - "options": {}, - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 0, - "desc": true - }, - "styles": [ - { - "alias": "Time", - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "pattern": "Time", - "type": "date" - }, - { - "alias": "", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "decimals": 2, - "pattern": "/.*/", - "thresholds": [], - "type": "number", - "unit": "short" - } - ], - "targets": [ - { - "expr": "sum(hvves_messages_received_total) by (kubernetes_pod_name, value)", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "{{kubernetes_pod_name}}", - "refId": "A" - } - ], - "title": "Messages processed per pod", - "transform": "timeseries_aggregations", - "type": "table" - } - ], - "refresh": "5s", - "schemaVersion": 20, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "1s", - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "", - "title": "HV-VES processing", - "uid": "V94Kjlwmz", - "version": 1 - } \ No newline at end of file diff --git a/tools/performance/cloud/node-exporter.yaml b/tools/performance/cloud/node-exporter.yaml new file mode 100644 index 00000000..26fa7847 --- /dev/null +++ b/tools/performance/cloud/node-exporter.yaml @@ -0,0 +1,39 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + prometheus.io/scrape: 'true' + labels: + app: node-exporter + name: node-exporter + name: node-exporter +spec: + clusterIP: None + ports: + - name: scrape + port: 9100 + protocol: TCP + selector: + app: node-exporter + type: ClusterIP +--- +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: node-exporter +spec: + template: + metadata: + labels: + app: node-exporter + name: node-exporter + spec: + containers: + - image: prom/node-exporter + name: node-exporter + ports: + - containerPort: 9100 + hostPort: 9100 + name: scrape + hostNetwork: true + hostPID: true diff --git a/tools/performance/cloud/prometheus/prometheus-config-map.yaml b/tools/performance/cloud/prometheus/prometheus-config-map.yaml index 9238b255..58e8ac54 100644 --- a/tools/performance/cloud/prometheus/prometheus-config-map.yaml +++ b/tools/performance/cloud/prometheus/prometheus-config-map.yaml @@ -71,3 +71,36 @@ data: target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor + - job_name: 'kubernetes-service-endpoints' + + kubernetes_sd_configs: + - role: endpoints + + relabel_configs: + - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] + action: keep + regex: true + - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme] + action: replace + target_label: __scheme__ + regex: (https?) + - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path] + action: replace + target_label: __metrics_path__ + regex: (.+) + - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] + action: replace + target_label: __address__ + regex: ([^:]+)(?::\d+)?;(\d+) + replacement: $1:$2 + - action: labelmap + regex: __meta_kubernetes_service_label_(.+) + - source_labels: [__meta_kubernetes_namespace] + action: replace + target_label: kubernetes_namespace + - source_labels: [__meta_kubernetes_service_name] + action: replace + target_label: kubernetes_name + - source_labels: [__meta_kubernetes_endpoint_node_name] + action: replace + target_label: node_name 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 " + echo "To automatically open links use: ./load-snapshot.sh -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' -- 2.16.6