gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-grid5k] 137/189: fix some issues in recover


From: gnunet
Subject: [taler-grid5k] 137/189: fix some issues in recover
Date: Thu, 28 Apr 2022 10:48:27 +0200

This is an automated email from the git hooks/post-receive script.

marco-boss pushed a commit to branch master
in repository grid5k.

commit 9f5db12780ab0f442a56e4cc2afb32baa8a9ccfa
Author: Boss Marco <bossm8@bfh.ch>
AuthorDate: Fri Apr 8 21:16:48 2022 +0200

    fix some issues in recover
---
 additional/grafana/load-statistics.json | 1221 ++++++++++++++++++++++---------
 additional/recover/docker-compose.yaml  |    2 +-
 configs/etc/monitor/loki.yaml           |    2 +-
 experiment/scripts/data-backup.sh       |    4 +-
 4 files changed, 886 insertions(+), 343 deletions(-)

diff --git a/additional/grafana/load-statistics.json 
b/additional/grafana/load-statistics.json
index b2f361c..59bddda 100644
--- a/additional/grafana/load-statistics.json
+++ b/additional/grafana/load-statistics.json
@@ -19,12 +19,6 @@
   ],
   "__elements": [],
   "__requires": [
-    {
-      "type": "panel",
-      "id": "bargauge",
-      "name": "Bar gauge",
-      "version": ""
-    },
     {
       "type": "grafana",
       "id": "grafana",
@@ -43,18 +37,6 @@
       "name": "Prometheus",
       "version": "1.0.0"
     },
-    {
-      "type": "panel",
-      "id": "stat",
-      "name": "Stat",
-      "version": ""
-    },
-    {
-      "type": "panel",
-      "id": "table",
-      "name": "Table",
-      "version": ""
-    },
     {
       "type": "panel",
       "id": "timeseries",
@@ -96,20 +78,19 @@
         "x": 0,
         "y": 0
       },
-      "id": 18,
+      "id": 13,
       "panels": [],
-      "title": "Cryptographic Operations",
+      "title": "Exchange",
       "type": "row"
     },
     {
-      "description": "Number of signatures created with the configured cipher 
of the exchange (rsa or cs).",
       "fieldConfig": {
         "defaults": {
           "color": {
             "mode": "palette-classic"
           },
           "custom": {
-            "axisLabel": "Signatures per Second",
+            "axisLabel": "",
             "axisPlacement": "auto",
             "barAlignment": 0,
             "drawStyle": "line",
@@ -121,7 +102,7 @@
               "viz": false
             },
             "lineInterpolation": "linear",
-            "lineWidth": 1,
+            "lineWidth": 2,
             "pointSize": 5,
             "scaleDistribution": {
               "type": "linear"
@@ -145,18 +126,47 @@
                 "value": null
               }
             ]
-          },
-          "unit": "none"
+          }
         },
-        "overrides": []
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byRegexp",
+              "options": "CPU Busy"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
+              },
+              {
+                "id": "unit",
+                "value": "percent"
+              }
+            ]
+          },
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
+              }
+            ]
+          }
+        ]
       },
       "gridPos": {
-        "h": 8,
+        "h": 9,
         "w": 12,
         "x": 0,
         "y": 1
       },
-      "id": 22,
+      "id": 2,
+      "maxDataPoints": 500,
       "options": {
         "legend": {
           "calcs": [],
@@ -175,24 +185,39 @@
             "uid": "${DS_PROMETHEUS}"
           },
           "exemplar": true,
-          "expr": "sum by(type) (rate(taler_exchange_num_signatures{}[1m]))",
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
+          "instant": false,
           "interval": "",
-          "legendFormat": "{{ type }}",
+          "intervalFactor": 1,
+          "legendFormat": "Requests",
           "refId": "A"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": "100 - (avg by (instance) 
(rate(node_cpu_seconds_total{mode=\"idle\", 
component=\"exchange\"}[$__rate_interval]))*100)",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "CPU Busy",
+          "refId": "B"
         }
       ],
-      "title": "Signatures",
+      "title": " [Exchange] Requests vs CPU",
       "type": "timeseries"
     },
     {
-      "description": "Number of signature verifications with the configured 
cipher of the exchange (rsa or cs).",
+      "description": "",
       "fieldConfig": {
         "defaults": {
           "color": {
             "mode": "palette-classic"
           },
           "custom": {
-            "axisLabel": "Verifications per Second",
+            "axisLabel": "",
             "axisPlacement": "auto",
             "barAlignment": 0,
             "drawStyle": "line",
@@ -204,7 +229,7 @@
               "viz": false
             },
             "lineInterpolation": "linear",
-            "lineWidth": 1,
+            "lineWidth": 2,
             "pointSize": 5,
             "scaleDistribution": {
               "type": "linear"
@@ -228,18 +253,47 @@
                 "value": null
               }
             ]
-          },
-          "unit": "none"
+          }
         },
-        "overrides": []
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byRegexp",
+              "options": "Network (.*)"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
+              },
+              {
+                "id": "unit",
+                "value": "bps"
+              }
+            ]
+          },
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
+              }
+            ]
+          }
+        ]
       },
       "gridPos": {
-        "h": 8,
+        "h": 9,
         "w": 12,
         "x": 12,
         "y": 1
       },
-      "id": 20,
+      "id": 7,
+      "maxDataPoints": 500,
       "options": {
         "legend": {
           "calcs": [],
@@ -253,29 +307,48 @@
       },
       "targets": [
         {
-          "datasource": {
-            "type": "prometheus",
-            "uid": "${DS_PROMETHEUS}"
-          },
           "exemplar": true,
-          "expr": "sum by (type) 
(rate(taler_exchange_num_signature_verifications{}[1m]))",
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
           "interval": "",
-          "legendFormat": "{{ type }}",
+          "intervalFactor": 1,
+          "legendFormat": "Requests",
           "refId": "A"
+        },
+        {
+          "exemplar": true,
+          "expr": 
"sum(rate(node_network_receive_bytes_total{component=\"exchange\"}[$__rate_interval])
 + rate(node_network_transmit_bytes_total{component=\"exchange\"} 
[$__rate_interval]))*8",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "Network Bandwidth",
+          "refId": "B"
         }
       ],
-      "title": "Signature Verifications",
+      "title": "[Exchange] Requests vs Network Traffic",
       "type": "timeseries"
     },
     {
-      "description": "Number of key exchanges",
+      "collapsed": false,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 10
+      },
+      "id": 21,
+      "panels": [],
+      "title": "Wallet",
+      "type": "row"
+    },
+    {
+      "description": "Number of requests versus average wallet node CPU usage",
       "fieldConfig": {
         "defaults": {
           "color": {
             "mode": "palette-classic"
           },
           "custom": {
-            "axisLabel": "Signatures per Second",
+            "axisLabel": "",
             "axisPlacement": "auto",
             "barAlignment": 0,
             "drawStyle": "line",
@@ -287,7 +360,7 @@
               "viz": false
             },
             "lineInterpolation": "linear",
-            "lineWidth": 1,
+            "lineWidth": 2,
             "pointSize": 5,
             "scaleDistribution": {
               "type": "linear"
@@ -311,18 +384,47 @@
                 "value": null
               }
             ]
-          },
-          "unit": "none"
+          }
         },
-        "overrides": []
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byRegexp",
+              "options": "CPU Busy"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
+              },
+              {
+                "id": "unit",
+                "value": "percent"
+              }
+            ]
+          },
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
+              }
+            ]
+          }
+        ]
       },
       "gridPos": {
-        "h": 8,
+        "h": 9,
         "w": 12,
         "x": 0,
-        "y": 9
+        "y": 11
       },
-      "id": 23,
+      "id": 19,
+      "maxDataPoints": 500,
       "options": {
         "legend": {
           "calcs": [],
@@ -341,13 +443,28 @@
             "uid": "${DS_PROMETHEUS}"
           },
           "exemplar": true,
-          "expr": "sum by (type) (rate(taler_exchange_num_keyexchanges{} 
[2m]))",
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
+          "instant": false,
           "interval": "",
-          "legendFormat": "{{ type }}",
+          "intervalFactor": 1,
+          "legendFormat": "Requests",
           "refId": "A"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": "100 - (avg(rate(node_cpu_seconds_total{mode=\"idle\", 
component=\"wallet\"}[$__rate_interval]))*100)",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "CPU Busy",
+          "refId": "B"
         }
       ],
-      "title": "Key Exchanges",
+      "title": " [Wallet] Requests vs Average CPU",
       "type": "timeseries"
     },
     {
@@ -356,38 +473,33 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 17
+        "y": 20
       },
-      "id": 16,
+      "id": 15,
       "panels": [],
       "title": "Database",
       "type": "row"
     },
     {
-      "datasource": {
-        "type": "datasource",
-        "uid": "-- Mixed --"
-      },
-      "description": "",
       "fieldConfig": {
         "defaults": {
           "color": {
-            "mode": "thresholds"
+            "mode": "palette-classic"
           },
           "custom": {
-            "axisLabel": "Slow Queries / Second",
+            "axisLabel": "",
             "axisPlacement": "auto",
             "barAlignment": 0,
             "drawStyle": "line",
-            "fillOpacity": 19,
-            "gradientMode": "hue",
+            "fillOpacity": 0,
+            "gradientMode": "none",
             "hideFrom": {
               "legend": false,
               "tooltip": false,
               "viz": false
             },
             "lineInterpolation": "linear",
-            "lineWidth": 1,
+            "lineWidth": 2,
             "pointSize": 5,
             "scaleDistribution": {
               "type": "linear"
@@ -409,32 +521,53 @@
               {
                 "color": "green",
                 "value": null
-              },
+              }
+            ]
+          }
+        },
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byRegexp",
+              "options": "CPU Busy"
+            },
+            "properties": [
               {
-                "color": "#EAB839",
-                "value": 5
+                "id": "custom.axisPlacement",
+                "value": "right"
               },
               {
-                "color": "red",
-                "value": 10
+                "id": "unit",
+                "value": "percent"
               }
             ]
           },
-          "unit": "SQ/s"
-        },
-        "overrides": []
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
+              }
+            ]
+          }
+        ]
       },
       "gridPos": {
         "h": 9,
         "w": 12,
         "x": 0,
-        "y": 18
+        "y": 21
       },
-      "id": 4,
+      "id": 3,
+      "maxDataPoints": 500,
       "options": {
         "legend": {
           "calcs": [],
-          "displayMode": "hidden",
+          "displayMode": "list",
           "placement": "bottom"
         },
         "tooltip": {
@@ -445,26 +578,40 @@
       "targets": [
         {
           "datasource": {
-            "type": "loki",
-            "uid": "${DS_LOKI}"
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
           },
-          "expr": "rate({app=\"taler-database\", type=\"slow-query\"} [1m])",
-          "hide": false,
+          "exemplar": true,
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
+          "interval": "",
+          "legendFormat": "Requests",
           "refId": "A"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": "100 - (avg by (instance) 
(rate(node_cpu_seconds_total{mode=\"idle\", 
component=\"database\"}[$__rate_interval]))*100)",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "CPU Busy",
+          "refId": "B"
         }
       ],
-      "title": "Slow Queries",
+      "title": "[Database] Requests vs CPU",
       "type": "timeseries"
     },
     {
-      "description": "Serialization Errors per Second and Request-Type",
+      "description": "",
       "fieldConfig": {
         "defaults": {
           "color": {
             "mode": "palette-classic"
           },
           "custom": {
-            "axisLabel": "Serialization Errors / Second",
+            "axisLabel": "",
             "axisPlacement": "auto",
             "barAlignment": 0,
             "drawStyle": "line",
@@ -476,7 +623,7 @@
               "viz": false
             },
             "lineInterpolation": "linear",
-            "lineWidth": 1,
+            "lineWidth": 2,
             "pointSize": 5,
             "scaleDistribution": {
               "type": "linear"
@@ -500,18 +647,47 @@
                 "value": null
               }
             ]
-          },
-          "unit": "none"
+          }
         },
-        "overrides": []
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byRegexp",
+              "options": "Network (.*)"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
+              },
+              {
+                "id": "unit",
+                "value": "bps"
+              }
+            ]
+          },
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
+              }
+            ]
+          }
+        ]
       },
       "gridPos": {
         "h": 9,
         "w": 12,
         "x": 12,
-        "y": 18
+        "y": 21
       },
-      "id": 2,
+      "id": 8,
+      "maxDataPoints": 500,
       "options": {
         "legend": {
           "calcs": [],
@@ -523,94 +699,181 @@
           "sort": "none"
         }
       },
-      "pluginVersion": "8.2.5",
       "targets": [
         {
-          "datasource": {
-            "type": "prometheus",
-            "uid": "${DS_PROMETHEUS}"
-          },
           "exemplar": true,
-          "expr": "sum by (type) 
(rate(taler_exchange_serialization_failures{}[1m]))",
-          "instant": false,
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
           "interval": "",
-          "legendFormat": "{{type}}",
+          "intervalFactor": 1,
+          "legendFormat": "Requests",
           "refId": "A"
+        },
+        {
+          "exemplar": true,
+          "expr": 
"sum(rate(node_network_receive_bytes_total{component=\"database\"}[$__rate_interval])
 + rate(node_network_transmit_bytes_total{component=\"database\"} 
[$__rate_interval]))*8",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "Network Bandwidth",
+          "refId": "B"
         }
       ],
-      "title": "Serialization Errors",
-      "transformations": [],
+      "title": "[Database] Requests vs Network Traffic",
       "type": "timeseries"
     },
     {
-      "description": "Number of serialization errors by request endpoint 
(type) since the last exchange restarts",
+      "description": "",
       "fieldConfig": {
         "defaults": {
           "color": {
-            "mode": "thresholds"
+            "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": 2,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "auto",
+            "spanNulls": false,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
           },
           "mappings": [],
           "thresholds": {
             "mode": "absolute",
             "steps": [
               {
-                "color": "text",
+                "color": "green",
                 "value": null
-              },
-              {
-                "color": "red",
-                "value": 100
               }
             ]
           }
         },
-        "overrides": []
-      },
-      "gridPos": {
-        "h": 8,
-        "w": 10,
-        "x": 0,
-        "y": 27
-      },
-      "id": 6,
-      "options": {
-        "displayMode": "basic",
-        "orientation": "horizontal",
-        "reduceOptions": {
-          "calcs": [
-            "lastNotNull"
-          ],
-          "fields": "",
-          "values": false
-        },
-        "showUnfilled": true,
-        "text": {}
-      },
-      "pluginVersion": "8.4.3",
-      "targets": [
-        {
-          "exemplar": true,
-          "expr": "sort_desc (sum by(type) 
(taler_exchange_serialization_failures{}))",
-          "instant": true,
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Database Size"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
+              },
+              {
+                "id": "unit",
+                "value": "bytes"
+              }
+            ]
+          },
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Total Requests"
+            },
+            "properties": [
+              {
+                "id": "unit",
+                "value": "short"
+              }
+            ]
+          }
+        ]
+      },
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 0,
+        "y": 30
+      },
+      "id": 5,
+      "maxDataPoints": 500,
+      "options": {
+        "legend": {
+          "calcs": [],
+          "displayMode": "list",
+          "placement": "bottom"
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
+      "targets": [
+        {
+          "exemplar": true,
+          "expr": "nginx_http_requests_total{}",
           "interval": "",
-          "legendFormat": "{{type}}",
+          "intervalFactor": 1,
+          "legendFormat": "Requests",
           "refId": "A"
+        },
+        {
+          "exemplar": true,
+          "expr": "sum(pg_database_size_bytes{instance=\"127.0.0.1:9187\"})",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Database Size",
+          "refId": "C"
         }
       ],
-      "title": "Serialization Errors by Request Type",
-      "transformations": [],
-      "type": "bargauge"
+      "title": "Total Requests vs Disk Space used",
+      "type": "timeseries"
     },
     {
-      "description": "Total number of serialization errors that happened since 
last exchange restarts",
+      "description": "",
       "fieldConfig": {
         "defaults": {
           "color": {
-            "fixedColor": "text",
-            "mode": "fixed"
+            "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": 2,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "auto",
+            "spanNulls": false,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
           },
           "mappings": [],
-          "noValue": "0",
           "thresholds": {
             "mode": "absolute",
             "steps": [
@@ -621,127 +884,242 @@
             ]
           }
         },
-        "overrides": []
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
+              }
+            ]
+          },
+          {
+            "matcher": {
+              "id": "byRegexp",
+              "options": "I/O Utilization(.*)"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
+              },
+              {
+                "id": "unit",
+                "value": "percentunit"
+              }
+            ]
+          }
+        ]
       },
       "gridPos": {
-        "h": 4,
-        "w": 4,
-        "x": 10,
-        "y": 27
+        "h": 9,
+        "w": 12,
+        "x": 12,
+        "y": 30
       },
-      "id": 8,
+      "id": 9,
+      "maxDataPoints": 500,
       "options": {
-        "colorMode": "value",
-        "graphMode": "none",
-        "justifyMode": "auto",
-        "orientation": "auto",
-        "reduceOptions": {
-          "calcs": [
-            "lastNotNull"
-          ],
-          "fields": "",
-          "values": false
-        },
-        "text": {},
-        "textMode": "auto"
-      },
-      "pluginVersion": "8.4.3",
+        "legend": {
+          "calcs": [],
+          "displayMode": "list",
+          "placement": "bottom"
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
       "targets": [
         {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
           "exemplar": true,
-          "expr": "sum(taler_exchange_serialization_failures{})",
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
           "interval": "",
-          "legendFormat": "",
+          "intervalFactor": 1,
+          "legendFormat": "Requests",
           "refId": "A"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": "sum by (device) 
(rate(node_disk_io_time_seconds_total{component=\"database\"} 
[$__rate_interval]))",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "I/O Utilization ({{device}})",
+          "refId": "C"
         }
       ],
-      "title": "Total Serialization Errors",
-      "type": "stat"
+      "title": "Requests vs I/O Utilization",
+      "type": "timeseries"
     },
     {
-      "description": "Number of serialization errors per request since the 
last exchange restarts",
+      "description": "",
       "fieldConfig": {
         "defaults": {
           "color": {
-            "mode": "thresholds"
-          },
-          "mappings": [
-            {
-              "options": {
-                "match": "nan",
-                "result": {
-                  "index": 0,
-                  "text": "-"
-                }
-              },
-              "type": "special"
+            "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": 2,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "auto",
+            "spanNulls": false,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
             }
-          ],
+          },
+          "mappings": [],
           "thresholds": {
             "mode": "absolute",
             "steps": [
               {
-                "color": "text",
+                "color": "green",
                 "value": null
+              }
+            ]
+          }
+        },
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Cache Hit Rate"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
               },
               {
-                "color": "red",
-                "value": 2
+                "id": "unit",
+                "value": "percentunit"
               }
             ]
           },
-          "unit": "percentunit"
-        },
-        "overrides": []
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
+              }
+            ]
+          }
+        ]
       },
       "gridPos": {
-        "h": 8,
-        "w": 10,
-        "x": 14,
-        "y": 27
+        "h": 9,
+        "w": 12,
+        "x": 0,
+        "y": 39
       },
-      "id": 12,
+      "id": 10,
+      "maxDataPoints": 500,
       "options": {
-        "displayMode": "basic",
-        "orientation": "horizontal",
-        "reduceOptions": {
-          "calcs": [
-            "lastNotNull"
-          ],
-          "fields": "",
-          "values": false
-        },
-        "showUnfilled": true,
-        "text": {}
-      },
-      "pluginVersion": "8.4.3",
+        "legend": {
+          "calcs": [],
+          "displayMode": "list",
+          "placement": "bottom"
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
       "targets": [
         {
           "exemplar": true,
-          "expr": "sort_desc(sum by(type) 
(rate(taler_exchange_serialization_failures{}[10m]))\n/\nsum by(type) 
(rate(taler_exchange_received_requests{}[10m])))",
-          "instant": true,
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
           "interval": "",
-          "legendFormat": "{{type}}",
+          "intervalFactor": 1,
+          "legendFormat": "Requests",
           "refId": "A"
+        },
+        {
+          "exemplar": true,
+          "expr": "pg_stat_database_blks_hit{instance=\"127.0.0.1:9187\", 
server=\"db.perf.taler:5432\", datname!~\"postgres|template.*|\"} / 
(pg_stat_database_blks_read{instance=\"127.0.0.1:9187\", 
server=\"db.perf.taler:5432\", datname!~\"postgres|template.*|\"} + 
pg_stat_database_blks_hit{instance=\"127.0.0.1:9187\", 
server=\"db.perf.taler:5432\", datname!~\"postgres|template.*|\"})",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Cache Hit Rate",
+          "refId": "C"
         }
       ],
-      "title": "Serialization Errors / Request",
-      "type": "bargauge"
+      "title": "Requests vs Cache Hit Rate",
+      "type": "timeseries"
     },
     {
       "datasource": {
         "type": "datasource",
         "uid": "-- Mixed --"
       },
-      "description": "Number of queries which took longer than the configured 
duration",
+      "description": "",
       "fieldConfig": {
         "defaults": {
           "color": {
-            "fixedColor": "text",
-            "mode": "fixed"
+            "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": 2,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "auto",
+            "spanNulls": false,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
           },
           "mappings": [],
-          "noValue": "0",
           "thresholds": {
             "mode": "absolute",
             "steps": [
@@ -752,61 +1130,131 @@
             ]
           }
         },
-        "overrides": []
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Slow Queries"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
+              },
+              {
+                "id": "custom.axisLabel",
+                "value": "Slow Queries / Second"
+              },
+              {
+                "id": "unit",
+                "value": "none"
+              },
+              {
+                "id": "custom.lineStyle",
+                "value": {
+                  "fill": "solid"
+                }
+              },
+              {
+                "id": "custom.fillOpacity",
+                "value": 15
+              }
+            ]
+          },
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
+              }
+            ]
+          }
+        ]
       },
       "gridPos": {
-        "h": 4,
-        "w": 4,
-        "x": 10,
-        "y": 31
+        "h": 9,
+        "w": 12,
+        "x": 12,
+        "y": 39
       },
-      "id": 10,
+      "id": 11,
+      "maxDataPoints": 500,
       "options": {
-        "colorMode": "value",
-        "graphMode": "none",
-        "justifyMode": "auto",
-        "orientation": "auto",
-        "reduceOptions": {
-          "calcs": [
-            "lastNotNull"
-          ],
-          "fields": "",
-          "values": false
-        },
-        "text": {},
-        "textMode": "auto"
-      },
-      "pluginVersion": "8.4.3",
+        "legend": {
+          "calcs": [],
+          "displayMode": "list",
+          "placement": "bottom"
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
       "targets": [
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "Requests",
+          "refId": "A"
+        },
         {
           "datasource": {
             "type": "loki",
             "uid": "${DS_LOKI}"
           },
-          "expr": "sum(count_over_time({app=\"taler-database\", 
type=\"slow-query\"} [$__range]))",
-          "instant": true,
-          "range": false,
-          "refId": "A"
+          "expr": "rate({app=\"taler-database\", type=\"slow-query\"} [1m])",
+          "hide": false,
+          "legendFormat": "Slow Queries",
+          "refId": "C"
         }
       ],
-      "title": "Total Slow Queries",
-      "type": "stat"
+      "title": "Requests vs Slow Queries",
+      "type": "timeseries"
     },
     {
-      "datasource": {
-        "type": "loki",
-        "uid": "${DS_LOKI}"
-      },
-      "description": "",
+      "description": "Serialization Errors per Second and Request-Type",
       "fieldConfig": {
         "defaults": {
           "color": {
-            "mode": "thresholds"
+            "mode": "palette-classic"
           },
           "custom": {
-            "align": "auto",
-            "displayMode": "json-view",
-            "filterable": false
+            "axisLabel": "",
+            "axisPlacement": "auto",
+            "barAlignment": 0,
+            "drawStyle": "line",
+            "fillOpacity": 0,
+            "gradientMode": "opacity",
+            "hideFrom": {
+              "legend": false,
+              "tooltip": false,
+              "viz": false
+            },
+            "lineInterpolation": "linear",
+            "lineWidth": 2,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "auto",
+            "spanNulls": false,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
           },
           "mappings": [],
           "thresholds": {
@@ -817,127 +1265,222 @@
                 "value": null
               }
             ]
-          }
+          },
+          "unit": "none"
         },
         "overrides": [
           {
             "matcher": {
               "id": "byName",
-              "options": "Count"
+              "options": "Serialization Errors"
             },
             "properties": [
               {
-                "id": "custom.width",
-                "value": 100
+                "id": "custom.axisPlacement",
+                "value": "right"
+              },
+              {
+                "id": "custom.axisLabel",
+                "value": "Serialization Errors / Second"
+              },
+              {
+                "id": "unit"
+              }
+            ]
+          },
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Requests"
+            },
+            "properties": [
+              {
+                "id": "custom.axisLabel",
+                "value": "Requests / Second"
               }
             ]
           }
         ]
       },
       "gridPos": {
-        "h": 7,
-        "w": 24,
+        "h": 9,
+        "w": 12,
         "x": 0,
-        "y": 35
+        "y": 48
       },
-      "id": 14,
+      "id": 18,
       "options": {
-        "footer": {
-          "fields": "",
-          "reducer": [
-            "sum"
-          ],
-          "show": false
-        },
-        "frameIndex": 1,
-        "showHeader": true,
-        "sortBy": []
-      },
-      "pluginVersion": "8.4.3",
+        "legend": {
+          "calcs": [],
+          "displayMode": "list",
+          "placement": "bottom"
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
+      "pluginVersion": "8.2.5",
       "targets": [
         {
-          "datasource": {
-            "type": "loki",
-            "uid": "${DS_LOKI}"
-          },
-          "expr": "sum by (query) (count_over_time({app=\"taler-database\", 
type=\"slow-query\"} | regexp \"(?P<query>.*)\" [$__range]))",
-          "instant": true,
-          "range": false,
+          "exemplar": true,
+          "expr": "sum(rate(nginx_http_requests_total{} [$__rate_interval]))",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Requests",
+          "refId": "B"
+        },
+        {
+          "exemplar": true,
+          "expr": "sum (rate(taler_exchange_serialization_failures{}[1m]))",
+          "instant": false,
+          "interval": "",
+          "legendFormat": "Serialization Errors",
           "refId": "A"
         }
       ],
-      "title": "Slow Query Occurences",
-      "transformations": [
-        {
-          "id": "groupBy",
-          "options": {
-            "fields": {
-              "Query": {
-                "aggregations": [
-                  "count"
-                ],
-                "operation": "groupby"
+      "title": "Requests vs Serialization Errors",
+      "transformations": [],
+      "type": "timeseries"
+    },
+    {
+      "datasource": {
+        "type": "datasource",
+        "uid": "-- Mixed --"
+      },
+      "description": "",
+      "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": 2,
+            "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
+              }
+            ]
+          },
+          "unit": "s"
+        },
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Slow Queries"
+            },
+            "properties": [
+              {
+                "id": "custom.axisPlacement",
+                "value": "right"
               },
-              "Value": {
-                "aggregations": [
-                  "lastNotNull"
-                ],
-                "operation": "aggregate"
+              {
+                "id": "custom.axisLabel",
+                "value": "Slow Queries / Second"
               },
-              "Value #A": {
-                "aggregations": [
-                  "lastNotNull"
-                ],
-                "operation": "aggregate"
+              {
+                "id": "unit",
+                "value": "none"
               },
-              "app": {
-                "aggregations": [
-                  "count"
-                ],
-                "operation": "aggregate"
+              {
+                "id": "custom.drawStyle",
+                "value": "line"
+              },
+              {
+                "id": "custom.lineStyle"
               },
-              "query": {
-                "aggregations": [],
-                "operation": "groupby"
+              {
+                "id": "custom.fillOpacity",
+                "value": 15
               }
-            }
+            ]
           }
+        ]
+      },
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 12,
+        "y": 48
+      },
+      "id": 16,
+      "options": {
+        "legend": {
+          "calcs": [],
+          "displayMode": "list",
+          "placement": "bottom"
         },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
+      "targets": [
         {
-          "id": "organize",
-          "options": {
-            "excludeByName": {},
-            "indexByName": {},
-            "renameByName": {
-              "Value #A (lastNotNull)": "Count",
-              "Value (lastNotNull)": "Count",
-              "app (count)": "Count",
-              "query": "Query"
-            }
-          }
+          "datasource": {
+            "type": "loki",
+            "uid": "${DS_LOKI}"
+          },
+          "expr": "rate({app=\"taler-database\", type=\"slow-query\"} [1m])",
+          "hide": false,
+          "legendFormat": "Slow Queries",
+          "refId": "A",
+          "resolution": 1
         },
         {
-          "id": "sortBy",
-          "options": {
-            "fields": {},
-            "sort": [
-              {
-                "desc": true,
-                "field": "Count"
-              }
-            ]
-          }
+          "datasource": {
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": "avg 
((rate(taler_requests_response_time_hist_sum{endpoint!~\"keys|terms\", 
status=\"200\"} [2m]) ) / 
(rate(taler_requests_response_time_hist_count{endpoint!~\"keys|terms\", 
status=\"200\"} [2m])))",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Average Response Time",
+          "refId": "B"
         }
       ],
-      "type": "table"
+      "title": "Proxy Response Time vs Slow Queries",
+      "type": "timeseries"
     }
   ],
   "refresh": "10s",
   "schemaVersion": 35,
   "style": "dark",
   "tags": [
-    "performance",
-    "taler"
+    "taler",
+    "performance"
   ],
   "templating": {
     "list": []
@@ -948,8 +1491,8 @@
   },
   "timepicker": {},
   "timezone": "",
-  "title": "Exchange",
-  "uid": "NYO0EIE7k",
-  "version": 32,
+  "title": "Load Statistics",
+  "uid": "rkyhDAt7z",
+  "version": 63,
   "weekStart": ""
 }
\ No newline at end of file
diff --git a/additional/recover/docker-compose.yaml 
b/additional/recover/docker-compose.yaml
index 018f84c..e117b2b 100644
--- a/additional/recover/docker-compose.yaml
+++ b/additional/recover/docker-compose.yaml
@@ -49,9 +49,9 @@ services:
     container_name: grafana-renderer
 
   loki:
+    hostname: loki
     image: grafana/loki:latest
     restart: 'no'
-    hostname: loki
     container_name: loki
     user: "${U_ID}:${G_ID}"
     ports:
diff --git a/configs/etc/monitor/loki.yaml b/configs/etc/monitor/loki.yaml
index e00581b..461ea19 100644
--- a/configs/etc/monitor/loki.yaml
+++ b/configs/etc/monitor/loki.yaml
@@ -10,7 +10,7 @@ querier:
 ingester:
   wal:
     enabled: true
-    dir: /tmp/wal
+    dir: /tmp/loki/wal
   lifecycler:
     address: 127.0.0.1
     ring:
diff --git a/experiment/scripts/data-backup.sh 
b/experiment/scripts/data-backup.sh
index c250e2e..f6d9411 100755
--- a/experiment/scripts/data-backup.sh
+++ b/experiment/scripts/data-backup.sh
@@ -14,7 +14,7 @@ LOKI_DATA_DIR=/tmp/loki
 SNAPSHOT_COPY_PATH=${LOG_DIR}/tmp-data-snapshot
 SNAPSHOT_PERS_FILE=${LOG_DIR}/data-snapshot.tar.gz
 
-mkdir "${SNAPSHOT_COPY_PATH}"
+mkdir "${SNAPSHOT_COPY_PATH}" || true
 
 END_TIME=$(date +%s)
 
@@ -36,5 +36,5 @@ SNAPSHOT_TIME=${END_TIME}
 " >> "${SNAPSHOT_COPY_PATH}/times.env"
 
 rm -rf "${SNAPSHOT_PERS_FILE}"
-tar -czvf "${SNAPSHOT_PERS_FILE}" -C "${SNAPSHOT_COPY_PATH}" 
"${SNAPSHOT_COPY_PATH}"
+tar -C "${SNAPSHOT_COPY_PATH}" -czvf "${SNAPSHOT_PERS_FILE}" .
 rm -rf "${SNAPSHOT_COPY_PATH}"

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]