From 77431f5b398ab623169c70ba2fff91e234c460fd Mon Sep 17 00:00:00 2001 From: fraVlaca <86831094+fraVlaca@users.noreply.github.com> Date: Thu, 20 Jan 2022 09:37:37 +0000 Subject: [PATCH] add prometheus/grafana performances sample into test-network directory (#576) Signed-off-by: fraVlaca added promethesus-grafana server to test-network Signed-off-by: fraVlaca changed image for cadvisor to version that works on Linux Signed-off-by: fraVlaca improved documentation on README and tweaked docker-compose file Signed-off-by: fraVlaca updated and fixed documentation for the prometheus/grafana sample for the test-network Signed-off-by: fraVlaca final modification to grafana dashboard and prom/graf docs Signed-off-by: fraVlaca --- test-network/prometheus-grafana/README.md | 49 + .../prometheus-grafana/docker-compose.yaml | 68 + .../grafana/config.monitoring | 2 + .../provisioning/dashboards/dashboard.yml | 11 + .../dashboards/hlf-performances.json | 2430 +++++++++++++++++ .../provisioning/datasources/datasource.yml | 50 + .../prometheus-grafana/grafana_db/grafana.db | Bin 0 -> 450560 bytes .../prometheus/prometheus.yml | 25 + 8 files changed, 2635 insertions(+) create mode 100644 test-network/prometheus-grafana/README.md create mode 100644 test-network/prometheus-grafana/docker-compose.yaml create mode 100644 test-network/prometheus-grafana/grafana/config.monitoring create mode 100644 test-network/prometheus-grafana/grafana/provisioning/dashboards/dashboard.yml create mode 100644 test-network/prometheus-grafana/grafana/provisioning/dashboards/hlf-performances.json create mode 100644 test-network/prometheus-grafana/grafana/provisioning/datasources/datasource.yml create mode 100644 test-network/prometheus-grafana/grafana_db/grafana.db create mode 100644 test-network/prometheus-grafana/prometheus/prometheus.yml diff --git a/test-network/prometheus-grafana/README.md b/test-network/prometheus-grafana/README.md new file mode 100644 index 00000000..64abae9e --- /dev/null +++ b/test-network/prometheus-grafana/README.md @@ -0,0 +1,49 @@ +# Description + +This sample provides an environment to display and capture metrics from the test-network in real time. It consists of a docker-compose file that starts a prometheus and grafana server setup configured to collect and display metrics for the test network. + +# Requirements + +This sample has been tested and is recomended to be used on **linux** in order to fully benefit from its capabilities, however it can be deployed and works on MacOS-intel machine as well (some modification to the cadvisor docker image and related queries are required to show docker containers metrics). +You will need to have installed **docker-compose with version 1.29 or above** (note that this is higher than the v1.14 requirement requested for the test-network). + +# How to use + +1. Go to the test-network directory and run bring up the test-network **./network.sh up createChannel** +2. Bring up the Prometheus/Grafana network in the test-network/prometheus-grafana directory and run **docker-compose up -d** +3. Log in: type “localhost:3000” on your web browser -> username=“admin”, password=“admin” -> set a new password +4. Browse dashboard and analyse results + - The default dashboard "HLF Performances Review" can be found and displayed by hovering over the dashboard menu and clicking on the browse button. + ![picture alt]("https://user-images.githubusercontent.com/86831094/149115445-5e5f6d95-ecc3-4b46-aadb-5c01148770b3.png "Title is optional") + Once opened the dashboard, to display the collected metrics and data, adjust the timeframe on the top right to focus on the latest timespan when the network was up. +5. Deploy a chaincode (i.e. "./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go"), start using the test-network and use the grafana dashboard to analyse and assess your network performances. +Extras: add new queries, modify dashboard & add relevant changes to main repo --> extract json and add it to "grafana/dashboards/hlf-performances.json". +Metrics can also be displayed directly from Prometheus by going to "localhost:9090". + +# Docker Compose + +Brings up + - a prometheus sever (port 9090) -> pulls metrics from peers, orderer, system(node exporter) and containers(cadvisor) + - grafana sever (port 3000) -> collects and display data from prometheus + - node exporter (port 9100) -> exposes systems metrics + - cadvisor (port 8080) -> exposes docker containers metrics + +# Prometheus "configuration file" + +**Prometheus.yml** + +Fabric metrics targets: + - peer0.org1.example.com:9444 + - peer0.org2.example.com:9445 + - orderer.example.com:9443 + +System and docker metrics targets: + - cadvisor:8080 + - node-exporter:9100 + +Check the state of the connections with targets on http://localhost:9090/targets. + +# Sources + +Prometheus docs: https://prometheus.io/docs/introduction/overview/ +Grafana docs: https://grafana.com/docs/ diff --git a/test-network/prometheus-grafana/docker-compose.yaml b/test-network/prometheus-grafana/docker-compose.yaml new file mode 100644 index 00000000..992fe69c --- /dev/null +++ b/test-network/prometheus-grafana/docker-compose.yaml @@ -0,0 +1,68 @@ +version: '3' + +volumes: + prometheus_data: {} + grafana_storage: {} + +services: + prometheus: + image: prom/prometheus + container_name: prometheus + volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + - prometheus_data:/prometheus + command: + - '--config.file=/etc/prometheus/prometheus.yml' + - '--storage.tsdb.path=/prometheus' + - '--web.console.libraries=/usr/share/prometheus/console_libraries' + - '--web.console.templates=/usr/share/prometheus/consoles' + ports: + - "9090:9090" + + grafana: + image: grafana/grafana + container_name: grafana + user: "104" + depends_on: + - prometheus + ports: + - 3000:3000 + volumes: + - grafana_storage:/var/lib/grafana + - ./grafana/provisioning/:/etc/grafana/provisioning/ + env_file: + - ./grafana/config.monitoring + restart: always + + cadvisor: + image: google/cadvisor:latest # gcr.io/cadvisor/cadvisor:latest for ios + privileged: true + container_name: cadvisor + volumes: + - /var/run:/var/run:rw + - /sys:/sys:ro + - /var/lib/docker/:/var/lib/docker:ro + # - /cgroup:/cgroup:ro + ports: + - 8080:8080 + restart: always + + node-exporter: + image: prom/node-exporter + container_name: node-exporter + volumes: + - /proc:/host/proc:ro + - /sys:/host/sys:ro + command: + - '--path.procfs=/host/proc' + - '--path.sysfs=/host/sys' + - --collector.filesystem.ignored-mount-points + - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)" + ports: + - 9100:9100 + restart: always + +networks: + default: + external: true + name: fabric_test diff --git a/test-network/prometheus-grafana/grafana/config.monitoring b/test-network/prometheus-grafana/grafana/config.monitoring new file mode 100644 index 00000000..70d1cae1 --- /dev/null +++ b/test-network/prometheus-grafana/grafana/config.monitoring @@ -0,0 +1,2 @@ +GF_SECURITY_ADMIN_PASSWORD=admin +GF_USERS_ALLOW_SIGN_UP=false diff --git a/test-network/prometheus-grafana/grafana/provisioning/dashboards/dashboard.yml b/test-network/prometheus-grafana/grafana/provisioning/dashboards/dashboard.yml new file mode 100644 index 00000000..14716ee1 --- /dev/null +++ b/test-network/prometheus-grafana/grafana/provisioning/dashboards/dashboard.yml @@ -0,0 +1,11 @@ +apiVersion: 1 + +providers: +- name: 'Prometheus' + orgId: 1 + folder: '' + type: file + disableDeletion: false + editable: true + options: + path: /etc/grafana/provisioning/dashboards diff --git a/test-network/prometheus-grafana/grafana/provisioning/dashboards/hlf-performances.json b/test-network/prometheus-grafana/grafana/provisioning/dashboards/hlf-performances.json new file mode 100644 index 00000000..c9d41fa2 --- /dev/null +++ b/test-network/prometheus-grafana/grafana/provisioning/dashboards/hlf-performances.json @@ -0,0 +1,2430 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "Overview of the most important Fabric, system and Docker container metrics. ", + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": 893, + "graphTooltip": 1, + "iteration": 1642423515757, + "links": [], + "liveNow": false, + "panels": [ + { + "aliasColors": { + "{id=\"/\",instance=\"cadvisor:8080\",job=\"prometheus\"}": "#BA43A9" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 6, + "w": 5, + "x": 0, + "y": 0 + }, + "hiddenSeries": false, + "id": 5, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(rate(container_cpu_system_seconds_total[1m]))/ count(node_cpu_seconds_total{mode=\"idle\"}) without (cpu,mode)", + "hide": true, + "interval": "", + "intervalFactor": 2, + "legendFormat": "a", + "refId": "B", + "step": 120 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(rate(container_cpu_system_seconds_total{name=~\".+\"}[1m]))/ count(node_cpu_seconds_total{mode=\"idle\"}) without (cpu,mode)", + "hide": true, + "interval": "", + "intervalFactor": 2, + "legendFormat": "nur container", + "refId": "F", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(rate(container_cpu_system_seconds_total{id=\"/\"}[1m]))/ count(node_cpu_seconds_total{mode=\"idle\"}) without (cpu,mode)", + "hide": true, + "interval": "", + "intervalFactor": 2, + "legendFormat": "nur docker host", + "metric": "", + "refId": "A", + "step": 20 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(rate(process_cpu_seconds_total[$interval]))/ count(node_cpu_seconds_total{mode=\"idle\"}) without (cpu,mode) * 100", + "hide": true, + "interval": "", + "intervalFactor": 2, + "legendFormat": "host", + "metric": "", + "refId": "C", + "step": 600 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "expr": "sum(rate(container_cpu_system_seconds_total{name=~\".+\"}[1m])) + sum(rate(container_cpu_system_seconds_total{id=\"/\"}[1m])) + sum(rate(process_cpu_seconds_total[1m]))", + "hide": true, + "intervalFactor": 2, + "legendFormat": "", + "refId": "D", + "step": 120 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(rate(container_cpu_usage_seconds_total{name=~\".+\"}[$interval]))/ count(node_cpu_seconds_total{mode=\"idle\"}) without (cpu,mode) * 100", + "hide": false, + "interval": "", + "legendFormat": "", + "refId": "E" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "CPU Usage", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": false, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:7341", + "format": "percent", + "label": "", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:7342", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": {}, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org1.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org1.example.com-fixed-asset" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org2.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org2.example.com-fixed-asset" + } + ] + } + ] + }, + "fill": 3, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 6, + "w": 6, + "x": 5, + "y": 0 + }, + "hiddenSeries": false, + "id": 59, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(container_memory_rss{name=~\".+\"}) by (name)", + "hide": true, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{name}}", + "refId": "A", + "step": 240 + }, + { + "exemplar": true, + "expr": "sum(container_memory_usage_bytes{name=~\".+\"} - container_memory_cache{name=~\".+\"})", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Total Memory Usage per Container", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1101", + "format": "decbytes", + "label": "", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:1102", + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 3, + "x": 11, + "y": 0 + }, + "id": 31, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.1", + "targets": [ + { + "expr": "count(rate(container_last_seen{name=~\".+\"}[$interval]))", + "intervalFactor": 2, + "refId": "A", + "step": 1800 + } + ], + "title": "Containers", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 0.75 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 0.9 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 5, + "x": 14, + "y": 0 + }, + "id": 26, + "links": [], + "maxDataPoints": 100, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "8.3.1", + "targets": [ + { + "exemplar": true, + "expr": "min((node_filesystem_size_bytes{fstype=~\"xfs|tmpfs\"} - node_filesystem_free_bytes{fstype=~\"xfs|tmpfs\"} )/ node_filesystem_size_bytes{fstype=~\"xfs|tmpfs\"})", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "", + "refId": "A", + "step": 1800 + } + ], + "title": "Disk space", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 70 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 5, + "x": 19, + "y": 0 + }, + "id": 25, + "links": [], + "maxDataPoints": 100, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "8.3.1", + "targets": [ + { + "exemplar": true, + "expr": "((node_memory_MemTotal_bytes{} - node_memory_MemAvailable_bytes{}) / node_memory_MemTotal_bytes{}) * 100", + "interval": "", + "intervalFactor": 2, + "legendFormat": "", + "refId": "A", + "step": 1800 + } + ], + "title": "Memory", + "type": "gauge" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 6 + }, + "id": 47, + "panels": [], + "title": "Docker Containers Metrics", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": {}, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org1.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org1.example.com-fixed-asset" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org2.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org2.example.com-fixed-asset" + } + ] + } + ] + }, + "fill": 5, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 12, + "x": 0, + "y": 7 + }, + "hiddenSeries": false, + "id": 1, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(rate(container_cpu_usage_seconds_total{name=~\".+\"}[$interval])) by (name)/ count(node_cpu_seconds_total{mode=\"idle\"}) without (cpu,mode) * 100", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{name}}", + "metric": "", + "refId": "F", + "step": 240 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Total CPU Usage per Container", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:2189", + "format": "percent", + "label": "", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:2190", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": {}, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org1.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org1.example.com-fixed-asset" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org2.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org2.example.com-fixed-asset" + } + ] + } + ] + }, + "fill": 3, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 12, + "x": 12, + "y": 7 + }, + "hiddenSeries": false, + "id": 10, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(container_memory_rss{name=~\".+\"}) by (name)", + "hide": true, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{name}}", + "refId": "A", + "step": 240 + }, + { + "exemplar": true, + "expr": "sum(container_memory_usage_bytes{name=~\".+\"} - container_memory_cache{name=~\".+\"}) by (name)", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{name}}", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Total Memory Usage per Container", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1101", + "format": "decbytes", + "label": "", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:1102", + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "left", + "displayMode": "auto" + }, + "decimals": 2, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000000 + }, + { + "color": "rgba(50, 172, 45, 0.97)", + "value": 25000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 17 + }, + "id": 37, + "links": [], + "options": { + "footer": { + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true + }, + "pluginVersion": "8.3.1", + "targets": [ + { + "expr": "sum(container_spec_memory_limit_bytes{name=~\".+\"} - container_memory_usage_bytes{name=~\".+\"}) by (name) ", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{name}}", + "metric": "", + "refId": "A", + "step": 240 + }, + { + "expr": "sum(container_spec_memory_limit_bytes{name=~\".+\"}) by (name) ", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{name}}", + "refId": "B", + "step": 240 + }, + { + "exemplar": true, + "expr": "container_memory_usage_bytes{name!~\"prometheus|cadvisor|grafana|node-exporter\", name=~\".+\"} - container_memory_cache{name!~\"prometheus|cadvisor|grafana|node-exporter\", name=~\".+\"}", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{name}}", + "refId": "C", + "step": 240 + } + ], + "title": "Usage memory", + "transformations": [ + { + "id": "reduce", + "options": { + "includeTimeField": false, + "reducers": [ + "last" + ] + } + } + ], + "type": "table" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": {}, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org1.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org1.example.com-fixed-asset" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org2.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org2.example.com-fixed-asset" + } + ] + } + ] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 25 + }, + "hiddenSeries": false, + "id": 38, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "sum(rate(container_cpu_usage_seconds_total{name!~\"prometheus|cadvisor|grafana|node-exporter|\"}[$interval])) by (name) / count(node_cpu_seconds_total{mode=\"idle\"}) without (cpu,mode) * 100", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{name}}", + "metric": "", + "refId": "F", + "step": 240 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "CPU Usage per Container", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1693", + "format": "percent", + "label": "", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:1694", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": {}, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org1.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org1.example.com-fixed-asset" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "dev-peer0.org2.example.com-fixed-asset-.*" + }, + "properties": [ + { + "id": "displayName", + "value": "dev-peer0.org2.example.com-fixed-asset" + } + ] + } + ] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 35 + }, + "hiddenSeries": false, + "id": 39, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(container_memory_rss{name!~\"prometheus|cadvisor|grafana|node-exporter|\"}) by (name)", + "hide": true, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{name}}", + "refId": "A", + "step": 240 + }, + { + "exemplar": true, + "expr": "sum(container_memory_usage_bytes{name!~\"prometheus|cadvisor|grafana|node-exporter|\"}-container_memory_cache{name!~\"prometheus|cadvisor|grafana|node-exporter|\"}) by (name)", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{name}}", + "refId": "B", + "step": 240 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Memory Usage per Container", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:1101", + "format": "decbytes", + "label": "", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:1102", + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 45 + }, + "id": 45, + "panels": [], + "title": "Chaincode Metrics", + "type": "row" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 8, + "x": 0, + "y": 46 + }, + "id": 41, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "rate(chaincode_shim_request_duration_sum{chaincode!~\"_.*\"}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "chaincode_shim_request_duration_count{chaincode!~\"_.*\"}", + "hide": true, + "interval": "", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "chaincode_shim_request_duration_bucket{chaincode=~\"_.*\"}", + "hide": true, + "interval": "", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "C" + } + ], + "title": "Request Duration", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 8, + "x": 8, + "y": 46 + }, + "id": 43, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "rate(chaincode_shim_requests_received{chaincode!~\"_.*\"}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "A" + } + ], + "title": "Request Received", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 8, + "x": 16, + "y": 46 + }, + "id": 42, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "rate(chaincode_shim_requests_completed{chaincode!~\"_.*\"}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "A" + } + ], + "title": "Requests Completed", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 57 + }, + "id": 49, + "panels": [], + "title": "Endorser Metrics", + "type": "row" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "fixed-asset.* peer0.org2.example.com.*" + }, + "properties": [ + { + "id": "displayName", + "value": "fixed-asset-peer0.org2" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "fixed-asset.* peer0.org1.example.com.*" + }, + "properties": [ + { + "id": "displayName", + "value": "fixed-asset-peer0.org1" + } + ] + } + ] + }, + "gridPos": { + "h": 11, + "w": 8, + "x": 0, + "y": 58 + }, + "id": 50, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "rate(endorser_proposal_duration_sum{chaincode=~\"fixed-asset.*\"}[$interval]) / on (instance) rate(endorser_proposals_received{}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "endorser_proposal_request_duration_count{chaincode=~\"fixed-asset.*\"}", + "hide": true, + "interval": "", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "endorser_proposal_request_duration_bucket{chaincode=~\"fixed-asset.*\"}", + "hide": true, + "interval": "", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "C" + } + ], + "title": "Proposal Duration", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "fixed-asset.* peer0.org2.example.com.*" + }, + "properties": [ + { + "id": "displayName", + "value": "fixed-asset-peer0.org2" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "fixed-asset.* peer0.org1.example.com.*" + }, + "properties": [ + { + "id": "displayName", + "value": "fixed-asset-peer0.org1" + } + ] + } + ] + }, + "gridPos": { + "h": 11, + "w": 8, + "x": 8, + "y": 58 + }, + "id": 55, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "exemplar": true, + "expr": "rate(endorser_proposals_received{}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{chaincode}} {{instance}}", + "refId": "A" + } + ], + "title": "Proposal Received", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 8, + "x": 16, + "y": 58 + }, + "id": 52, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "exemplar": true, + "expr": "rate(endorser_successful_proposals{}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{job}}", + "refId": "A" + } + ], + "title": "Successful Proposals", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 69 + }, + "id": 54, + "panels": [], + "title": "Ledger Metrics", + "type": "row" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 0, + "y": 70 + }, + "id": 56, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "exemplar": true, + "expr": "rate(ledger_block_processing_time_sum{}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{job}}", + "refId": "A" + }, + { + "exemplar": true, + "expr": "ledger_block_processing_time_count{}", + "hide": true, + "interval": "", + "legendFormat": "{{job}}", + "refId": "B" + }, + { + "exemplar": true, + "expr": "ledger_block_processing_time_bucket{}", + "hide": true, + "interval": "", + "legendFormat": "{{job}}", + "refId": "C" + } + ], + "title": "Block Processing Time", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 6, + "y": 70 + }, + "id": 57, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "rate(ledger_blockstorage_commit_time_sum{}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{job}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "ledger_blockstorage_commit_time_count{}", + "hide": true, + "interval": "", + "legendFormat": "{{job}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "ledger_blockstorage_commit_time_bucket{}", + "hide": true, + "interval": "", + "legendFormat": "{{job}}", + "refId": "C" + } + ], + "title": "Block Storage Commit Time", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 12, + "y": 70 + }, + "id": 58, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "exemplar": true, + "expr": "rate(ledger_statedb_commit_time_sum{}[$interval])", + "hide": false, + "interval": "0.01m", + "legendFormat": "{{job}}", + "refId": "A" + }, + { + "exemplar": true, + "expr": "ledger_statedb_commit_time_count{}", + "hide": true, + "interval": "", + "legendFormat": "{{job}}", + "refId": "B" + }, + { + "exemplar": true, + "expr": "ledger_statedb_commit_time_bucket{}", + "hide": true, + "interval": "", + "legendFormat": "{{job}}", + "refId": "C" + } + ], + "title": "StateDB Commit Time", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 6, + "x": 18, + "y": 70 + }, + "id": 61, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "ledger_blockchain_height{}", + "interval": "", + "legendFormat": "{{job}}", + "refId": "A" + } + ], + "title": "Blockchain height", + "type": "timeseries" + } + ], + "refresh": "5s", + "schemaVersion": 33, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": ".+", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Container Group", + "multi": true, + "name": "containergroup", + "options": [], + "query": { + "query": "label_values(container_group)", + "refId": "Prometheus-containergroup-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query", + "useTags": false + }, + { + "auto": true, + "auto_count": 50, + "auto_min": "50s", + "current": { + "selected": false, + "text": "auto", + "value": "$__auto_interval_interval" + }, + "hide": 0, + "includeAll": false, + "label": "Interval", + "multi": false, + "name": "interval", + "options": [ + { + "selected": true, + "text": "auto", + "value": "$__auto_interval_interval" + }, + { + "selected": false, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "2m", + "value": "2m" + }, + { + "selected": false, + "text": "3m", + "value": "3m" + }, + { + "selected": false, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "7m", + "value": "7m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "30s,1m,2m,3m,5m,7m,10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + }, + { + "current": { + "isNone": true, + "selected": false, + "text": "None", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "label": "Node", + "multi": true, + "name": "server", + "options": [], + "query": { + "query": "label_values(node_boot_time, instance)", + "refId": "Prometheus-server-Variable-Query" + }, + "refresh": 1, + "regex": "/([^:]+):.*/", + "skipUrlSync": false, + "sort": 0, + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-15m", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "HLF Performances Review", + "uid": "UeOYeJpWy", + "version": 2, + "weekStart": "" + } \ No newline at end of file diff --git a/test-network/prometheus-grafana/grafana/provisioning/datasources/datasource.yml b/test-network/prometheus-grafana/grafana/provisioning/datasources/datasource.yml new file mode 100644 index 00000000..4e58703f --- /dev/null +++ b/test-network/prometheus-grafana/grafana/provisioning/datasources/datasource.yml @@ -0,0 +1,50 @@ +# config file version +apiVersion: 1 + +# list of datasources that should be deleted from the database +deleteDatasources: + - name: Prometheus + orgId: 1 + +# list of datasources to insert/update depending +# whats available in the database +datasources: + # name of the datasource. Required +- name: Prometheus + # datasource type. Required + type: prometheus + # access mode. direct or proxy. Required + access: proxy + # org id. will default to orgId 1 if not specified + orgId: 1 + # url + url: http://prometheus:9090 + # database password, if used + password: + # database user, if used + user: + # database name, if used + database: + # enable/disable basic auth + basicAuth: true + # basic auth username + basicAuthUser: admin + # basic auth password + basicAuthPassword: foobar + # enable/disable with credentials headers + withCredentials: + # mark as default datasource. Max one per org + isDefault: true + # fields that will be converted to json and stored in json_data + jsonData: + graphiteVersion: "1.1" + tlsAuth: false + tlsAuthWithCACert: false + # json object of data that will be encrypted. + secureJsonData: + tlsCACert: "..." + tlsClientCert: "..." + tlsClientKey: "..." + version: 1 + # allow users to edit datasources from the UI. + editable: true diff --git a/test-network/prometheus-grafana/grafana_db/grafana.db b/test-network/prometheus-grafana/grafana_db/grafana.db new file mode 100644 index 0000000000000000000000000000000000000000..09d53057a7fb2039f541ed78c3d1d3788080d316 GIT binary patch literal 450560 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°%bWR|7(*L9mFsxTG~qRezutniQQNjkwYM zRxT{vwnj;#lVo^sdc&+LOxKk{wbU$ENVpS1wT*QN8yeD!H&x%fJQJbgf)`ACz>N`# z@zBbKr7KpHNwJ!wwrxA-hs4DFsvj67nOz8rQ9;9wdy!kCwE?1B%@h2 zy_~WQRS^tGA6jc+X|<(p=2srp^j_bWMJ|f zTyG3mAYa|cTyf;-l-EM2)v02J%hno_E67<9xk^>WQr&2mk>cVDlY4;M45 z*A#DJ=uQedrOpe?-TH#H6qXjYU!|<8wTHo~NY7Ih+nP$Rtfewpiey#E2g-MySw$=B zc{;Z=YATso6KicaUr8q`Ofzk-*CnBHIkURlQa;yOk^Juc{~zvU4O$NZAOHd&00JNY z0w4eaAOHd&00MiP0M`F|yMNI-5C8!X009sH0T2KI5C8!X009u71nBesebK)!MSq9< z!Vd_500@8p2!H?xfB*=900@8p2!OydMBw$lLFr;-ps1I0^1^GiRCHcDP}my|joYVZ z|J~<9gVI7|pit7aO0(v?{-hVV_Z&&8)4xFP|Mx|IS&IG}@(Vv800JNY0w4eaAOHd& z00JNY0w4ea&nkf<{TD+WuLShH*1r(xat(mq{}1i|=MwoJKOg`CAOHd&00JNY0w4ea zAOHd&@Z1sDej^l>B4oSjQR}0z$N>4#5_9W`Gy3fGq&}aRo7dL$;{0SHF{jNIi^aLA z`N^s2nVH$CJ2Q#7GiT@5&(7VMoV+u4Mw`^u6LWKVVP>*8cSbMHCbUGMND3;Potv4P zTAwT=ip80PK7VF*eRgVoW_o?5FiCP2X7m}7c``9cGEEnzW|ym9H%cY#^z5lg<;1d9 zFe+xXv3XueS4_R6kN{K89^55;#bF%Yq z`lraDhd)K{|A(T#Ad&y^0|Fob0w4eaAOHd&00JNY0w4eaAn@!FSR5edtUT#e4Xpp4 zy^e)MAOHd&00JNY0w4eaAOHd&00JPu5wO?)Px@2>eg0p1fh!dsK>!3m00ck)1V8`; zKmY_l00ck)1oj*Ood37yx)cop0T2KI5C8!X009sH0T2KI5CDNT0$BgIAwd8LfB*=9 W00@8p2!H?xfB*=900`_k0{=fCg+@jI literal 0 HcmV?d00001 diff --git a/test-network/prometheus-grafana/prometheus/prometheus.yml b/test-network/prometheus-grafana/prometheus/prometheus.yml new file mode 100644 index 00000000..c8b7a71a --- /dev/null +++ b/test-network/prometheus-grafana/prometheus/prometheus.yml @@ -0,0 +1,25 @@ +global: + scrape_interval: 1s + external_labels: + monitor: 'devopsage-monitor' + +scrape_configs: + - job_name: "prometheus" + static_configs: + - targets: ["localhost:9090"] + - job_name: "orderer" + static_configs: + - targets: ["orderer.example.com:9443"] + - job_name: "peer0_org1" + static_configs: + - targets: ["peer0.org1.example.com:9444"] + - job_name: "peer0_org2" + static_configs: + - targets: ["peer0.org2.example.com:9445"] + - job_name: cadvisor + scrape_interval: 5s + static_configs: + - targets: ['cadvisor:8080'] + - job_name: node + static_configs: + - targets: ['node-exporter:9100']