gnunet-svn
[Top][All Lists]
Advanced

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

[taler-grid5k] branch master updated (0c6cce0 -> fce059e)


From: gnunet
Subject: [taler-grid5k] branch master updated (0c6cce0 -> fce059e)
Date: Fri, 10 Jun 2022 11:54:31 +0200

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

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

    from 0c6cce0  Merge branch 'node-setup'
     new 9100c9b  double denominations
     new 744a2b1  fix benchmark
     new f1ae478  remove additional coins
     new 9b9f305  no fees
     new aaa9061  fix
     new 964dcdd  fix template
     new bd3955b  tets nginx local logs
     new 257ab64  remove custom rsyslog
     new 8884c49  nginx log
     new 2e09a8a  minor changes
     new 596f1ac  add num deposits
     new fce059e  integrate final changes

The 12 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 additional/grafana/load-statistics.json      | 229 ++++++++++++++++++++++++++-
 configs/etc/monitor/promtail-nginx.yaml      |  87 ++++++++++
 configs/etc/monitor/promtail.yaml            |   5 +-
 configs/etc/taler/conf.d/exchange-coins.conf |   6 +-
 experiment/README.md                         |  10 +-
 experiment/env                               |   9 ++
 experiment/scripts/benchmark.sh              |  10 +-
 experiment/scripts/database.sh               |   2 +-
 8 files changed, 343 insertions(+), 15 deletions(-)
 create mode 100644 configs/etc/monitor/promtail-nginx.yaml

diff --git a/additional/grafana/load-statistics.json 
b/additional/grafana/load-statistics.json
index 58dd08f..f62ee62 100644
--- a/additional/grafana/load-statistics.json
+++ b/additional/grafana/load-statistics.json
@@ -1574,7 +1574,7 @@
       "gridPos": {
         "h": 9,
         "w": 12,
-        "x": 6,
+        "x": 0,
         "y": 57
       },
       "id": 16,
@@ -1616,6 +1616,231 @@
       ],
       "title": "Proxy Response Time vs Slow Queries",
       "type": "timeseries"
+    },
+    {
+      "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
+              }
+            ]
+          }
+        },
+        "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": 57
+      },
+      "id": 24,
+      "maxDataPoints": 500,
+      "options": {
+        "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": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": 
"sum(rate(node_network_receive_bytes_total{component=\"proxy\"}[$__rate_interval])
 + rate(node_network_transmit_bytes_total{component=\"proxy\"} 
[$__rate_interval]))*8",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "Network Bandwidth",
+          "refId": "B"
+        }
+      ],
+      "title": "[Exch Proxy] Requests vs Network Traffic",
+      "type": "timeseries"
+    },
+    {
+      "datasource": {
+        "type": "datasource",
+        "uid": "-- Mixed --"
+      },
+      "description": "This shows if Nginx reports more requests than we 
receive in Promtail - if so, probably the local syslog receivers of Nginx are 
too slow.",
+      "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": "short"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 9,
+        "w": 12,
+        "x": 6,
+        "y": 66
+      },
+      "id": 25,
+      "options": {
+        "legend": {
+          "calcs": [],
+          "displayMode": "list",
+          "placement": "bottom"
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
+      "targets": [
+        {
+          "datasource": {
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": "sum(rate(taler_requests_total_requests{}[2m]))",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Promtail",
+          "refId": "A"
+        },
+        {
+          "datasource": {
+            "type": "prometheus",
+            "uid": "${DS_PROMETHEUS}"
+          },
+          "exemplar": true,
+          "expr": "sum(rate(nginx_http_requests_total{}[2m]))",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Nginx",
+          "refId": "B"
+        }
+      ],
+      "title": "Measured Requests",
+      "type": "timeseries"
     }
   ],
   "refresh": "10s",
@@ -1636,6 +1861,6 @@
   "timezone": "",
   "title": "Load Statistics",
   "uid": "rkyhDAt7z",
-  "version": 77,
+  "version": 81,
   "weekStart": ""
 }
\ No newline at end of file
diff --git a/configs/etc/monitor/promtail-nginx.yaml 
b/configs/etc/monitor/promtail-nginx.yaml
new file mode 100644
index 0000000..812801d
--- /dev/null
+++ b/configs/etc/monitor/promtail-nginx.yaml
@@ -0,0 +1,87 @@
+server:
+  http_listen_port: 9080
+  grpc_listen_port: 0
+
+positions:
+  filename: /tmp/positions.yaml
+
+clients:
+  - url: http://monitor.perf.taler:80/loki/api/v1/push
+
+scrape_configs:
+
+- job_name: nginx
+  static_configs:
+    - targets:
+        - localhost
+      labels:
+        job: nginx
+        __path__: /var/log/nginx/*log
+  relabel_configs:
+    - source_labels: [__syslog_message_app_name]
+      target_label: app
+  pipeline_stages:
+    - match:
+        selector: '{job="proxy"}'
+        stages:
+        - regex:
+            expression: 
'uri=/(?P<ep>[a-zA-Z]+)(?:/\w+)?(?:/(?P<act>[a-zA-Z-]+))? 
s=(?P<status>\d{3}).*urt=(?P<urt>\d+\.\d+|-) rt=(?P<response_time>\d+\.\d+) 
rl=(?P<request_length>\d+) bs=(?P<bytes_sent>\d+)'
+        - template:
+            source: endpoint
+            template: '{{ printf "%s-%s" .ep .act | trimSuffix "-" }}'
+        - template:
+            source: upstream_response_time
+            template: '{{ .urt | replace "-" "0" }}'
+        - labels:
+            endpoint:
+            status:
+        - metrics:
+            total_requests:
+              prefix: 'taler_requests_'
+              type: Counter
+              description: "Total Requests"
+              config:
+                match_all: true
+                action: inc
+            # Used to calculate 'over_time' statistics
+            response_time:
+              prefix: 'taler_requests_'
+              type: Gauge
+              description: "Time taken for Nginx to respond"
+              source: response_time
+              max_idle_duration: 24h
+              config:
+                action: set
+            # 
https://www.robustperception.io/how-does-a-prometheus-histogram-work
+            request_length_hist:
+              prefix: 'taler_requests_'
+              type: Histogram
+              description: "Request Length reported from Nginx"
+              source: request_length
+              max_idle_duration: 24h
+              config:
+                buckets: [1,10,50,100,200,500,1000,2000,5000] 
+            bytes_sent_hist:
+              prefix: 'taler_requests_'
+              type: Histogram
+              description: "Number of bytes sent, reported from Nginx"
+              source: bytes_sent
+              max_idle_duration: 24h
+              config:
+                buckets: [1,10,50,100,200,500,1000,2000,5000] 
+            response_time_hist:
+              prefix: 'taler_requests_'
+              type: Histogram
+              description: "Time taken for Nginx to respond"
+              source: response_time
+              max_idle_duration: 24h
+              config:
+                buckets: 
[0.001,0.0025,0.005,0.010,0.025,0.050,0.1,0.25,0.5,1,2,5]
+            upstream_response_time_hist:
+              prefix: 'taler_requests_'
+              type: Histogram
+              description: "Time taken for the Exchange to respond to Nginx"
+              source: upstream_response_time
+              max_idle_duration: 24h
+              config:
+                buckets: 
[0.001,0.0025,0.005,0.010,0.025,0.050,0.1,0.25,0.5,1,2,5]
diff --git a/configs/etc/monitor/promtail.yaml 
b/configs/etc/monitor/promtail.yaml
index f87698d..9187129 100644
--- a/configs/etc/monitor/promtail.yaml
+++ b/configs/etc/monitor/promtail.yaml
@@ -77,10 +77,13 @@ scrape_configs:
         selector: '{job="proxy"}'
         stages:
         - regex:
-            expression: 
'uri=/(?P<ep>[a-zA-Z]+)(?:/\w+)?(?:/(?P<act>[a-zA-Z-]+))? 
s=(?P<status>\d{3}).*urt=(?P<upstream_response_time>\d+\.\d+) 
rt=(?P<response_time>\d+\.\d+) rl=(?P<request_length>\d+) 
bs=(?P<bytes_sent>\d+)'
+            expression: 
'uri=/(?P<ep>[a-zA-Z]+)(?:/\w+)?(?:/(?P<act>[a-zA-Z-]+))? 
s=(?P<status>\d{3}).*urt=(?P<urt>\d+\.\d+|-) rt=(?P<response_time>\d+\.\d+) 
rl=(?P<request_length>\d+) bs=(?P<bytes_sent>\d+)'
         - template:
             source: endpoint
             template: '{{ printf "%s-%s" .ep .act | trimSuffix "-" }}'
+        - template:
+            source: upstream_response_time
+            template: '{{ .urt | replace "-" "0" }}'
         - labels:
             endpoint:
             status:
diff --git a/configs/etc/taler/conf.d/exchange-coins.conf 
b/configs/etc/taler/conf.d/exchange-coins.conf
index 5c12389..c3dcacc 100644
--- a/configs/etc/taler/conf.d/exchange-coins.conf
+++ b/configs/etc/taler/conf.d/exchange-coins.conf
@@ -7,7 +7,7 @@ DURATION_WITHDRAW = 7 days
 DURATION_SPEND = 2 years
 DURATION_LEGAL = 6 years
 FEE_WITHDRAW = KUDOS:0
-FEE_DEPOSIT = KUDOS:1
+FEE_DEPOSIT = KUDOS:0
 FEE_REFRESH = KUDOS:0
 FEE_REFUND = KUDOS:0
 RSA_KEYSIZE = <RSA_KEY_SIZE_HERE>
@@ -19,7 +19,7 @@ DURATION_WITHDRAW = 7 days
 DURATION_SPEND = 2 years
 DURATION_LEGAL = 6 years
 FEE_WITHDRAW = KUDOS:0
-FEE_DEPOSIT = KUDOS:1
+FEE_DEPOSIT = KUDOS:0
 FEE_REFRESH = KUDOS:0
 FEE_REFUND = KUDOS:0
 RSA_KEYSIZE = <RSA_KEY_SIZE_HERE>
@@ -31,7 +31,7 @@ DURATION_WITHDRAW = 7 days
 DURATION_SPEND = 2 years
 DURATION_LEGAL = 6 years
 FEE_WITHDRAW = KUDOS:0
-FEE_DEPOSIT = KUDOS:1
+FEE_DEPOSIT = KUDOS:0
 FEE_REFRESH = KUDOS:0
 FEE_REFUND = KUDOS:0
 RSA_KEYSIZE = <RSA_KEY_SIZE_HERE>
diff --git a/experiment/README.md b/experiment/README.md
index 79c5277..015ff3c 100644
--- a/experiment/README.md
+++ b/experiment/README.md
@@ -86,18 +86,22 @@ processes would have to be restarted afterwards.
 **NOTE** On `taler-perf`, when not using a terminal opened from jFed make sure 
to forward the ssh-agent
          to make the script work. E.g. `ssh -A graoully-3.nancy.grid5000.fr` 
(from an access machine).
 
-To add more exchange processes run `taler-perf stop exchange <NUM>` on any node
+To add more exchange processes run `taler-perf start exchange <NUM>` on any 
node
+To add more wirewatch processes run `taler-perf start wirewatch <NUM>` on any 
node
 To add more wallet processes run `taler-perf start wallet <NUM>` on any node
 
 They can also be stopped in the same way: `taler-perf stop <KIND> <NUM>`
 
 ### Experiment Persistence
 
+**Please make sure that important panel changes in Grafana are saved into the 
json files in `additonal/grafana`**
+**This can be done clicking the share button in the top left corner of a 
dashboard then `Export` enable `Export for sharing externally` and finally 
`Save to file`.**
+
 The script `../additional/persist.sh` can be used to backup and clean the data 
in the grid5k NFS.
-This archive created can then be passed to `../additional/recover.sh`, which 
will run a local Grafana setup
+This archive created can then be passed to `../additional/recover/run.sh`, 
which will run a local Grafana setup
 in which the experiment can be inspected again.
 
-For this to work the service `taler-databackup` using `scripts/data-backup.sh` 
is run periodically.
+For this to work the service `taler-databackup` using 
`scripts/prometheus-backup.sh` is run periodically.
 Loki data is directly written to the NFS. For the best results it is needed to 
stop loki on the `monitor` node
 before an experiment ends - otherwise some of the loki data might become 
corrupt.
 
diff --git a/experiment/env b/experiment/env
index b05e9be..fdf256e 100644
--- a/experiment/env
+++ b/experiment/env
@@ -118,6 +118,15 @@ TALER_WALLET_INSECURE_TRUST_EXCHANGE=1
 # Do batch withdrawals of a reserve rather than single coins
 TALER_WALLET_BATCH_WITHDRAWAL=1
 
+# Number of deposits per wallet iteration (withdraw)
+# Amount to withdraw is caluclated as follows:
+# (num_deposits + 1) * 10 
+# This must also be configured in WITHDRAW ONLY
+NUM_DEPOSITS=20
+# If the number of deposits should be selected randomly
+# from 1 to NUM_DEPOSITS
+RAND_DEPOSITS=true
+
 # Initial number of exchange processes to run.
 # default = 10
 # Start another bunch with `taler-perf start exchange <N>`
diff --git a/experiment/scripts/benchmark.sh b/experiment/scripts/benchmark.sh
index 4466923..1861aeb 100755
--- a/experiment/scripts/benchmark.sh
+++ b/experiment/scripts/benchmark.sh
@@ -27,9 +27,8 @@ function start_wallet_bench() {
     LOG_LEVEL=INFO
   fi
 
-  NUM_DEPOSITS=$(($RANDOM % 21))
-  if [[ ${WALLET_WITHDRAW_ONLY} == "true" ]]; then
-    NUM_DEPOSITS=0
+  if [[ "${RAND_DEPOSITS}" == "true" ]]; then
+     NUM_DEPOSITS=$(($RANDOM % ${NUM_DEPOSITS} + 1))
   fi
 
   if [[ "${WALLET_BENCHMARK}" == bench3 ]] && \
@@ -45,7 +44,7 @@ function start_wallet_bench() {
       \"paytoTemplate\": 
\"payto://x-taler-bank/bank.${DNS_ZONE}/merchant-\${id}?receiver-name=merchant\",
       \"randomAlg\": \"${WALLET_MERCHANT_SELECTION}\",
       \"numMerchants\": ${WALLET_NUM_MERCHANTS},
-      \"iterations\": 1000,
+      \"iterations\": 500,
       \"deposits\": ${NUM_DEPOSITS},
       \"restartAfter\": 2
     }"
@@ -62,8 +61,9 @@ function start_wallet_bench() {
       \"bank\": \"${PROTO}://bank.${DNS_ZONE}/\",
       \"currency\": \"KUDOS\",
       \"payto\": 
\"payto://x-taler-bank/bank.${DNS_ZONE}/merchant-1?receiver-name=merchant-1\",
-      \"iterations\": 1000,
+      \"iterations\": 500,
       \"deposits\": ${NUM_DEPOSITS},
+      \"withdrawOnly\": ${WALLET_WITHDRAW_ONLY},
       \"restartAfter\": 2
     }"
   fi
diff --git a/experiment/scripts/database.sh b/experiment/scripts/database.sh
index 17fb0ab..58e0027 100755
--- a/experiment/scripts/database.sh
+++ b/experiment/scripts/database.sh
@@ -42,7 +42,7 @@ function setup_disks() {
 
 # Setup Postgres to use RAM instead of disks to store data
 function setup_ram_storage() {
-  SIZE=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) / 4))
+  SIZE=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) / 2))
   if ! df | grep -q /tmp/postgresql; then
     mv /tmp/postgresql /tmp/postgresql.bak
     mkdir /tmp/postgresql

-- 
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]