[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-grid5k] branch master updated (87b3f10 -> 653b702)
From: |
gnunet |
Subject: |
[taler-grid5k] branch master updated (87b3f10 -> 653b702) |
Date: |
Sat, 28 May 2022 12:11:20 +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 87b3f10 fail if times.env not found
new 14ac82c add shard user and domain in taler config
new 95c98c1 nodejs must be installed manually
new 6506006 nodejs must be installed manually
new 3ad7d6c fix permissions
new e820bed bank log on different port
new 2cac183 fix promtail
new 4e424eb drop loglines from fakebank when done
new 4aee291 recognize bench3 in promtail
new b5a1da0 update dashboards
new 80a4273 fix merchant
new 93dcf2f add auditor config files
new 9a5b551 first auditor script steps
new 9f3e04c fix typo
new e54be67 various fixes for auditor
new 2843457 further changes
new 97e2035 auditor added to exchange
new 248392e update
new cd2b71b towards working replication
new 16e0c5a logical replication implemented
new 8e8e8da add auditor in db monitoring
new 61f18f2 update
new 5112524 verified auditor
new 4774aaf update auditor pg conf
new 72ac8f0 recover run.sh discard wget ouptup
new 38acd35 auditor db in /tmp of G5k
new dfc8781 fix setup.sh
new a56db87 different updates
new bcbd2e3 log query parameters in nginx
new 476ce80 nginx query params break loki
new cfaa7fc add some comments to auditor.sh
new be57fcf fix update of g5k repo
new a92a926 update bank
new 2ae575d update bank
new 83f9cd5 increase bank size
new d31cd2d wallet build broken
new 2ebad47 optimistically increase file limit
new 780cb4e custom metrics of postgres exporter only work when selecting
a db in the url
new dc2c10d add relabel to prometheus
new 4e7f513 add relabel to prometheus
new 5d73658 not working
new 9c916dd add wait events
new 35a61ca fix metric
new 1e9d072 fix metric
new 2c3d3c1 added new panels for db statistics
new f6649ae update dashboards
new df3da27 fix db dashboard
new b84926b changes to rspec and dashboards
new 653b702 integrate final changes from setup
The 48 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/database.json | 1596 +++++++++++++++++---
additional/grafana/exchange.json | 34 +-
additional/grafana/load-statistics.json | 44 +-
additional/grafana/proxy.json | 16 +-
additional/grafana/request-statistics.json | 186 ++-
additional/grafana/transactions.json | 640 ++++++--
additional/persist.sh | 21 +-
additional/recover/run.sh | 32 +-
.../rspecs/taler.many.with-auditor.rspec | 137 +-
additional/rspecs/taler.minial.rspec | 26 +-
.../rspecs/taler.neowise.rspec | 250 +--
configs/etc/default/prometheus-postgres-exporter | 2 +-
configs/etc/monitor/node-exporters.yaml.tpl | 4 +
configs/etc/monitor/postgres-exporter.yaml | 14 +
configs/etc/monitor/promtail.yaml | 31 +-
.../nginx/sites-available/{merchant => auditor} | 11 +-
configs/etc/nginx/sites-available/exchange | 2 +
configs/etc/nginx/sites-available/fakebank | 2 +
configs/etc/nginx/sites-available/merchant | 3 +
configs/etc/taler/conf.d/auditor.conf | 16 +
configs/etc/taler/conf.d/exchange-business.conf | 2 +
configs/etc/taler/conf.d/fake-bank.conf | 1 +
configs/etc/taler/secrets/exchange-db.secret.conf | 3 +
.../lib/systemd/system/taler-auditor-httpd.service | 13 +
.../systemd/system/taler-exchange-httpd@.service | 1 +
.../system/taler-exchange-secmod-cs.service | 1 +
.../system/taler-exchange-secmod-eddsa.service | 2 +-
.../system/taler-exchange-secmod-rsa.service | 1 +
.../usr/lib/systemd/system/taler-fakebank.service | 4 +-
.../usr/lib/systemd/system/taler-netdelay.timer | 2 +-
experiment/env | 26 +-
experiment/scripts/auditor.sh | 290 ++++
experiment/scripts/bank.sh | 18 +
experiment/scripts/bench2.sh | 15 +
experiment/scripts/benchmark.sh | 45 +-
experiment/scripts/createusers.sh | 39 +
experiment/scripts/database.sh | 83 +-
experiment/scripts/exchange-proxy.sh | 2 +-
experiment/scripts/exchange.sh | 11 +-
experiment/scripts/helpers.sh | 27 +-
experiment/scripts/monitor.sh | 34 +-
experiment/scripts/run.sh | 5 +
experiment/scripts/setup.sh | 20 +-
experiment/scripts/shard.sh | 5 +-
experiment/scripts/taler-perf.sh | 6 +-
experiment/taler.many.rspec | 126 +-
image/debian11/taler-debian11.yaml | 7 +-
47 files changed, 2968 insertions(+), 888 deletions(-)
copy experiment/taler.many.rspec =>
additional/rspecs/taler.many.with-auditor.rspec (91%)
copy experiment/taler.many.rspec => additional/rspecs/taler.neowise.rspec (64%)
copy configs/etc/nginx/sites-available/{merchant => auditor} (60%)
create mode 100644 configs/etc/taler/conf.d/auditor.conf
create mode 100644 configs/usr/lib/systemd/system/taler-auditor-httpd.service
create mode 100755 experiment/scripts/auditor.sh
create mode 100644 experiment/scripts/bench2.sh
diff --git a/additional/grafana/database.json b/additional/grafana/database.json
index 1d3140a..985ab20 100644
--- a/additional/grafana/database.json
+++ b/additional/grafana/database.json
@@ -15,7 +15,7 @@
"type": "grafana",
"id": "grafana",
"name": "Grafana",
- "version": "8.4.3"
+ "version": "8.4.6"
},
{
"type": "panel",
@@ -35,6 +35,12 @@
"name": "Stat",
"version": ""
},
+ {
+ "type": "panel",
+ "id": "table",
+ "name": "Table",
+ "version": ""
+ },
{
"type": "panel",
"id": "timeseries",
@@ -67,7 +73,7 @@
"gnetId": 6742,
"graphTooltip": 1,
"id": null,
- "iteration": 1649441739195,
+ "iteration": 1653494175678,
"links": [],
"liveNow": false,
"panels": [
@@ -143,7 +149,7 @@
"text": {},
"textMode": "name"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -221,7 +227,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -271,7 +277,7 @@
}
]
},
- "unit": "bytes"
+ "unit": "none"
},
"overrides": []
},
@@ -281,7 +287,7 @@
"x": 6,
"y": 1
},
- "id": 56,
+ "id": 64,
"links": [],
"maxDataPoints": 100,
"options": {
@@ -291,7 +297,7 @@
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
- "lastNotNull"
+ "mean"
],
"fields": "",
"values": false
@@ -299,11 +305,11 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
- "expr": "pg_settings_shared_buffers_bytes{instance=\"$instance\",
server=\"$server\"}",
+ "expr": "pg_settings_max_worker_processes{instance=\"$instance\",
server=\"$server\"}",
"format": "time_series",
"instant": true,
"interval": "",
@@ -312,7 +318,7 @@
"refId": "A"
}
],
- "title": "Shared Buffers",
+ "title": "Max Worker Processes",
"type": "stat"
},
{
@@ -349,7 +355,7 @@
}
]
},
- "unit": "bytes"
+ "unit": "none"
},
"overrides": []
},
@@ -359,7 +365,7 @@
"x": 9,
"y": 1
},
- "id": 58,
+ "id": 68,
"links": [],
"maxDataPoints": 100,
"options": {
@@ -377,11 +383,11 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
- "expr":
"pg_settings_effective_cache_size_bytes{instance=\"$instance\",
server=\"$server\"}",
+ "expr": "pg_settings_max_parallel_workers{instance=\"$instance\",
server=\"$server\"}",
"format": "time_series",
"instant": true,
"interval": "",
@@ -390,7 +396,7 @@
"refId": "A"
}
],
- "title": "Effective Cache",
+ "title": "Max Parallel Workers",
"type": "stat"
},
{
@@ -455,7 +461,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -533,7 +539,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -612,7 +618,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -691,7 +697,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -769,7 +775,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -847,7 +853,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -897,7 +903,7 @@
}
]
},
- "unit": "none"
+ "unit": "bytes"
},
"overrides": []
},
@@ -907,7 +913,7 @@
"x": 6,
"y": 4
},
- "id": 64,
+ "id": 56,
"links": [],
"maxDataPoints": 100,
"options": {
@@ -917,7 +923,7 @@
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
- "mean"
+ "lastNotNull"
],
"fields": "",
"values": false
@@ -925,11 +931,11 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
- "expr": "pg_settings_max_worker_processes{instance=\"$instance\",
server=\"$server\"}",
+ "expr": "pg_settings_shared_buffers_bytes{instance=\"$instance\",
server=\"$server\"}",
"format": "time_series",
"instant": true,
"interval": "",
@@ -938,7 +944,7 @@
"refId": "A"
}
],
- "title": "Max Worker Processes",
+ "title": "Shared Buffers",
"type": "stat"
},
{
@@ -975,7 +981,7 @@
}
]
},
- "unit": "none"
+ "unit": "bytes"
},
"overrides": []
},
@@ -985,7 +991,7 @@
"x": 9,
"y": 4
},
- "id": 68,
+ "id": 58,
"links": [],
"maxDataPoints": 100,
"options": {
@@ -1003,11 +1009,11 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
- "expr": "pg_settings_max_parallel_workers{instance=\"$instance\",
server=\"$server\"}",
+ "expr":
"pg_settings_effective_cache_size_bytes{instance=\"$instance\",
server=\"$server\"}",
"format": "time_series",
"instant": true,
"interval": "",
@@ -1016,7 +1022,7 @@
"refId": "A"
}
],
- "title": "Max Parallel Workers",
+ "title": "Effective Cache",
"type": "stat"
},
{
@@ -1064,7 +1070,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -1122,7 +1128,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -1180,7 +1186,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -1254,7 +1260,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -1411,7 +1417,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -1512,7 +1518,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -1612,7 +1618,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -1727,7 +1733,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -1812,7 +1818,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -1870,199 +1876,1344 @@
}
},
{
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 34
- },
- "id": 50,
- "panels": [],
- "title": "Misc",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "custom": {
+ "align": "auto",
+ "displayMode": "auto"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
},
- "fill": 1,
- "fillGradient": 0,
"gridPos": {
- "h": 6,
- "w": 17,
+ "h": 10,
+ "w": 12,
"x": 0,
- "y": 35
- },
- "hiddenSeries": false,
- "id": 46,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "rightSide": true,
- "show": true,
- "total": false,
- "values": true
+ "y": 34
},
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
+ "id": 103,
"options": {
- "alertThreshold": true
+ "footer": {
+ "fields": "",
+ "reducer": [
+ "sum"
+ ],
+ "show": false
+ },
+ "frameIndex": 6,
+ "showHeader": true
},
- "percentage": false,
- "pluginVersion": "8.4.3",
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
+ "pluginVersion": "8.4.6",
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
"exemplar": true,
- "expr":
"irate(pg_stat_bgwriter_buffers_backend{instance=\"$instance\",
server=\"$server\"}[5m])",
- "format": "time_series",
+ "expr": "rate(pg_wait_events_count{instance=\"$instance\",
server=\"$server\"} [5m])",
"interval": "",
- "intervalFactor": 1,
- "legendFormat": "buffers_backend",
+ "legendFormat": "",
"refId": "A"
- },
+ }
+ ],
+ "title": "Wait Events",
+ "transformations": [
{
- "exemplar": true,
- "expr":
"irate(pg_stat_bgwriter_buffers_alloc{instance=\"$instance\",
server=\"$server\"}[5m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "buffers_alloc",
- "refId": "B"
+ "id": "labelsToFields",
+ "options": {
+ "keepLabels": [
+ "wait_event",
+ "wait_event_type"
+ ]
+ }
},
{
- "exemplar": true,
- "expr":
"irate(pg_stat_bgwriter_buffers_backend_fsync{instance=\"$instance\",
server=\"$server\"}[5m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "backend_fsync",
- "refId": "C"
+ "id": "groupBy",
+ "options": {
+ "fields": {
+ "Value": {
+ "aggregations": [
+ "lastNotNull"
+ ],
+ "operation": "aggregate"
+ },
+ "wait_event": {
+ "aggregations": [],
+ "operation": "groupby"
+ },
+ "wait_event_type": {
+ "aggregations": [],
+ "operation": "groupby"
+ }
+ }
+ }
},
{
- "exemplar": true,
- "expr":
"irate(pg_stat_bgwriter_buffers_checkpoint{instance=\"$instance\",
server=\"$server\"}[5m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "buffers_checkpoint",
- "refId": "D"
+ "id": "merge",
+ "options": {}
},
{
- "exemplar": true,
- "expr":
"irate(pg_stat_bgwriter_buffers_clean{instance=\"$instance\",
server=\"$server\"}[5m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "buffers_clean",
- "refId": "E"
- }
- ],
- "thresholds": [],
- "timeRegions": [],
- "title": "Buffers (bgwriter)",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "mode": "time",
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "$$hashKey": "object:97",
- "format": "short",
- "logBase": 1,
- "show": true
+ "id": "organize",
+ "options": {
+ "excludeByName": {},
+ "indexByName": {
+ "Value (sum)": 2,
+ "wait_event": 1,
+ "wait_event_type": 0
+ },
+ "renameByName": {
+ "Value (lastNotNull)": "Count per Second",
+ "Value (sum)": "Count per Second",
+ "wait_event": "Event",
+ "wait_event_type": "Type"
+ }
+ }
},
{
- "$$hashKey": "object:98",
- "format": "short",
- "logBase": 1,
- "show": true
+ "id": "sortBy",
+ "options": {
+ "fields": {},
+ "sort": [
+ {
+ "desc": true,
+ "field": "Count per Second"
+ }
+ ]
+ }
}
],
- "yaxis": {
- "align": false
- }
+ "type": "table"
},
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 7,
- "x": 17,
- "y": 35
- },
- "hiddenSeries": false,
- "id": 28,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
- },
- "percentage": false,
- "pluginVersion": "8.4.3",
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
},
- "exemplar": true,
- "expr": "irate(pg_stat_database_conflicts{instance=\"$instance\",
datname=~\"taler(.*)\", server=\"$server\"}[5m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "conflicts",
- "refId": "B"
- },
- {
- "datasource": {
+ "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": 10,
+ "w": 12,
+ "x": 12,
+ "y": 34
+ },
+ "id": 104,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "pluginVersion": "8.4.6",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (wait_event_type, wait_event)
(rate(pg_wait_events_count{instance=\"$instance\", server=\"$server\"} [5m]))",
+ "interval": "",
+ "legendFormat": "{{wait_event}} ({{ wait_event_type }})",
+ "refId": "A"
+ }
+ ],
+ "title": "Wait Events per Second",
+ "transformations": [],
+ "type": "timeseries"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 44
+ },
+ "id": 92,
+ "panels": [],
+ "title": "Table Statistics",
+ "type": "row"
+ },
+ {
+ "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": 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": [
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": [
+ "Value"
+ ],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 45
+ },
+ "id": 94,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (relnamenew)
(label_replace(rate(pg_stat_user_tables_seq_scan{server=\"$server\",
instance=\"$instance\"} [5m]), \"relnamenew\", \"$1\", \"relname\",
\"(.*[^_0-9])(_[0-9]+)*\"))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{ relnamenew }}",
+ "refId": "B"
+ }
+ ],
+ "title": "Sequential Scans per Second",
+ "transformations": [],
+ "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": 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": [
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": [
+ "Value"
+ ],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 45
+ },
+ "id": 95,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (relnamenew)
(label_replace(rate(pg_stat_user_tables_idx_scan{instance=\"$instance\",
server=\"$server\"} [5m]), \"relnamenew\", \"$1\", \"relname\",
\"(.*[^_0-9])(_[0-9]+)*\"))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{ relnamenew }}",
+ "refId": "B"
+ }
+ ],
+ "title": "Index Scans per Second",
+ "transformations": [],
+ "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": 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": [
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": [
+ "Value"
+ ],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 53
+ },
+ "id": 98,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (relnamenew)
(label_replace(rate(pg_stat_user_tables_n_live_tup{instance=\"$instance\",
server=\"$server\"} [5m]), \"relnamenew\", \"$1\", \"relname\",
\"(.*[^_0-9])(_[0-9]+)*\"))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{ relnamenew }}",
+ "refId": "B"
+ }
+ ],
+ "title": "Live Tuples (Rate)",
+ "transformations": [],
+ "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": 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": [
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": [
+ "Value"
+ ],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 53
+ },
+ "id": 96,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (relnamenew)
(label_replace(rate(pg_stat_user_tables_n_dead_tup{instance=\"$instance\",
server=\"$server\"} [5m]), \"relnamenew\", \"$1\", \"relname\",
\"(.*[^_0-9])(_[0-9]+)*\"))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{ relnamenew }}",
+ "refId": "B"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "title": "Dead Tuples (Rate)",
+ "transformations": [],
+ "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": 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": [
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": [
+ "Value"
+ ],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 61
+ },
+ "id": 100,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (relnamenew)
(label_replace(rate(pg_stat_user_tables_n_tup_upd{instance=\"$instance\",
server=\"$server\"} [5m]), \"relnamenew\", \"$1\", \"relname\",
\"(.*[^_0-9])(_[0-9]+)*\"))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{ relnamenew }}",
+ "refId": "B"
+ }
+ ],
+ "title": "Updates per Second (HOT Included)",
+ "transformations": [],
+ "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": 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": [
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": [
+ "Value"
+ ],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 61
+ },
+ "id": 99,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (relnamenew)
(label_replace(rate(pg_stat_user_tables_n_tup_hot_upd{instance=\"$instance\",
server=\"$server\"} [5m]), \"relnamenew\", \"$1\", \"relname\",
\"(.*[^_0-9])(_[0-9]+)*\"))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{ relnamenew }}",
+ "refId": "B"
+ }
+ ],
+ "title": "Hot Updates per Second",
+ "transformations": [],
+ "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": 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": [
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": [
+ "Value"
+ ],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 69
+ },
+ "id": 97,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (relnamenew)
(label_replace(rate(pg_stat_user_tables_autovacuum_count{instance=\"$instance\",
server=\"$server\"} [5m]), \"relnamenew\", \"$1\", \"relname\",
\"(.*[^_0-9])(_[0-9]+)*\"))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{ relnamenew }}",
+ "refId": "B"
+ }
+ ],
+ "title": "Autovaccums per Second",
+ "transformations": [],
+ "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": 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": [
+ {
+ "__systemRef": "hideSeriesFrom",
+ "matcher": {
+ "id": "byNames",
+ "options": {
+ "mode": "exclude",
+ "names": [
+ "Value"
+ ],
+ "prefix": "All except:",
+ "readOnly": true
+ }
+ },
+ "properties": [
+ {
+ "id": "custom.hideFrom",
+ "value": {
+ "legend": false,
+ "tooltip": false,
+ "viz": true
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 69
+ },
+ "id": 101,
+ "options": {
+ "legend": {
+ "calcs": [],
+ "displayMode": "table",
+ "placement": "bottom"
+ },
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "sum by (relnamenew)
(label_replace(rate(pg_stat_user_tables_autoanalyze_count{instance=\"$instance\",
server=\"$server\"} [5m]), \"relnamenew\", \"$1\", \"relname\",
\"(.*[^_0-9])(_[0-9]+)*\"))",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "{{ relnamenew }}",
+ "refId": "B"
+ }
+ ],
+ "title": "Autoanalyzes per Second",
+ "transformations": [],
+ "type": "timeseries"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 77
+ },
+ "id": 50,
+ "panels": [],
+ "title": "Misc",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 17,
+ "x": 0,
+ "y": 78
+ },
+ "hiddenSeries": false,
+ "id": 46,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "8.4.6",
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "exemplar": true,
+ "expr":
"irate(pg_stat_bgwriter_buffers_backend{instance=\"$instance\",
server=\"$server\"}[5m])",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "buffers_backend",
+ "refId": "A"
+ },
+ {
+ "exemplar": true,
+ "expr":
"irate(pg_stat_bgwriter_buffers_alloc{instance=\"$instance\",
server=\"$server\"}[5m])",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "buffers_alloc",
+ "refId": "B"
+ },
+ {
+ "exemplar": true,
+ "expr":
"irate(pg_stat_bgwriter_buffers_backend_fsync{instance=\"$instance\",
server=\"$server\"}[5m])",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "backend_fsync",
+ "refId": "C"
+ },
+ {
+ "exemplar": true,
+ "expr":
"irate(pg_stat_bgwriter_buffers_checkpoint{instance=\"$instance\",
server=\"$server\"}[5m])",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "buffers_checkpoint",
+ "refId": "D"
+ },
+ {
+ "exemplar": true,
+ "expr":
"irate(pg_stat_bgwriter_buffers_clean{instance=\"$instance\",
server=\"$server\"}[5m])",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "buffers_clean",
+ "refId": "E"
+ }
+ ],
+ "thresholds": [],
+ "timeRegions": [],
+ "title": "Buffers (bgwriter)",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "mode": "time",
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "$$hashKey": "object:97",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ },
+ {
+ "$$hashKey": "object:98",
+ "format": "short",
+ "logBase": 1,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 6,
+ "w": 7,
+ "x": 17,
+ "y": 78
+ },
+ "hiddenSeries": false,
+ "id": 28,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "alertThreshold": true
+ },
+ "percentage": false,
+ "pluginVersion": "8.4.6",
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": true,
+ "expr": "irate(pg_stat_database_conflicts{instance=\"$instance\",
datname=~\"taler(.*)\", server=\"$server\"}[5m])",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "conflicts",
+ "refId": "B"
+ },
+ {
+ "datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
@@ -2119,7 +3270,7 @@
"h": 7,
"w": 17,
"x": 0,
- "y": 41
+ "y": 84
},
"hiddenSeries": false,
"id": 30,
@@ -2142,7 +3293,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -2210,7 +3361,7 @@
"h": 7,
"w": 7,
"x": 17,
- "y": 41
+ "y": 84
},
"hiddenSeries": false,
"id": 40,
@@ -2231,7 +3382,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -2299,7 +3450,7 @@
"h": 9,
"w": 24,
"x": 0,
- "y": 48
+ "y": 91
},
"hiddenSeries": false,
"id": 38,
@@ -2321,7 +3472,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -2395,7 +3546,7 @@
"h": 7,
"w": 20,
"x": 0,
- "y": 57
+ "y": 100
},
"hiddenSeries": false,
"id": 80,
@@ -2419,7 +3570,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
@@ -2802,7 +3953,7 @@
"h": 7,
"w": 4,
"x": 20,
- "y": 57
+ "y": 100
},
"id": 78,
"links": [],
@@ -2822,7 +3973,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -2830,7 +3981,7 @@
"uid": "${DS_PROMETHEUS}"
},
"dsType": "prometheus",
- "exemplar": true,
+ "exemplar": false,
"expr":
"sum(irate(pg_stat_database_xact_commit{datname=~\"taler(.*)\",instance=~\"$instance\",
server=\"$server\"}[5m])) +
sum(irate(pg_stat_database_xact_rollback{datname=~\"taler(.*)\",instance=~\"$instance\",
server=\"$server\"}[5m]))",
"format": "time_series",
"groupBy": [
@@ -2847,6 +3998,7 @@
"type": "fill"
}
],
+ "instant": true,
"interval": "",
"intervalFactor": 2,
"legendFormat": "",
@@ -2888,7 +4040,7 @@
"type": "stat"
}
],
- "refresh": "1m",
+ "refresh": "30s",
"schemaVersion": 35,
"style": "dark",
"tags": [
@@ -2980,6 +4132,6 @@
"timezone": "",
"title": "Database",
"uid": "2FTtdeOnk",
- "version": 99,
+ "version": 118,
"weekStart": ""
}
\ No newline at end of file
diff --git a/additional/grafana/exchange.json b/additional/grafana/exchange.json
index e60c581..e75dfab 100644
--- a/additional/grafana/exchange.json
+++ b/additional/grafana/exchange.json
@@ -29,7 +29,7 @@
"type": "grafana",
"id": "grafana",
"name": "Grafana",
- "version": "8.4.3"
+ "version": "8.4.6"
},
{
"type": "datasource",
@@ -586,7 +586,7 @@
"showUnfilled": true,
"text": {}
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -657,7 +657,7 @@
"showUnfilled": true,
"text": {}
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -715,7 +715,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
@@ -784,7 +784,7 @@
},
"showUnfilled": true
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -868,7 +868,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -936,7 +936,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1011,7 +1011,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1074,7 +1074,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1143,7 +1143,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1218,7 +1218,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1286,7 +1286,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1357,7 +1357,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1436,20 +1436,20 @@
"showHeader": true,
"sortBy": []
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "sum by (query) (count_over_time({app=\"taler-database\",
type=\"slow-query\"} | regexp \"(?P<query>.*)\" [$__range]))",
+ "expr": "sum by (query) (count_over_time({app=\"taler-database\",
type=\"slow-query\"} | regexp \"(?P<query>.*)\" [5m]))",
"instant": true,
"range": false,
"refId": "A"
}
],
- "title": "Slow Query Occurences",
+ "title": "Slow Query Occurences [5m]",
"transformations": [
{
"id": "groupBy",
@@ -1533,6 +1533,6 @@
"timezone": "",
"title": "Exchange",
"uid": "NYO0EIE7k",
- "version": 38,
+ "version": 40,
"weekStart": ""
}
\ No newline at end of file
diff --git a/additional/grafana/load-statistics.json
b/additional/grafana/load-statistics.json
index 6fef09f..58dd08f 100644
--- a/additional/grafana/load-statistics.json
+++ b/additional/grafana/load-statistics.json
@@ -589,7 +589,7 @@
"mode": "palette-classic"
},
"custom": {
- "axisLabel": "",
+ "axisLabel": "Requests / Second",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
@@ -630,8 +630,8 @@
"overrides": [
{
"matcher": {
- "id": "byName",
- "options": "Database Size"
+ "id": "byRegexp",
+ "options": "Database(.*)"
},
"properties": [
{
@@ -641,18 +641,10 @@
{
"id": "unit",
"value": "bytes"
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "Total Requests"
- },
- "properties": [
+ },
{
- "id": "unit",
- "value": "short"
+ "id": "custom.axisLabel",
+ "value": "Database Size"
}
]
}
@@ -696,14 +688,30 @@
"uid": "${DS_PROMETHEUS}"
},
"exemplar": true,
- "expr": "sum(pg_database_size_bytes{instance=\"127.0.0.1:9187\"})",
+ "expr": "sum by (datname)
(pg_database_size_bytes{instance=\"127.0.0.1:9187\",
datname=~\"taler-exchange|taler-ingress\"})",
"hide": false,
"interval": "",
- "legendFormat": "Database Size",
+ "legendFormat": "Database Size {{ datname }}",
"refId": "C"
}
],
"title": "[Database] Total Requests vs Disk Space used",
+ "transformations": [
+ {
+ "id": "renameByRegex",
+ "options": {
+ "regex": "taler-exchange",
+ "renamePattern": "Exchange"
+ }
+ },
+ {
+ "id": "renameByRegex",
+ "options": {
+ "regex": "taler-ingress",
+ "renamePattern": "Auditor"
+ }
+ }
+ ],
"type": "timeseries"
},
{
@@ -1599,7 +1607,7 @@
"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])))",
+ "expr": "avg
((rate(taler_requests_response_time_hist_sum{endpoint!~\"keys|terms|wire\",
status=\"200\"} [2m]) ) /
(rate(taler_requests_response_time_hist_count{endpoint!~\"keys|terms|wire\",
status=\"200\"} [2m])))",
"hide": false,
"interval": "",
"legendFormat": "Average Response Time",
@@ -1628,6 +1636,6 @@
"timezone": "",
"title": "Load Statistics",
"uid": "rkyhDAt7z",
- "version": 72,
+ "version": 77,
"weekStart": ""
}
\ No newline at end of file
diff --git a/additional/grafana/proxy.json b/additional/grafana/proxy.json
index ee2949a..58f94bb 100644
--- a/additional/grafana/proxy.json
+++ b/additional/grafana/proxy.json
@@ -15,7 +15,7 @@
"type": "grafana",
"id": "grafana",
"name": "Grafana",
- "version": "8.4.3"
+ "version": "8.4.6"
},
{
"type": "panel",
@@ -61,7 +61,7 @@
"gnetId": 12708,
"graphTooltip": 0,
"id": null,
- "iteration": 1649441826256,
+ "iteration": 1652602026981,
"links": [],
"liveNow": false,
"panels": [
@@ -122,7 +122,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -220,7 +220,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -326,7 +326,7 @@
"alertThreshold": true
},
"percentage": false,
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"pointradius": 2,
"points": false,
"renderer": "flot",
@@ -451,7 +451,7 @@
"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])))",
+ "expr": "avg
((rate(taler_requests_response_time_hist_sum{endpoint!~\"keys|terms|wire\",
status=\"200\"} [2m]) ) /
(rate(taler_requests_response_time_hist_count{endpoint!~\"keys|terms|wire\",
status=\"200\"} [2m])))",
"interval": "",
"legendFormat": "Response Time",
"refId": "A"
@@ -538,7 +538,7 @@
"uid": "${DS_PROMETHEUS}"
},
"exemplar": true,
- "expr": "avg
((rate(taler_requests_upstream_response_time_hist_sum{endpoint!~\"keys|terms\",
status=\"200\"} [2m]) ) /
(rate(taler_requests_upstream_response_time_hist_count{endpoint!~\"keys|terms\",
status=\"200\"} [2m])))",
+ "expr": "avg
((rate(taler_requests_upstream_response_time_hist_sum{endpoint!~\"keys|terms|wire\",
status=\"200\"} [2m]) ) /
(rate(taler_requests_upstream_response_time_hist_count{endpoint!~\"keys|terms|wire\",
status=\"200\"} [2m])))",
"interval": "",
"legendFormat": "Upstream Response Time",
"refId": "A"
@@ -635,6 +635,6 @@
"timezone": "",
"title": "Proxy",
"uid": "MsjffzSZz",
- "version": 16,
+ "version": 18,
"weekStart": ""
}
\ No newline at end of file
diff --git a/additional/grafana/request-statistics.json
b/additional/grafana/request-statistics.json
index 41cbe40..7336130 100644
--- a/additional/grafana/request-statistics.json
+++ b/additional/grafana/request-statistics.json
@@ -23,7 +23,7 @@
"type": "grafana",
"id": "grafana",
"name": "Grafana",
- "version": "8.4.3"
+ "version": "8.4.6"
},
{
"type": "datasource",
@@ -74,7 +74,7 @@
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
- "iteration": 1649441773439,
+ "iteration": 1653636762901,
"links": [],
"liveNow": false,
"panels": [
@@ -142,20 +142,20 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=~\"wallet(.*)\" | unwrap duration(time) [$__range])",
+ "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=~\"wallet(.*)\" | unwrap duration(time) [$interval])",
"instant": true,
"range": false,
"refId": "A"
}
],
- "title": "RTT Wallet-Proxy",
+ "title": "RTT Wallet-Proxy [$interval]",
"type": "stat"
},
{
@@ -209,20 +209,20 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=~\"eproxy(.*)\" | unwrap duration(time) [$__range])",
+ "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=~\"eproxy(.*)\" | unwrap duration(time) [$interval])",
"instant": true,
"range": false,
"refId": "A"
}
],
- "title": "RTT Proxy-Exchange",
+ "title": "RTT Proxy-Exchange [$interval]",
"type": "stat"
},
{
@@ -276,20 +276,20 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "avg_over_time({app=\"taler-network\", job=\"taler\"} |
logfmt | src=~\"exchange(.*)\" | unwrap duration(time) [$__range])",
+ "expr": "avg_over_time({app=\"taler-network\", job=\"taler\"} |
logfmt | src=~\"exchange(.*)\" | unwrap duration(time) [$interval])",
"instant": true,
"range": false,
"refId": "A"
}
],
- "title": "RTT Exchange-Database",
+ "title": "RTT Exchange-Database [$interval]",
"type": "stat"
},
{
@@ -343,20 +343,20 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=\"aggregator\" | unwrap duration(time) [$__range]) or
avg_over_time({app=\"taler-network\", job=\"taler\"} | logfmt |
src=~\"exchange(.*)\" | unwrap duration(time) [$__range])",
+ "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=\"aggregator\" | unwrap duration(time) [$interval]) or
avg_over_time({app=\"taler-network\", job=\"taler\"} | logfmt |
src=~\"exchange(.*)\" | unwrap duration(time) [$interval])",
"instant": true,
"range": false,
"refId": "A"
}
],
- "title": "RTT Aggregator-Database",
+ "title": "RTT Aggregator-Database [$interval]",
"type": "stat"
},
{
@@ -410,20 +410,20 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=\"closer\" | unwrap duration(time) [$__range]) or
avg_over_time({app=\"taler-network\", job=\"taler\"} | logfmt |
src=~\"exchange(.*)\" | unwrap duration(time) [$__range])",
+ "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=\"closer\" | unwrap duration(time) [$interval]) or
avg_over_time({app=\"taler-network\", job=\"taler\"} | logfmt |
src=~\"exchange(.*)\" | unwrap duration(time) [$interval])",
"instant": true,
"range": false,
"refId": "A"
}
],
- "title": "RTT Closer-Database",
+ "title": "RTT Closer-Database [$interval]",
"type": "stat"
},
{
@@ -477,20 +477,20 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=\"transfer\" | unwrap duration(time) [$__range]) or
avg_over_time({app=\"taler-network\", job=\"taler\"} | logfmt |
src=~\"exchange(.*)\" | unwrap duration(time) [$__range])",
+ "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=\"transfer\" | unwrap duration(time) [$interval]) or
avg_over_time({app=\"taler-network\", job=\"taler\"} | logfmt |
src=~\"exchange(.*)\" | unwrap duration(time) [$interval])",
"instant": true,
"range": false,
"refId": "A"
}
],
- "title": "RTT Transfer-Database",
+ "title": "RTT Transfer-Database [$interval]",
"type": "stat"
},
{
@@ -544,20 +544,20 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=\"wirewatch\" | unwrap duration(time) [$__range]) or
avg_over_time({app=\"taler-network\", job=\"taler\"} | logfmt |
src=~\"exchange(.*)\" | unwrap duration(time) [$__range])",
+ "expr": "avg_over_time({app=\"taler-network\"} | logfmt |
src=\"wirewatch\" | unwrap duration(time) [$interval]) or
avg_over_time({app=\"taler-network\", job=\"taler\"} | logfmt |
src=~\"exchange(.*)\" | unwrap duration(time) [$interval])",
"instant": true,
"range": false,
"refId": "A"
}
],
- "title": "RTT Wirewatch-Database",
+ "title": "RTT Wirewatch-Database [$interval]",
"type": "stat"
},
{
@@ -643,15 +643,19 @@
"pluginVersion": "8.2.5",
"targets": [
{
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
"exemplar": true,
- "expr": "sum by (type)
(rate(taler_exchange_serialization_failures{}[1m]))",
+ "expr": "sum by (type)
(rate(taler_exchange_serialization_failures{}[$interval]))",
"instant": false,
"interval": "",
"legendFormat": "{{type}}",
"refId": "A"
}
],
- "title": "Serialization Errors",
+ "title": "Serialization Errors [$interval]",
"transformations": [],
"type": "timeseries"
},
@@ -740,12 +744,12 @@
"type": "loki",
"uid": "${DS_LOKI}"
},
- "expr": "rate({app=\"taler-database\", type=\"slow-query\"} [1m])",
+ "expr": "rate({app=\"taler-database\", type=\"slow-query\"}
[$interval])",
"hide": false,
"refId": "A"
}
],
- "title": "Slow Queries",
+ "title": "Slow Queries [$interval]",
"type": "timeseries"
},
{
@@ -774,6 +778,7 @@
"mode": "thresholds"
},
"mappings": [],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -813,7 +818,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -834,25 +839,28 @@
"fieldConfig": {
"defaults": {
"color": {
- "mode": "continuous-GrYlRd"
+ "fixedColor": "green",
+ "mode": "fixed"
},
- "mappings": [],
- "max": 5,
- "min": 0,
+ "mappings": [
+ {
+ "options": {
+ "match": "null+nan",
+ "result": {
+ "index": 0,
+ "text": "0"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "noValue": "0",
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
- },
- {
- "color": "#EAB839",
- "value": 60
- },
- {
- "color": "red",
- "value": 80
}
]
},
@@ -882,7 +890,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -912,16 +920,13 @@
"mode": "thresholds"
},
"mappings": [],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
- },
- {
- "color": "red",
- "value": 80
}
]
},
@@ -951,7 +956,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1012,7 +1017,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1168,7 +1173,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1199,16 +1204,13 @@
"mode": "thresholds"
},
"mappings": [],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
- },
- {
- "color": "red",
- "value": 80
}
]
},
@@ -1238,7 +1240,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1266,16 +1268,13 @@
"mode": "thresholds"
},
"mappings": [],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
- },
- {
- "color": "red",
- "value": 80
}
]
},
@@ -1305,7 +1304,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1333,16 +1332,13 @@
"mode": "thresholds"
},
"mappings": [],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
- },
- {
- "color": "red",
- "value": 80
}
]
},
@@ -1372,7 +1368,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1396,7 +1392,19 @@
"fixedColor": "text",
"mode": "fixed"
},
- "mappings": [],
+ "mappings": [
+ {
+ "options": {
+ "match": "null+nan",
+ "result": {
+ "index": 0,
+ "text": "0"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -1431,7 +1439,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1548,17 +1556,25 @@
"color": {
"mode": "thresholds"
},
- "mappings": [],
+ "mappings": [
+ {
+ "options": {
+ "match": "null+nan",
+ "result": {
+ "index": 0,
+ "text": "0"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
- },
- {
- "color": "red",
- "value": 80
}
]
},
@@ -1588,7 +1604,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1612,7 +1628,19 @@
"fixedColor": "text",
"mode": "fixed"
},
- "mappings": [],
+ "mappings": [
+ {
+ "options": {
+ "match": "null+nan",
+ "result": {
+ "index": 0,
+ "text": "0"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -1647,7 +1675,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1667,7 +1695,7 @@
"type": "stat"
}
],
- "refresh": "1m",
+ "refresh": "30s",
"schemaVersion": 35,
"style": "dark",
"tags": [
@@ -1682,15 +1710,15 @@
"auto_min": "10s",
"current": {
"selected": false,
- "text": "3m",
- "value": "3m"
+ "text": "30s",
+ "value": "30s"
},
"hide": 0,
"label": "interval",
"name": "interval",
"options": [
{
- "selected": false,
+ "selected": true,
"text": "30s",
"value": "30s"
},
@@ -1705,7 +1733,7 @@
"value": "2m"
},
{
- "selected": true,
+ "selected": false,
"text": "3m",
"value": "3m"
},
@@ -1805,6 +1833,6 @@
"timezone": "browser",
"title": "Request Statistics",
"uid": "WcfSXqDnk",
- "version": 194,
+ "version": 205,
"weekStart": ""
}
\ No newline at end of file
diff --git a/additional/grafana/transactions.json
b/additional/grafana/transactions.json
index eaea241..d3bbdbc 100644
--- a/additional/grafana/transactions.json
+++ b/additional/grafana/transactions.json
@@ -19,6 +19,12 @@
],
"__elements": [],
"__requires": [
+ {
+ "type": "panel",
+ "id": "bargauge",
+ "name": "Bar gauge",
+ "version": ""
+ },
{
"type": "panel",
"id": "gauge",
@@ -29,7 +35,7 @@
"type": "grafana",
"id": "grafana",
"name": "Grafana",
- "version": "8.4.3"
+ "version": "8.4.6"
},
{
"type": "datasource",
@@ -143,7 +149,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -208,7 +214,7 @@
"showThresholdMarkers": true,
"text": {}
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -269,7 +275,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -331,7 +337,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -391,7 +397,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -410,6 +416,7 @@
"type": "stat"
},
{
+ "description": "Number of wirewatch processes running",
"fieldConfig": {
"defaults": {
"color": {
@@ -445,7 +452,7 @@
"x": 14,
"y": 1
},
- "id": 46,
+ "id": 41,
"options": {
"colorMode": "value",
"graphMode": "area",
@@ -461,7 +468,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -469,14 +476,14 @@
"uid": "${DS_PROMETHEUS}"
},
"exemplar": false,
- "expr":
"sum(node_systemd_unit_state{name=~\"taler-exchange-aggregator(.*).service\",
state=\"active\"})",
+ "expr":
"sum(node_systemd_unit_state{name=~\"taler-exchange-wirewatch(.*).service\",
state=\"active\"})",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
- "title": "# Aggregator",
+ "title": "# Wirewatch",
"type": "stat"
},
{
@@ -533,7 +540,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -592,7 +599,7 @@
"x": 18,
"y": 1
},
- "id": 51,
+ "id": 52,
"options": {
"colorMode": "value",
"graphMode": "area",
@@ -608,22 +615,18 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "exemplar": false,
- "expr":
"node_systemd_unit_state{name=\"taler-exchange-secmod-eddsa.service\",
state=\"active\"}",
+ "exemplar": true,
+ "expr":
"node_systemd_unit_state{name=\"taler-exchange-secmod-rsa.service\",
state=\"active\"}",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
- "title": "EdDSA",
+ "title": "RSA",
"type": "stat"
},
{
@@ -684,7 +687,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -744,7 +747,7 @@
"x": 22,
"y": 1
},
- "id": 47,
+ "id": 48,
"options": {
"colorMode": "value",
"graphMode": "area",
@@ -760,18 +763,18 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
- "expr": "node_systemd_unit_state{name=\"loki.service\",
state=\"active\"}",
+ "expr": "node_systemd_unit_state{name=\"promtail.service\",
state=\"active\"}",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
- "title": "Loki",
+ "title": "Promtail",
"type": "stat"
},
{
@@ -819,7 +822,7 @@
},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -838,7 +841,6 @@
"type": "stat"
},
{
- "description": "Number of wirewatch processes running",
"fieldConfig": {
"defaults": {
"color": {
@@ -874,7 +876,7 @@
"x": 14,
"y": 3
},
- "id": 41,
+ "id": 46,
"options": {
"colorMode": "value",
"graphMode": "area",
@@ -890,7 +892,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -898,14 +900,14 @@
"uid": "${DS_PROMETHEUS}"
},
"exemplar": false,
- "expr":
"sum(node_systemd_unit_state{name=~\"taler-exchange-wirewatch(.*).service\",
state=\"active\"})",
+ "expr":
"sum(node_systemd_unit_state{name=~\"taler-exchange-aggregator(.*).service\",
state=\"active\"})",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
- "title": "# Wirewatch",
+ "title": "# Aggregator",
"type": "stat"
},
{
@@ -960,7 +962,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1019,7 +1021,7 @@
"x": 18,
"y": 3
},
- "id": 52,
+ "id": 51,
"options": {
"colorMode": "value",
"graphMode": "area",
@@ -1035,18 +1037,98 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
- "exemplar": true,
- "expr":
"node_systemd_unit_state{name=\"taler-exchange-secmod-rsa.service\",
state=\"active\"}",
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": false,
+ "expr":
"node_systemd_unit_state{name=\"taler-exchange-secmod-eddsa.service\",
state=\"active\"}",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
- "title": "RSA",
+ "title": "EdDSA",
+ "type": "stat"
+ },
+ {
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "red",
+ "index": 1,
+ "text": "DOWN"
+ },
+ "1": {
+ "color": "green",
+ "index": 0,
+ "text": "OK"
+ }
+ },
+ "type": "value"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 2,
+ "x": 20,
+ "y": 3
+ },
+ "id": 79,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "text": {},
+ "textMode": "auto"
+ },
+ "pluginVersion": "8.4.6",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": false,
+ "expr": "node_systemd_unit_state{name=\"taler-fakebank.service\",
state=\"active\"}",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "title": "Fakebank",
"type": "stat"
},
{
@@ -1091,7 +1173,7 @@
"x": 22,
"y": 3
},
- "id": 48,
+ "id": 47,
"options": {
"colorMode": "value",
"graphMode": "area",
@@ -1107,18 +1189,18 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"exemplar": true,
- "expr": "node_systemd_unit_state{name=\"promtail.service\",
state=\"active\"}",
+ "expr": "node_systemd_unit_state{name=\"loki.service\",
state=\"active\"}",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
- "title": "Promtail",
+ "title": "Loki",
"type": "stat"
},
{
@@ -1131,11 +1213,11 @@
},
"id": 22,
"panels": [],
- "title": "Total TPS (Sucessful Requests)",
+ "title": "Total TPS",
"type": "row"
},
{
- "description": "Total successful (200) requests to /deposit and
/withdraw per second, measured at the nginx proxy in a 2 minute interval.",
+ "description": "Total successful (200) requests to /deposit and
/withdraw per second, measured at the nginx proxy in a 2 minute interval. Or if
with batch withdraw then the number of successful requests to /deposit plus the
number of coins returned in a batch request (measured by the exchange).",
"fieldConfig": {
"defaults": {
"color": {
@@ -1158,8 +1240,8 @@
"overrides": []
},
"gridPos": {
- "h": 9,
- "w": 5,
+ "h": 10,
+ "w": 10,
"x": 0,
"y": 6
},
@@ -1177,33 +1259,63 @@
"showThresholdMarkers": true,
"text": {}
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
- "exemplar": true,
- "expr": "sum
(rate(taler_requests_total_requests{endpoint=~\"reserves-withdraw|coins-deposit\",
status=\"200\"} [2m]))",
+ "exemplar": false,
+ "expr": "sum by (__name__)
(rate(taler_requests_total_requests{endpoint=\"coins-deposit\",
status=\"200\"}[2m]) or vector(0)) + on(__name__) sum by (__name__)
(rate(taler_requests_total_requests{endpoint=\"reserves-withdraw\",
status=\"200\"} [2m]) or vector(0)) + on (__name__) sum by (__name__)
(rate(taler_exchange_batch_withdraw_num_coins{} [2m]) or vector(0))",
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
- "title": "Current TPS ",
+ "title": "Current TPS [2m]",
"transformations": [],
"type": "gauge"
},
{
- "description": "Total successful (200) requests per second to /withdraw
per second, measured at the nginx proxy in a 5 minute interval.",
+ "description": "Total number of successful requests to /deposit and
/withdraw per second, measured at the nginx proxy and over a 2 minute interval.
Or if with batch withdraw then the number of successful requests to /deposit
plus the number of coins returned in a batch request (measured by the
exchange).",
"fieldConfig": {
"defaults": {
"color": {
- "mode": "continuous-RdYlGr"
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisLabel": "TPS",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 47,
+ "gradientMode": "opacity",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "smooth",
+ "lineStyle": {
+ "fill": "solid"
+ },
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
},
"mappings": [],
- "max": 100000,
"min": 0,
"thresholds": {
"mode": "absolute",
@@ -1213,33 +1325,29 @@
"value": null
}
]
- }
+ },
+ "unit": "none"
},
"overrides": []
},
"gridPos": {
- "h": 3,
- "w": 5,
- "x": 5,
+ "h": 9,
+ "w": 14,
+ "x": 10,
"y": 6
},
- "id": 4,
+ "id": 34,
"options": {
- "colorMode": "none",
- "graphMode": "none",
- "justifyMode": "center",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
+ "legend": {
+ "calcs": [],
+ "displayMode": "hidden",
+ "placement": "bottom"
},
- "text": {},
- "textMode": "auto"
+ "tooltip": {
+ "mode": "single",
+ "sort": "none"
+ }
},
- "pluginVersion": "8.4.3",
"targets": [
{
"datasource": {
@@ -1247,19 +1355,18 @@
"uid": "${DS_PROMETHEUS}"
},
"exemplar": false,
- "expr": "sum
(rate(taler_requests_total_requests{endpoint=\"reserves-withdraw\",
status=\"200\"} [5m] ))",
- "instant": true,
+ "expr": "sum by (__name__)
(rate(taler_requests_total_requests{endpoint=\"coins-deposit\",
status=\"200\"}[2m]) or vector(0)) + on(__name__) sum by (__name__)
(rate(taler_requests_total_requests{endpoint=\"reserves-withdraw\",
status=\"200\"} [2m]) or vector(0)) + on (__name__) sum by (__name__)
(rate(taler_exchange_batch_withdraw_num_coins{} [2m]) or vector(0))",
"interval": "",
- "legendFormat": "",
+ "intervalFactor": 2,
+ "legendFormat": "TPS",
"refId": "A"
}
],
- "title": "Withdrawals per Second ",
- "transformations": [],
- "type": "stat"
+ "title": "TPS History",
+ "type": "timeseries"
},
{
- "description": "Total number of successful requests to /deposit and
/withdraw per second, measured at the nginx proxy and over a 2 minute
interval.",
+ "description": "The TPS over Time per operation. For deposit its the
number of successful requests to /deposit. For withdraw it may be the number of
successful requests to /withdraw or the number of coins returned in a batch
request.",
"fieldConfig": {
"defaults": {
"color": {
@@ -1270,17 +1377,14 @@
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
- "fillOpacity": 47,
- "gradientMode": "opacity",
+ "fillOpacity": 22,
+ "gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
- "lineStyle": {
- "fill": "solid"
- },
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
@@ -1290,7 +1394,7 @@
"spanNulls": false,
"stacking": {
"group": "A",
- "mode": "none"
+ "mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
@@ -1311,16 +1415,16 @@
"overrides": []
},
"gridPos": {
- "h": 9,
+ "h": 10,
"w": 14,
"x": 10,
- "y": 6
+ "y": 15
},
- "id": 34,
+ "id": 76,
"options": {
"legend": {
"calcs": [],
- "displayMode": "hidden",
+ "displayMode": "list",
"placement": "bottom"
},
"tooltip": {
@@ -1334,17 +1438,173 @@
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
- "exemplar": true,
- "expr":
"sum(rate(taler_requests_total_requests{endpoint=~\"reserves-withdraw|coins-deposit\",
status=\"200\"}[2m]))",
+ "exemplar": false,
+ "expr": "sum by(__name__)
(rate(taler_requests_total_requests{endpoint=\"reserves-withdraw\",
status=\"200\"} [2m]) or vector(0)) + on () sum by (__name__)
(rate(taler_exchange_batch_withdraw_num_coins{} [2m]) or vector(0))",
"interval": "",
"intervalFactor": 2,
- "legendFormat": "TPS",
+ "legendFormat": "Withdraw",
"refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": false,
+ "expr":
"sum(rate(taler_requests_total_requests{endpoint=\"coins-deposit\",
status=\"200\"}[2m]))",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "Deposit",
+ "refId": "B"
}
],
- "title": "TPS History",
+ "title": "TPS History by Transaction",
"type": "timeseries"
},
+ {
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "text",
+ "value": 0
+ },
+ {
+ "color": "green",
+ "value": 1
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 5,
+ "x": 0,
+ "y": 16
+ },
+ "id": 78,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "8.4.6",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": false,
+ "expr":
"(sum(rate(taler_requests_total_requests{endpoint=\"reserves-batch-withdraw\"}[5s]))
or vector(0)) > bool 0",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "Batch",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": false,
+ "expr":
"(sum(rate(taler_requests_total_requests{endpoint=\"reserves-withdraw\"}[5s]))
or vector(0)) > bool 0",
+ "hide": false,
+ "instant": true,
+ "interval": "",
+ "legendFormat": "Normal",
+ "refId": "B"
+ }
+ ],
+ "title": "Withdraw Operation",
+ "transformations": [],
+ "type": "stat"
+ },
+ {
+ "description": "Total successful (200) requests per second to /withdraw
per second, measured at the nginx proxy in a 5 minute interval. Or if with
batch withdraw then the the number of coins returned in a batch request
(measured by the exchange).",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "continuous-RdYlGr"
+ },
+ "mappings": [],
+ "max": 100000,
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 5,
+ "x": 5,
+ "y": 16
+ },
+ "id": 4,
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "text": {},
+ "textMode": "auto"
+ },
+ "pluginVersion": "8.4.6",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": false,
+ "expr": "sum by (__name__)
(rate(taler_requests_total_requests{endpoint=\"reserves-withdraw\",
status=\"200\"} [5m]) or vector(0)) + on (__name__) sum by (__name__)
(rate(taler_exchange_batch_withdraw_num_coins{} [5m]) or vector(0))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "title": "Withdrawals per Second [5m]",
+ "transformations": [],
+ "type": "stat"
+ },
{
"description": "Total successful (200) requests to /deposit per second,
measured at the nginx proxy in a 5 minute interval.",
"fieldConfig": {
@@ -1355,6 +1615,7 @@
"mappings": [],
"max": 100000,
"min": 0,
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -1371,7 +1632,7 @@
"h": 3,
"w": 5,
"x": 5,
- "y": 9
+ "y": 19
},
"id": 30,
"options": {
@@ -1389,7 +1650,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1404,7 +1665,82 @@
"refId": "A"
}
],
- "title": "Payments per Second",
+ "title": "Payments per Second [5m]",
+ "transformations": [],
+ "type": "stat"
+ },
+ {
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [
+ {
+ "options": {
+ "match": "null+nan",
+ "result": {
+ "index": 0,
+ "text": "None"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "noValue": "None",
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "text",
+ "value": 0
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 5,
+ "x": 0,
+ "y": 20
+ },
+ "id": 80,
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "8.4.6",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": false,
+ "expr": "count
(label_replace(rate(pg_stat_user_tables_vacuum_count{relname=~\"reserves_[0-9]+\"}
[5m]), \"relnamenew\", \"$1\", \"relname\", \"(.*[^_0-9])(_[0-9]+)*\"))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "title": "Partitions",
"transformations": [],
"type": "stat"
},
@@ -1415,7 +1751,19 @@
"color": {
"mode": "thresholds"
},
- "mappings": [],
+ "mappings": [
+ {
+ "options": {
+ "match": "null+nan",
+ "result": {
+ "index": 0,
+ "text": "0"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "noValue": "0",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -1436,7 +1784,7 @@
"h": 3,
"w": 5,
"x": 5,
- "y": 12
+ "y": 22
},
"id": 54,
"options": {
@@ -1454,7 +1802,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1462,14 +1810,14 @@
"uid": "${DS_PROMETHEUS}"
},
"exemplar": false,
- "expr":
"(sum(rate(taler_requests_total_requests{endpoint=\"coins-deposit\",
status=\"200\"} [5m]))) / (sum
(rate(taler_requests_total_requests{endpoint=\"reserves-withdraw\",
status=\"200\"} [5m])))",
+ "expr": "(sum by (__name__)
(rate(taler_requests_total_requests{endpoint=\"coins-deposit\", status=\"200\"}
[5m]) or vector(0))) / on (__name__) (sum by (__name__)
(rate(taler_requests_total_requests{endpoint=\"reserves-withdraw\",
status=\"200\"} [5m]) or vector(0)) + on (__name__) sum by (__name__)
(rate(taler_exchange_batch_withdraw_num_coins{} [5m]) or vector(0)))",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
- "title": "Payments / Withdraw",
+ "title": "Payments / Withdraw [5m]",
"type": "stat"
},
{
@@ -1478,7 +1826,7 @@
"h": 1,
"w": 24,
"x": 0,
- "y": 15
+ "y": 25
},
"id": 20,
"panels": [
@@ -1512,7 +1860,7 @@
"h": 9,
"w": 5,
"x": 0,
- "y": 16
+ "y": 26
},
"id": 14,
"options": {
@@ -1528,7 +1876,7 @@
"showThresholdMarkers": true,
"text": {}
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1573,7 +1921,7 @@
"h": 3,
"w": 5,
"x": 5,
- "y": 16
+ "y": 26
},
"id": 16,
"options": {
@@ -1591,7 +1939,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1667,7 +2015,7 @@
"h": 9,
"w": 14,
"x": 10,
- "y": 16
+ "y": 26
},
"id": 26,
"options": {
@@ -1721,7 +2069,7 @@
"h": 3,
"w": 5,
"x": 5,
- "y": 19
+ "y": 29
},
"id": 6,
"options": {
@@ -1739,7 +2087,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1788,7 +2136,7 @@
"h": 3,
"w": 5,
"x": 5,
- "y": 22
+ "y": 32
},
"id": 12,
"options": {
@@ -1806,7 +2154,7 @@
"text": {},
"textMode": "auto"
},
- "pluginVersion": "8.4.3",
+ "pluginVersion": "8.4.6",
"targets": [
{
"datasource": {
@@ -1832,7 +2180,7 @@
"h": 1,
"w": 24,
"x": 0,
- "y": 16
+ "y": 26
},
"id": 40,
"panels": [],
@@ -1900,7 +2248,7 @@
"h": 10,
"w": 10,
"x": 0,
- "y": 17
+ "y": 27
},
"id": 44,
"maxDataPoints": 500,
@@ -1988,7 +2336,7 @@
"h": 10,
"w": 14,
"x": 10,
- "y": 17
+ "y": 27
},
"id": 38,
"options": {
@@ -2075,7 +2423,7 @@
"h": 10,
"w": 10,
"x": 0,
- "y": 27
+ "y": 37
},
"id": 43,
"maxDataPoints": 500,
@@ -2162,7 +2510,7 @@
"h": 10,
"w": 14,
"x": 10,
- "y": 27
+ "y": 37
},
"id": 55,
"options": {
@@ -2187,6 +2535,68 @@
],
"title": "Exchanges over Time",
"type": "timeseries"
+ },
+ {
+ "description": "Number of deposits done to each account, this is only
updated once the aggregator was run and the bank logged the transfers.",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "fixedColor": "green",
+ "mode": "fixed"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 24,
+ "x": 0,
+ "y": 47
+ },
+ "id": 74,
+ "options": {
+ "displayMode": "basic",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true,
+ "text": {}
+ },
+ "pluginVersion": "8.4.6",
+ "targets": [
+ {
+ "datasource": {
+ "type": "prometheus",
+ "uid": "${DS_PROMETHEUS}"
+ },
+ "exemplar": false,
+ "expr": "sort_desc(sum by (account)
(taler_fakebank_account_payments{account!=\"Exchange\"}))",
+ "format": "time_series",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "{{ account }}",
+ "refId": "A"
+ }
+ ],
+ "title": "Deposits by Account",
+ "transformations": [],
+ "type": "bargauge"
}
],
"refresh": "10s",
@@ -2207,6 +2617,6 @@
"timezone": "",
"title": "Transactions",
"uid": "83vvgKKnk",
- "version": 134,
+ "version": 169,
"weekStart": ""
}
\ No newline at end of file
diff --git a/additional/persist.sh b/additional/persist.sh
index 83448b9..12bddc5 100755
--- a/additional/persist.sh
+++ b/additional/persist.sh
@@ -50,16 +50,19 @@ function backup() {
G5K_BACKUP="g5k-$(date +%s).tar.gz"
- echo "Creating archive, this can take some time"
- ssh g5k 'rm -rf grenoble/g5k.tar* && find . -type l -maxdepth 1 -exec tar
--ignore-failed-read -rf grenoble/g5k.tar -C {} exp-logs exp-data espec-times
2>&1 \; | grep -vi "no such file"' &
-
+ ssh g5k 'rm -rf grenoble/g5k.tar* || true'
+
+ echo "Copying files, this can take some time"
+ # We are not using tar -r because this scans the whole archive and takes
forever for big ones
+ ssh g5k 'find . -maxdepth 1 -type l ! -name grenoble -exec cp -r {}/exp-data
{}/exp-logs {}/espec-times grenoble \; 2>&1 | grep -v "cannot stat"' &
+
PID=$!
while kill -0 $PID > /dev/null 2>&1; do
work_in_progress
done
-
- echo "Compressing archive, this may take some time"
- ssh g5k 'gzip grenoble/g5k.tar' &
+
+ echo "Creating archive, this can take some time"
+ ssh grenoble.g5k 'tar -czf g5k.tar.gz exp-logs exp-data espec-times' &
PID=$!
while kill -0 $PID > /dev/null 2>&1; do
@@ -67,7 +70,7 @@ function backup() {
done
echo "Copying archive to local machine"
- scp g5k:~/grenoble/g5k.tar.gz ${G5K_BACKUP}
+ scp grenoble.g5k:g5k.tar.gz ${G5K_BACKUP}
test -d ${BACKUP_DIR} || mkdir ${BACKUP_DIR}
@@ -105,6 +108,10 @@ if [[ $(ssh-add -L) =~ "The agent has no" ]]; then
exit 1
fi
+if ! ssh -q -o BatchMode=yes g5k 'exit'; then
+ echo "SSH connection does not work, please check your configuration"
+ exit 1
+fi
case $1 in
-b|--backup)
diff --git a/additional/recover/run.sh b/additional/recover/run.sh
index 1565ef0..c88bdac 100755
--- a/additional/recover/run.sh
+++ b/additional/recover/run.sh
@@ -3,8 +3,19 @@ set -e
# Script to run a local instance of grafana, loki and prometheus
# with a data (prometheus and loki) snapshot of an experiment
+function cleanup() {
+ docker-compose down -v
+ rm -rf ${TMP_BASEDIR}
+}
+
+function ctrl_c() {
+ echo "Shutting down"
+ cleanup
+}
+
function fail() {
echo -e "$1"
+ cleanup
exit 1
}
@@ -35,17 +46,16 @@ if file ${EXP_DATA} | grep -q 'tar archive'; then
tar -xvf /tmp/${G5K_ARCHIVE} -C /tmp exp-data
rm -rf /tmp/${G5K_ARCHIVE}
EXP_DATA=/tmp/exp-data
- mv ${EXP_DATA} ${TMP_BASEDIR}
+ mv ${EXP_DATA}/* ${TMP_BASEDIR}
+ rm -rf ${EXP_DATA}
else
cp -r ${EXP_DATA} ${TMP_BASEDIR}
fi
-
# load the times to adjust the grafana dashboards
source "${TMP_BASEDIR}/times.env" || fail \
"Archive does not contain times.env,
make sure to pass an uncomressed tar archive created with persist.sh or the
unpacked exp-data folder"
-
START=$(date --date=@${EXPERIMENT_START} +"%F %T")
END=$(date --date=@${SNAPSHOT_TIME} +"%F %T")
@@ -65,27 +75,19 @@ function startup() {
OUTPUT="${DASHBOARDS_DIR}/$(basename $FILE)"
sed -e 's/${DS_PROMETHEUS}/default-prometheus/g' \
-e 's/${DS_LOKI}/default-loki/g' $FILE | \
- jq --arg f "${START}" --arg t "${END}" '.time.from=$f | .time.to=$t' >
$OUTPUT
+ jq --arg f "${START}" \
+ --arg t "${END}" \
+ '.time.from=$f | .time.to=$t' > $OUTPUT
done
docker-compose down
docker-compose up &
}
-function cleanup() {
- docker-compose down -v
- rm -rf ${TMP_BASEDIR}
-}
-
-function ctrl_c() {
- echo "Shutting down"
- cleanup
-}
-
trap ctrl_c INT
startup
-while ! wget -q http://localhost:8080; do
+while ! wget -q -O /dev/null http://localhost:8080; do
sleep 2 || exit 1
done
echo "Instances running, please head to http://localhost:8080"
diff --git a/experiment/taler.many.rspec
b/additional/rspecs/taler.many.with-auditor.rspec
similarity index 91%
copy from experiment/taler.many.rspec
copy to additional/rspecs/taler.many.with-auditor.rspec
index 4abfe99..d5274a0 100644
--- a/experiment/taler.many.rspec
+++ b/additional/rspecs/taler.many.with-auditor.rspec
@@ -1,87 +1,87 @@
<?xml version='1.0'?>
-<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request"
generated_by="jFed RSpec Editor" generated="2022-04-06T21:42:37.131+02:00"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:
[...]
+<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request"
generated_by="jFed RSpec Editor" generated="2022-05-15T13:51:37.636+02:00"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:
[...]
<node client_id="DB" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="97.68354430379748" y="25.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="94.0"
y="32.5"/>
</node>
<node client_id="Exchange-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="221.0"
y="72.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="155.0"
y="76.5"/>
</node>
<node client_id="Bank" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="474.7974683544304" y="25.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="393.0"
y="33.5"/>
</node>
<node client_id="EProxy-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="226.5"
y="126.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="165.5"
y="125.5"/>
</node>
<node client_id="Monitor" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="915.0"
y="92.81119637333838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="688.5"
y="75.5"/>
</node>
<node client_id="Merchant-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="662.6455696202531" y="92.81119637333838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="861.5"
y="34.5"/>
</node>
<node client_id="DNS" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="781.0253164556962" y="25.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="679.0"
y="35.5"/>
</node>
<node client_id="Aggregator" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="500.5"
y="138.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="541.5"
y="35.5"/>
</node>
<node client_id="Wirewatch" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="649.5"
y="139.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="539.5"
y="74.5"/>
</node>
<node client_id="Transfer" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="790.5"
y="138.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="531.5"
y="116.5"/>
</node>
<node client_id="Closer" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="913.5"
y="137.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="523.5"
y="154.5"/>
</node>
<node client_id="Exchange-2" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="364.0"
y="70.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="314.0"
y="76.5"/>
</node>
<node client_id="Wallet-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -93,7 +93,7 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="273.4810126582279" y="205.30722735107315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="269.5"
y="206.5"/>
</node>
<node client_id="Wallet-3" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -111,7 +111,7 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="205.30722735107315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="862.5"
y="202.5"/>
</node>
<node client_id="Wallet-6" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -123,7 +123,7 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="273.4810126582279" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="271.5"
y="236.5"/>
</node>
<node client_id="Wallet-8" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -135,19 +135,19 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="660.5"
y="234.5"/>
</node>
<node client_id="Wallet-10" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="866.0"
y="235.5"/>
</node>
<node client_id="Wallet-11" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="79.0"
y="268.5"/>
</node>
<node client_id="Wallet-12" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -159,25 +159,25 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="471.9620253164557" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="478.0"
y="268.5"/>
</node>
<node client_id="Wallet-14" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="265.5"/>
</node>
<node client_id="Wallet-15" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="266.5"/>
</node>
<node client_id="Wallet-16" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="79.0"
y="299.5"/>
</node>
<node client_id="Wallet-17" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -189,31 +189,31 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="471.9620253164557" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="479.0"
y="300.5"/>
</node>
<node client_id="Wallet-19" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="666.0"
y="298.5"/>
</node>
<node client_id="Wallet-20" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="298.5"/>
</node>
<node client_id="Wallet-21" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="80.0"
y="330.5"/>
</node>
<node client_id="Wallet-22" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="279.15189873417717" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="274.0"
y="332.5"/>
</node>
<node client_id="Wallet-23" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -225,25 +225,25 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="677.5316455696203" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="666.0"
y="331.5"/>
</node>
<node client_id="Wallet-25" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="876.012658227848" y="331.91425873019625"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="328.5"/>
</node>
<node client_id="Wallet-26" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="86.34177215189874" y="364.0559818666919"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="80.0"
y="361.5"/>
</node>
<node client_id="Wallet-27" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="281.9873417721519" y="364.8399263334357"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="275.0"
y="360.5"/>
</node>
<node client_id="Wallet-28" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -255,199 +255,206 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="681.7848101265823" y="366.40781526692325"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="364.5"/>
</node>
<node client_id="Wallet-30" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="881.6835443037975" y="366.40781526692325"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="360.5"/>
</node>
<node client_id="Wallet-31" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="393.84587160295615"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="79.0"
y="391.5"/>
</node>
<node client_id="Wallet-32" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="281.9873417721519" y="397.7655939366752"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="276.0"
y="392.5"/>
</node>
<node client_id="Wallet-33" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="484.72151898734177" y="399.33348287016264"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="478.0"
y="402.5"/>
</node>
<node client_id="Wallet-34" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="678.9493670886076" y="397.7655939366752"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="398.5"/>
</node>
<node client_id="Wallet-35" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="884.5189873417721" y="395.41376053644376"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="398.5"/>
</node>
<node client_id="Wallet-36" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="426.77153920619554"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="80.0"
y="423.5"/>
</node>
<node client_id="Wallet-37" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="289.0759493670886" y="428.33942813968315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="276.0"
y="424.5"/>
</node>
<node client_id="Wallet-38" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="488.97468354430373" y="429.90731707317076"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="480.0"
y="434.5"/>
</node>
<node client_id="Wallet-39" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="688.873417721519" y="426.77153920619554"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="432.5"/>
</node>
<node client_id="Wallet-40" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="891.6075949367088" y="427.55548367293943"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="431.5"/>
</node>
<node client_id="Wallet-41" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="84.0"
y="463.3365853658537"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="80.0"
y="454.5"/>
</node>
<node client_id="Wallet-42" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="295.0"
y="460.3317073170732"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="277.0"
y="455.5"/>
</node>
<node client_id="Wallet-43" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="485.0"
y="460.3317073170732"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="479.0"
y="464.5"/>
</node>
<node client_id="Wallet-44" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="685.0"
y="455.8243902439025"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="464.5"/>
</node>
<node client_id="Wallet-45" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="892.0"
y="460.3317073170732"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="464.5"/>
</node>
<node client_id="Wallet-46" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="87.0"
y="497.89268292682925"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="81.0"
y="487.5"/>
</node>
<node client_id="Wallet-47" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="297.0"
y="492.63414634146346"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="277.0"
y="487.5"/>
</node>
<node client_id="Wallet-48" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="491.0"
y="496.390243902439"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="478.0"
y="494.5"/>
</node>
<node client_id="Wallet-49" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="689.0"
y="487.37560975609756"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="664.0"
y="497.5"/>
</node>
<node client_id="Wallet-50" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="897.0"
y="492.63414634146346"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="495.5"/>
</node>
<node client_id="Wallet-51" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="86.0"
y="530.1951219512196"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="82.0"
y="520.5"/>
</node>
<node client_id="Wallet-52" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="301.0"
y="525.6878048780488"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="276.0"
y="519.5"/>
</node>
<node client_id="Wallet-53" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="492.99999999999994" y="529.4439024390244"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="479.0"
y="526.5"/>
</node>
<node client_id="Wallet-54" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="692.0"
y="526.439024390244"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="664.0"
y="526.5"/>
</node>
<node client_id="Wallet-55" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="901.9999999999999" y="529.4439024390244"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="527.5"/>
</node>
<node client_id="Wallet-56" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="90.0"
y="558.7414634146342"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="83.0"
y="550.5"/>
</node>
<node client_id="Wallet-57" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="304.0"
y="558.7414634146342"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="277.0"
y="550.5"/>
</node>
<node client_id="Wallet-58" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="494.0"
y="560.2439024390244"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="479.0"
y="556.5"/>
</node>
<node client_id="Wallet-59" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="696.0"
y="557.2390243902439"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="558.5"/>
</node>
<node client_id="Wallet-60" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="904.9999999999999" y="564.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="560.5"/>
</node>
<node client_id="EProxy-2" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="338.0"
y="126.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="304.5"
y="125.5"/>
+ </node>
+ <node client_id="Auditor" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
+ <sliver_type name="raw-pc">
+ <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
+ </sliver_type>
+ <hardware_type name="dahu-grenoble"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="689.0"
y="116.5"/>
</node>
</rspec>
\ No newline at end of file
diff --git a/additional/rspecs/taler.minial.rspec
b/additional/rspecs/taler.minial.rspec
index f18357b..7c9d904 100644
--- a/additional/rspecs/taler.minial.rspec
+++ b/additional/rspecs/taler.minial.rspec
@@ -1,45 +1,51 @@
<?xml version='1.0'?>
-<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request"
generated_by="jFed RSpec Editor" generated="2022-04-02T11:14:04.525+02:00"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:
[...]
+<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request"
generated_by="jFed RSpec Editor" generated="2022-05-14T11:23:31.990+02:00"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:
[...]
<node client_id="DB" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="166.0"
y="102.5"/>
</node>
<node client_id="Exchange-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="220.0"
y="159.5"/>
</node>
<node client_id="Bank" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="280.0"
y="102.5"/>
</node>
<node client_id="EProxy-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="218.5"
y="217.5"/>
</node>
<node client_id="Monitor" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="467.5"
y="155.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="476.5"
y="147.5"/>
</node>
<node client_id="DNS" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="458.0"
y="109.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="468.0"
y="107.5"/>
</node>
-</rspec>
+ <node client_id="Auditor" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
+ <sliver_type name="raw-pc">
+ <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
+ </sliver_type>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="471.0"
y="188.5"/>
+ </node>
+ <node client_id="Merchant-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
+ <sliver_type name="raw-pc">
+ <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
+ </sliver_type>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="488.5"
y="228.5"/>
+ </node>
+</rspec>
\ No newline at end of file
diff --git a/experiment/taler.many.rspec b/additional/rspecs/taler.neowise.rspec
similarity index 64%
copy from experiment/taler.many.rspec
copy to additional/rspecs/taler.neowise.rspec
index 4abfe99..09fa32f 100644
--- a/experiment/taler.many.rspec
+++ b/additional/rspecs/taler.neowise.rspec
@@ -1,453 +1,333 @@
<?xml version='1.0'?>
-<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request"
generated_by="jFed RSpec Editor" generated="2022-04-06T21:42:37.131+02:00"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:
[...]
+<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request"
generated_by="jFed RSpec Editor" generated="2022-05-26T08:21:12.491+02:00"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:
[...]
<node client_id="DB" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="97.68354430379748" y="25.0"/>
+ <hardware_type name="neowise-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="95.17699115044248" y="45.631578947368425"/>
</node>
<node client_id="Exchange-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="221.0"
y="72.5"/>
+ <hardware_type name="neowise-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="159.95575221238937" y="102.36842105263158"/>
</node>
<node client_id="Bank" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="474.7974683544304" y="25.0"/>
+ <hardware_type name="any-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="377.0"
y="49.5"/>
</node>
<node client_id="EProxy-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="226.5"
y="126.5"/>
+ <hardware_type name="neowise-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="171.1061946902655" y="165.55263157894737"/>
</node>
<node client_id="Monitor" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="915.0"
y="92.81119637333838"/>
+ <hardware_type name="any-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="728.6283185840708" y="117.84210526315789"/>
</node>
<node client_id="Merchant-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="662.6455696202531" y="92.81119637333838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="910.2212389380531" y="48.21052631578947"/>
</node>
<node client_id="DNS" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="781.0253164556962" y="25.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="716.4159292035399" y="49.5"/>
</node>
<node client_id="Aggregator" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="500.5"
y="138.5"/>
+ <hardware_type name="any-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="570.3982300884957" y="49.5"/>
</node>
<node client_id="Wirewatch" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="649.5"
y="139.5"/>
+ <hardware_type name="any-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="568.2743362831859" y="99.78947368421052"/>
</node>
<node client_id="Transfer" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="790.5"
y="138.5"/>
+ <hardware_type name="any-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="559.778761061947" y="153.94736842105263"/>
</node>
<node client_id="Closer" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="913.5"
y="137.5"/>
+ <hardware_type name="any-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="558.5"
y="201.5"/>
</node>
<node client_id="Exchange-2" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="364.0"
y="70.5"/>
+ <hardware_type name="neowise-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="328.8053097345133" y="102.36842105263158"/>
</node>
<node client_id="Wallet-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="205.30722735107315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="268.4619510579628"/>
</node>
<node client_id="Wallet-2" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="273.4810126582279" y="205.30722735107315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="285.77629662820664" y="268.4619510579628"/>
</node>
<node client_id="Wallet-3" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="471.9620253164557" y="205.30722735107315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="496.55259325641316" y="268.4619510579628"/>
</node>
<node client_id="Wallet-4" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="660.5"
y="202.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="696.7699115044248" y="264.8421052631579"/>
</node>
<node client_id="Wallet-5" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="205.30722735107315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="911.283185840708" y="264.8421052631579"/>
</node>
<node client_id="Wallet-6" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="308.8969814479059"/>
</node>
<node client_id="Wallet-7" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="273.4810126582279" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="285.77629662820664" y="308.8969814479059"/>
</node>
<node client_id="Wallet-8" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="471.9620253164557" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="496.55259325641316" y="308.8969814479059"/>
</node>
<node client_id="Wallet-9" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="696.7699115044248" y="306.10526315789474"/>
</node>
<node client_id="Wallet-10" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="915.0000000000001" y="307.39473684210526"/>
</node>
<node client_id="Wallet-11" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="79.24778761061947" y="349.94736842105266"/>
</node>
<node client_id="Wallet-12" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="273.4810126582279" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="285.77629662820664" y="349.33201183784905"/>
</node>
<node client_id="Wallet-13" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="471.9620253164557" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="502.96460176991155" y="349.94736842105266"/>
</node>
<node client_id="Wallet-14" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="701.5486725663717" y="346.07894736842104"/>
</node>
<node client_id="Wallet-15" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="913.9380530973452" y="347.36842105263156"/>
</node>
<node client_id="Wallet-16" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="82.43362831858407" y="388.63157894736844"/>
</node>
<node client_id="Wallet-17" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="273.4810126582279" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="285.77629662820664" y="389.76704222779233"/>
</node>
<node client_id="Wallet-18" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="471.9620253164557" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="504.02654867256643" y="391.2105263157895"/>
</node>
<node client_id="Wallet-19" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="702.6106194690266" y="388.63157894736844"/>
</node>
<node client_id="Wallet-20" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="913.9380530973452" y="388.63157894736844"/>
</node>
<node client_id="Wallet-21" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="83.49557522123894" y="427.3157894736842"/>
</node>
<node client_id="Wallet-22" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="279.15189873417717" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="286.3274336283186" y="432.4736842105263"/>
</node>
<node client_id="Wallet-23" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="477.63291139240505" y="334.26609213042764"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="502.5747731600762" y="434.75101353660403"/>
</node>
<node client_id="Wallet-24" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="677.5316455696203" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="702.6106194690266" y="431.1842105263158"/>
</node>
<node client_id="Wallet-25" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="876.012658227848" y="331.91425873019625"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="913.9380530973452" y="427.3157894736842"/>
</node>
<node client_id="Wallet-26" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="86.34177215189874" y="364.0559818666919"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="84.5575221238938" y="466.0"/>
</node>
<node client_id="Wallet-27" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="281.9873417721519" y="364.8399263334357"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="287.3893805309735" y="468.57894736842104"/>
</node>
<node client_id="Wallet-28" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="477.99999999999994" y="370.93658536585366"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="502.9646017699115" y="482.03664955070604"/>
</node>
<node client_id="Wallet-29" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="681.7848101265823" y="366.40781526692325"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="701.5486725663717" y="473.7368421052632"/>
</node>
<node client_id="Wallet-30" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="881.6835443037975" y="366.40781526692325"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="913.9380530973452" y="468.57894736842104"/>
</node>
<node client_id="Wallet-31" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="393.84587160295615"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="79.24778761061947" y="508.5526315789474"/>
</node>
<node client_id="Wallet-32" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="281.9873417721519" y="397.7655939366752"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="288.4513274336283" y="509.8421052631579"/>
</node>
<node client_id="Wallet-33" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="484.72151898734177" y="399.33348287016264"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="502.96460176991155" y="522.7368421052631"/>
</node>
<node client_id="Wallet-34" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="678.9493670886076" y="397.7655939366752"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="701.5486725663717" y="517.578947368421"/>
</node>
<node client_id="Wallet-35" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="884.5189873417721" y="395.41376053644376"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="913.9380530973452" y="517.578947368421"/>
</node>
<node client_id="Wallet-36" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="426.77153920619554"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.30973451327434" y="549.8157894736842"/>
</node>
<node client_id="Wallet-37" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="289.0759493670886" y="428.33942813968315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="289.5132743362832" y="557.5526315789474"/>
</node>
<node client_id="Wallet-38" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="488.97468354430373" y="429.90731707317076"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="505.08849557522126" y="564.0"/>
</node>
<node client_id="Wallet-39" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="688.873417721519" y="426.77153920619554"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="701.5486725663717" y="561.421052631579"/>
</node>
<node client_id="Wallet-40" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="891.6075949367088" y="427.55548367293943"/>
- </node>
- <node client_id="Wallet-41" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="84.0"
y="463.3365853658537"/>
- </node>
- <node client_id="Wallet-42" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="295.0"
y="460.3317073170732"/>
- </node>
- <node client_id="Wallet-43" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="485.0"
y="460.3317073170732"/>
- </node>
- <node client_id="Wallet-44" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="685.0"
y="455.8243902439025"/>
- </node>
- <node client_id="Wallet-45" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="892.0"
y="460.3317073170732"/>
- </node>
- <node client_id="Wallet-46" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="87.0"
y="497.89268292682925"/>
- </node>
- <node client_id="Wallet-47" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="297.0"
y="492.63414634146346"/>
- </node>
- <node client_id="Wallet-48" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="491.0"
y="496.390243902439"/>
- </node>
- <node client_id="Wallet-49" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="689.0"
y="487.37560975609756"/>
- </node>
- <node client_id="Wallet-50" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="897.0"
y="492.63414634146346"/>
- </node>
- <node client_id="Wallet-51" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="86.0"
y="530.1951219512196"/>
- </node>
- <node client_id="Wallet-52" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="301.0"
y="525.6878048780488"/>
- </node>
- <node client_id="Wallet-53" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="492.99999999999994" y="529.4439024390244"/>
- </node>
- <node client_id="Wallet-54" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="692.0"
y="526.439024390244"/>
- </node>
- <node client_id="Wallet-55" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="901.9999999999999" y="529.4439024390244"/>
- </node>
- <node client_id="Wallet-56" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="90.0"
y="558.7414634146342"/>
- </node>
- <node client_id="Wallet-57" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="304.0"
y="558.7414634146342"/>
- </node>
- <node client_id="Wallet-58" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="494.0"
y="560.2439024390244"/>
- </node>
- <node client_id="Wallet-59" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="696.0"
y="557.2390243902439"/>
- </node>
- <node client_id="Wallet-60" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
- <sliver_type name="raw-pc">
- <disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
- </sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="904.9999999999999" y="564.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="913.9380530973452" y="560.1315789473684"/>
</node>
<node client_id="EProxy-2" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="338.0"
y="126.5"/>
+ <hardware_type name="neowise-lyon"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="324.0265486725664" y="164.26315789473685"/>
</node>
</rspec>
\ No newline at end of file
diff --git a/configs/etc/default/prometheus-postgres-exporter
b/configs/etc/default/prometheus-postgres-exporter
index 39d2d18..91b5f51 100644
--- a/configs/etc/default/prometheus-postgres-exporter
+++ b/configs/etc/default/prometheus-postgres-exporter
@@ -5,7 +5,7 @@
# DATA_SOURCE_NAME='postgresql://login:password@hostname:port/'
# DATA_SOURCE_NAME='user=prometheus host=/run/postgresql dbname=postgres'
# IMPORTANT - place no comma between placeholders, it will be handled by the
scripts
-DATA_SOURCE_NAME='<EXCHANGE_DB_URL_HERE><MERCHANT_DB_URL_HERE><SHARD_DB_URLS_HERE>'
+DATA_SOURCE_NAME='<EXCHANGE_DB_URL_HERE><MERCHANT_DB_URL_HERE><SHARD_DB_URLS_HERE><AUDITOR_DB_URL_HERE>'
# Set the command-line arguments to pass to the server.
ARGS='--extend.query-path=/etc/monitor/postgres-exporter.yaml'
diff --git a/configs/etc/monitor/node-exporters.yaml.tpl
b/configs/etc/monitor/node-exporters.yaml.tpl
index 4a0815d..1d8634e 100644
--- a/configs/etc/monitor/node-exporters.yaml.tpl
+++ b/configs/etc/monitor/node-exporters.yaml.tpl
@@ -52,3 +52,7 @@
component: 'shard'
targets:
# <SHARD_NODES_HERE>
+ - labels:
+ component: 'auditor'
+ targets:
+ - 'auditor.perf.taler:9100'
diff --git a/configs/etc/monitor/postgres-exporter.yaml
b/configs/etc/monitor/postgres-exporter.yaml
index 1f4eb37..e215f07 100644
--- a/configs/etc/monitor/postgres-exporter.yaml
+++ b/configs/etc/monitor/postgres-exporter.yaml
@@ -158,6 +158,20 @@ pg_database:
usage: "GAUGE"
description: "Disk space used by the database"
+pg_wait_events:
+ query: "SELECT wait_event_type, wait_event, COUNT(wait_event) FROM
pg_stat_activity WHERE wait_event IS NOT NULL GROUP BY (wait_event_type,
wait_event)"
+ master: true
+ metrics:
+ - wait_event_type:
+ usage: "LABEL"
+ description: "Type of the wait event"
+ - wait_event:
+ usage: "LABEL"
+ description: "Wait events"
+ - total:
+ usage: "COUNTER"
+ description: "Number of wait events"
+
#pg_stat_statements:
# query: "SELECT t2.rolname, t3.datname, queryid, calls, total_exec_time /
1000 as total_time_seconds, min_exec_time / 1000 as min_time_seconds,
max_exec_time / 1000 as max_time_seconds, mean_exec_time / 1000 as
mean_time_seconds, stddev_exec_time / 1000 as stddev_time_seconds, rows,
shared_blks_hit, shared_blks_read, shared_blks_dirtied, shared_blks_written,
local_blks_hit, local_blks_read, local_blks_dirtied, local_blks_written,
temp_blks_read, temp_blks_written, blk_read_time / 1000 [...]
# master: true
diff --git a/configs/etc/monitor/promtail.yaml
b/configs/etc/monitor/promtail.yaml
index a5f9260..d4d0e7b 100644
--- a/configs/etc/monitor/promtail.yaml
+++ b/configs/etc/monitor/promtail.yaml
@@ -77,7 +77,7 @@ 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<upstream_response_time>\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 "-" }}'
@@ -145,10 +145,37 @@ scrape_configs:
target_label: app
pipeline_stages:
- match:
- selector: '{job="wallet"} |~ "Bench1"'
+ selector: '{job="wallet"} |~ "Bench1|Bench3"'
stages:
- template:
source: script
template: 'benchmark'
- labels:
script:
+
+- job_name: fakebank
+ syslog:
+ listen_address: 0.0.0.0:1518
+ labels:
+ job: fakebank
+ relabel_configs:
+ - source_labels: [__syslog_message_app_name]
+ target_label: app
+ pipeline_stages:
+ - match:
+ selector: '{job="fakebank"} |~ "Making(.*)"'
+ stages:
+ - regex:
+ expression: 'Making transfer \d+.*to (?P<account>[A-Za-z0-9-_]+)'
+ - labels:
+ account:
+ - metrics:
+ account_payments:
+ prefix: 'taler_fakebank_'
+ type: Gauge
+ description: "Total payments done"
+ source: account
+ config:
+ action: inc
+ - drop:
+ expression: '.*Making.*'
diff --git a/configs/etc/nginx/sites-available/merchant
b/configs/etc/nginx/sites-available/auditor
similarity index 60%
copy from configs/etc/nginx/sites-available/merchant
copy to configs/etc/nginx/sites-available/auditor
index 655cbb7..f673bea 100644
--- a/configs/etc/nginx/sites-available/merchant
+++ b/configs/etc/nginx/sites-available/auditor
@@ -1,4 +1,6 @@
log_format taler 'm=$request_method uri=$uri s=$status '
+ # Only enable if required, breaks loki logfmt
+ # 'q=$args '
'uct=$upstream_connect_time '
'urt=$upstream_response_time '
'rt=$request_time '
@@ -9,18 +11,19 @@ server {
listen 80;
listen 443 ssl;
- ssl_certificate /etc/ssl/merchant.cert.pem;
- ssl_certificate_key /etc/ssl/merchant.key.pem;
+ ssl_certificate /etc/ssl/auditor.cert.pem;
+ ssl_certificate_key /etc/ssl/auditor.key.pem;
server_name 0.0.0.0;
allow 172.16.0.0/12;
+ allow 127.0.0.1/32;
deny all;
- access_log
syslog:server=localhost,facility=user,tag=taler_merchant_proxy,severity=info
taler;
+ access_log
syslog:server=localhost,facility=user,tag=taler_auditor_proxy,severity=info
taler;
location / {
- proxy_pass http://unix:/var/run/taler/merchant-httpd/merchant.sock;
+ proxy_pass http://unix:/var/run/taler/auditor-httpd/auditor.sock;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $remote_addr;
diff --git a/configs/etc/nginx/sites-available/exchange
b/configs/etc/nginx/sites-available/exchange
index c532895..82731dd 100644
--- a/configs/etc/nginx/sites-available/exchange
+++ b/configs/etc/nginx/sites-available/exchange
@@ -9,6 +9,8 @@ upstream exchange {
# This format is expected by promtail (configs/etc/monitor/promtail.yaml)
log_format taler 'm=$request_method uri=$uri s=$status '
+ # Only enable if required, breaks loki logfmt
+ # 'q=$args '
'uct=$upstream_connect_time '
'urt=$upstream_response_time '
'rt=$request_time '
diff --git a/configs/etc/nginx/sites-available/fakebank
b/configs/etc/nginx/sites-available/fakebank
index 6545770..3971c89 100644
--- a/configs/etc/nginx/sites-available/fakebank
+++ b/configs/etc/nginx/sites-available/fakebank
@@ -1,4 +1,6 @@
log_format taler 'm=$request_method uri=$uri s=$status '
+ # Only enable if required, breaks loki logfmt
+ # 'q=$args '
'uct=$upstream_connect_time '
'urt=$upstream_response_time '
'rt=$request_time '
diff --git a/configs/etc/nginx/sites-available/merchant
b/configs/etc/nginx/sites-available/merchant
index 655cbb7..9e4f74e 100644
--- a/configs/etc/nginx/sites-available/merchant
+++ b/configs/etc/nginx/sites-available/merchant
@@ -1,4 +1,6 @@
log_format taler 'm=$request_method uri=$uri s=$status '
+ # Only enable if required, breaks loki logfmt
+ # 'q=$args '
'uct=$upstream_connect_time '
'urt=$upstream_response_time '
'rt=$request_time '
@@ -15,6 +17,7 @@ server {
server_name 0.0.0.0;
allow 172.16.0.0/12;
+ allow 127.0.0.1/32;
deny all;
access_log
syslog:server=localhost,facility=user,tag=taler_merchant_proxy,severity=info
taler;
diff --git a/configs/etc/taler/conf.d/auditor.conf
b/configs/etc/taler/conf.d/auditor.conf
new file mode 100644
index 0000000..52a4ac8
--- /dev/null
+++ b/configs/etc/taler/conf.d/auditor.conf
@@ -0,0 +1,16 @@
+[auditor]
+
+BASE_URL = <AUDITOR_URL_HERE>
+
+PUBLIC_KEY = <AUDITOR_PUB_KEY_HERE>
+
+DB = postgres
+
+SERVE = unix
+UNIXPATH = /var/run/taler/auditor-httpd/auditor.sock
+
+TINY_AMOUNT = KUDOS:0.01
+
+[auditordb-postgres]
+
+CONFIG = postgresql:///auditor
diff --git a/configs/etc/taler/conf.d/exchange-business.conf
b/configs/etc/taler/conf.d/exchange-business.conf
index ee3458a..6697b67 100644
--- a/configs/etc/taler/conf.d/exchange-business.conf
+++ b/configs/etc/taler/conf.d/exchange-business.conf
@@ -2,6 +2,8 @@
MASTER_PUBLIC_KEY = <MASTER_KEY_HERE>
+SHARD_DOMAIN = <SHARD_DOMAIN_HERE>
+
BASE_URL = <BASE_URL_HERE>
MAX_REQUESTS = <MAX_REQUESTS_HERE>
diff --git a/configs/etc/taler/conf.d/fake-bank.conf
b/configs/etc/taler/conf.d/fake-bank.conf
index 223a389..121459d 100644
--- a/configs/etc/taler/conf.d/fake-bank.conf
+++ b/configs/etc/taler/conf.d/fake-bank.conf
@@ -3,3 +3,4 @@ SERVE = http
PORT = 8082
MAX_DEBT = KUDOS:100000000000.0
MAX_DEBT_BANK = KUDOS:1000000000000000.0
+RAM_LIMIT = 10000000
diff --git a/configs/etc/taler/secrets/exchange-db.secret.conf
b/configs/etc/taler/secrets/exchange-db.secret.conf
index cb52d0a..68915ff 100644
--- a/configs/etc/taler/secrets/exchange-db.secret.conf
+++ b/configs/etc/taler/secrets/exchange-db.secret.conf
@@ -8,3 +8,6 @@ CONFIG=<DB_URL_HERE>
# The details of the URI depend on where the database lives and how
# access control was configured.
+
+SHARD_REMOTE_USER=<SHARD_USER_HERE>
+SHARD_REMOTE_USER_PW=<SHARD_USER_PW_HERE>
diff --git a/configs/usr/lib/systemd/system/taler-auditor-httpd.service
b/configs/usr/lib/systemd/system/taler-auditor-httpd.service
new file mode 100644
index 0000000..75ffdf2
--- /dev/null
+++ b/configs/usr/lib/systemd/system/taler-auditor-httpd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=GNU Taler payment system auditor REST API
+After=postgres.service network.target
+
+[Service]
+User=taler-auditor-httpd
+Group=www-data
+Type=simple
+Restart=on-failure
+ExecStart=/usr/bin/taler-auditor-httpd -c /etc/taler/taler.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/configs/usr/lib/systemd/system/taler-exchange-httpd@.service
b/configs/usr/lib/systemd/system/taler-exchange-httpd@.service
index 65b2a93..0c39e41 100644
--- a/configs/usr/lib/systemd/system/taler-exchange-httpd@.service
+++ b/configs/usr/lib/systemd/system/taler-exchange-httpd@.service
@@ -20,6 +20,7 @@ StandardError=journal
PrivateTmp=no
PrivateDevices=yes
ProtectSystem=full
+LimitNOFILE=500000
[Install]
WantedBy=multi-user.target
diff --git a/configs/usr/lib/systemd/system/taler-exchange-secmod-cs.service
b/configs/usr/lib/systemd/system/taler-exchange-secmod-cs.service
index 4284420..206fd6a 100644
--- a/configs/usr/lib/systemd/system/taler-exchange-secmod-cs.service
+++ b/configs/usr/lib/systemd/system/taler-exchange-secmod-cs.service
@@ -15,4 +15,5 @@ StandardError=journal
PrivateTmp=no
PrivateDevices=yes
ProtectSystem=full
+LimitNOFILE=500000
diff --git a/configs/usr/lib/systemd/system/taler-exchange-secmod-eddsa.service
b/configs/usr/lib/systemd/system/taler-exchange-secmod-eddsa.service
index 6e98f5e..b7f564c 100644
--- a/configs/usr/lib/systemd/system/taler-exchange-secmod-eddsa.service
+++ b/configs/usr/lib/systemd/system/taler-exchange-secmod-eddsa.service
@@ -15,4 +15,4 @@ StandardError=journal
PrivateTmp=no
PrivateDevices=yes
ProtectSystem=full
-
+LimitNOFILE=500000
diff --git a/configs/usr/lib/systemd/system/taler-exchange-secmod-rsa.service
b/configs/usr/lib/systemd/system/taler-exchange-secmod-rsa.service
index 5f3a2c9..fade8f8 100644
--- a/configs/usr/lib/systemd/system/taler-exchange-secmod-rsa.service
+++ b/configs/usr/lib/systemd/system/taler-exchange-secmod-rsa.service
@@ -15,3 +15,4 @@ StandardError=journal
PrivateTmp=no
PrivateDevices=yes
ProtectSystem=full
+LimitNOFILE=500000
diff --git a/configs/usr/lib/systemd/system/taler-fakebank.service
b/configs/usr/lib/systemd/system/taler-fakebank.service
index 074e917..5ce142d 100644
--- a/configs/usr/lib/systemd/system/taler-fakebank.service
+++ b/configs/usr/lib/systemd/system/taler-fakebank.service
@@ -2,11 +2,13 @@
Description=GNU Taler fake bank
[Service]
+User=root
Type=simple
EnvironmentFile=/etc/environment
-ExecStart=/usr/bin/taler-fakebank-run -c /etc/taler/taler.conf -n 100
$TALER_ARGS $BANK_ARGS
+ExecStart=/usr/bin/taler-fakebank-run -c /etc/taler/taler.conf -n 16
$TALER_ARGS $BANK_ARGS
StandardOutput=journal
StandardError=journal
+LimitNOFILE=500000
[Install]
WantedBy=multi-user.target
diff --git a/configs/usr/lib/systemd/system/taler-netdelay.timer
b/configs/usr/lib/systemd/system/taler-netdelay.timer
index f445635..3c833ca 100644
--- a/configs/usr/lib/systemd/system/taler-netdelay.timer
+++ b/configs/usr/lib/systemd/system/taler-netdelay.timer
@@ -4,7 +4,7 @@ Requires=taler-netdelay.service
[Timer]
Unit=taler-netdelay.service
-OnCalendar=*:0/5
+OnCalendar=*:0/1
[Install]
WantedBy=timers.target
diff --git a/experiment/env b/experiment/env
index d72f84b..b05e9be 100644
--- a/experiment/env
+++ b/experiment/env
@@ -8,7 +8,7 @@
# (used to determine which script to execute in run.sh)
# Wallets are not needed explicitely since they can (and will be)
# exported as a wildcard (*).
-NODES="Bank DB DNS Exchange Aggregator Closer Transfer Wirewatch Merchant
Monitor EProxy Shard"
+NODES="Bank DB DNS Exchange Aggregator Closer Transfer Wirewatch Auditor
Merchant Monitor EProxy Shard"
# DNS Zone to setup inside the grid for the experiment
DNS_ZONE=perf.taler
@@ -28,7 +28,7 @@ EXCHANGE_GW_DOMAIN=exchange.${DNS_ZONE}
# Arguments to pass to all taler-exchange-* binaries at startup.
# E.g. -L INFO
- TALER_ARGS="-L INFO"
+ TALER_ARGS="-L ERROR"
# Service specific arguments to pass at startup
AGGREGATOR_ARGS="-y"
BANK_ARGS=""
@@ -67,6 +67,7 @@ LOKI_DATASOURCE_NAME=Loki
# These values most certain do not need to be adjusted, unless their
# config in ../configs/etc/* is changed.
# Doc: https://www.grid5000.fr/w/HTTP/HTTPs_access
+# Valid values: http/http8080, https/https8443
PROMETHEUS_G5K_PROXY_PORT=http8080
LOKI_G5K_PROXY_PORT=http
@@ -101,9 +102,22 @@ WALLET_BENCHMARK=bench1
WALLET_USE_HTTPS=true
# Run a withdraw only experiment
WALLET_WITHDRAW_ONLY=false
+# How the wallets select merchants, possible values: 'zipf' and 'rand'
+# If the configured value is neither zipf or rand, a single merchant is taken
+WALLET_MERCHANT_SELECTION=normal
+# How many merchants should be used to select randomly from
+WALLET_NUM_MERCHANTS=1000
# Needed for wallets to accept self signed certificates
NODE_TLS_REJECT_UNAUTHORIZED=0
+# Other wallet options mostly for performance experiments
+# Note: comment if not wanted
+TALER_WALLET_SYNC_CRYPTO=1
+TALER_WALLET_PRIMITIVE_WORKER=1
+TALER_WALLET_INSECURE_TRUST_EXCHANGE=1
+# Do batch withdrawals of a reserve rather than single coins
+TALER_WALLET_BATCH_WITHDRAWAL=1
+
# Initial number of exchange processes to run.
# default = 10
# Start another bunch with `taler-perf start exchange <N>`
@@ -112,14 +126,14 @@ NUM_EXCHANGE_PROCESSES=1
# Number of other exchange-* processes to run
# This setting is static, default = 1
# For the aggregator the number will be actually 2^n (so 0 will be 1 process)
+# If you want no aggregator just set it to -1
NUM_AGGREGATOR_PROCESSES=0
NUM_CLOSER_PROCESSES=1
NUM_TRANSER_PROCESSES=1
NUM_WIREWATTCH_PROCESSES=1
-TALER_WALLET_SYNC_CRYPTO=1
-TALER_WALLET_PRIMITIVE_WORKER=1
-TALER_WALLET_INSECURE_TRUST_EXCHANGE=1
+# If the auditor should be setup or not when the node is added in the rspec
+TALER_SETUP_AUDITOR_REPLICATION=0
# If prometheus node exporter should be enabled
# Most certainly this is true, since otherwise no overview
@@ -137,7 +151,7 @@ GRAFANA_API_KEY=
# If the data persisted from prometheus and loki from a
# previous experiment should be removed before starting
-# a new one
+# a new one (NOTE: this is always the case for logs)
REMOVE_PREVIOUS_EXPERIMENT_DATA=true
# If *_COMMIT_SHA is not empty the corresponding
diff --git a/experiment/scripts/auditor.sh b/experiment/scripts/auditor.sh
new file mode 100755
index 0000000..ca5f71a
--- /dev/null
+++ b/experiment/scripts/auditor.sh
@@ -0,0 +1,290 @@
+#!/bin/bash
+set -eux
+source ~/scripts/helpers.sh
+
+INFO_MSG="
+Setup the auditor node
+(Start taler-auditor)
+"
+OPT_MSG="
+init:
+ Configure and start the auditor together with its database
+"
+
+# Prevent permission denied error messages when switching user
+cd /tmp
+
+# Create the necessary users
+function create_users() {
+ for USER in auditor auditor-ingress; do
+ adduser --quiet --home /tmp/${USER} ${USER} || true
+ done
+}
+
+# initialize the auditor database
+function init_db() {
+
+ # Grid5000 mounts the default disk on /tmp
+ # Move the DB there to get more storage
+ if [ -d /var/lib/postgresql ]; then
+ mv /var/lib/postgresql /tmp/
+ fi
+
+ # Get hardware info to tune in postgresql.conf
+ SHARED_MEM=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) / 4 ))
+ CACHE_SIZE=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) * 3/4))
+ NUM_CPU=$(lscpu | grep "CPU(s)" | head -n 1 | awk '{print $2}')
+
+ # Enable huge pages
+ # Size for huge_pages =~ shared_buffers * 1.25 so that there is enough
+ VM_PEAK=$((${SHARED_MEM} * 10/8))
+
+ HUGE_PAGES_SIZE=$(grep ^Hugepagesize /proc/meminfo | awk '{print $2}')
+ NUM_PAGES=$((${VM_PEAK} / ${HUGE_PAGES_SIZE}))
+
+ if ! grep -q "vm.nr_hugepages'" /etc/sysctl.conf; then
+ echo "vm.nr_hugepages=${NUM_PAGES}" >> /etc/sysctl.conf
+ sysctl -p
+ fi
+
+ # disable swap
+ swapoff -a
+
+ echo "
+ listen_addresses='*'
+
+ wal_level = logical
+
+ log_destination=syslog
+ syslog_ident='taler-auditor-db'
+
+ log_error_verbosity=terse
+ # log_min_messages=PANIC
+ # log_min_error_statement=PANIC
+ # client_min_messages=ERROR
+
+ # For pgbadger
+ # log_checkpoints=on
+ # log_connections=on
+ # log_disconnections=on
+ # log_lock_waits=on
+ # log_temp_files=0
+ # log_autovacuum_min_duration=0
+ # log_error_verbosity=default
+ # log_duration=on
+ # log_statement=all
+
+ # For explain.py
+ # syslog_split_messages=off
+ # log_statement=all
+ # log_error_verbosity=default
+
+ # Large tables perform bad with the default settings
+ # However, they could also be set on each table indiviudally
+ # (NOTE: on partitions!)
+ # ALTER TABLE known_coins_default
+ # SET (autovacuum_vacuum_scale_factor = 0.0, autovacuum_vacuum_threshold =
1000);
+ default_statistics_target=300
+ autovacuum_vacuum_cost_limit=400
+ autovacuum_vacuum_scale_factor=0.1
+ autovacuum_vacuum_threshold=1000
+ # Default 50, 0.1
+ autovacuum_analyze_threshold=50
+ autovacuum_analyze_scale_factor=0.1
+
+ # use 25% of the available memory
+ # (https://www.postgresql.org/docs/13/runtime-config-resource.html)
+ shared_buffers=${SHARED_MEM}kB
+ effective_cache_size=${CACHE_SIZE}kB
+
+ huge_pages=on
+
+ #
(https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-MAX-WAL-SIZE)
+ min_wal_size=20GB
+ max_wal_size=200GB
+ wal_buffers=1GB
+
+ checkpoint_completion_target=0.9
+ checkpoint_timeout = 15min
+ checkpoint_flush_after = 2MB
+ random_page_cost=1.1
+
+ # Default 2kB
+ bgwriter_flush_after = 2MB
+
+ # Default 0
+ #
https://www.cybertec-postgresql.com/en/the-mysterious-backend_flush_after-configuration-setting/
+ backend_flush_after = 2MB
+
+ # Too much results in CPU load
+ #
https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY
+ effective_io_concurrency = 200
+
+ # Bad when turned off - Recovering db may not be possible
+ # https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-FSYNC
+ fsync = on
+
+ # Not so bad as when turning off fsync, but single transactions might get
lost on crash - but
+ # like they would have aborted cleanly
+ #
https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT
+ # When having replication, this one can be changed (in local only on and off
are of use)
+ #
https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES
+ # on causes us to get 100% IO load
+ synchronous_commit = off
+
+ # Default off
+ wal_compression = off
+
+ wal_sync_method = fsync
+
+ # Bad to turn off, may lead to inconcistency
+ #
https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-FULL-PAGE-WRITES
+ # Write full pages to WAL while partial are written to disk, helpful in case
of crash, then
+ # partially written pages can be recovered.
+ # Can be disabled if FS does not support partial written pages (such as ZFS)
+ full_page_writes = on
+
+ max_worker_processes=${NUM_CPU}
+ max_parallel_workers=${NUM_CPU}
+ max_parallel_workers_per_gather=10
+ max_connections=500
+
+ max_parallel_maintenance_workers=12
+
+ # out of shared memory
+ max_locks_per_transaction=85
+
+ # (max used =~ work_mem * max_connections)
+ # NOTE: This formula is not completely correct
+ work_mem=2GB
+ maintenance_work_mem=4GB
+
+ data_directory='/tmp/postgresql/${POSTGRES_VERSION}/main'
+
+ max_logical_replication_workers=${NUM_CPU}
+ max_sync_workers_per_subscription=${NUM_CPU}
+ " > /etc/postgresql/${POSTGRES_VERSION}/main/auditor.conf
+
+ echo "
+ include = '/etc/postgresql/${POSTGRES_VERSION}/main/auditor.conf'
+ " >> /etc/postgresql/${POSTGRES_VERSION}/main/postgresql.conf
+
+ echo "
+ host all postgres 172.16.0.0/12 trust
+ " >> /etc/postgresql/${POSTGRES_VERSION}/main/pg_hba.conf
+
+ systemctl restart postgresql
+
+ su postgres << EOF
+psql postgres -tAc "DROP DATABASE IF EXISTS \"taler-ingress\";"
+psql postgres -tAc "DROP DATABASE IF EXISTS \"auditor\";"
+psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='auditor-ingress'" | \
+ grep -q 1 || \
+ createuser auditor-ingress
+psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='auditor'" | \
+ grep -q 1 || \
+ createuser auditor
+
+createdb -O auditor-ingress "taler-ingress"
+createdb -O auditor "auditor"
+EOF
+}
+
+# Initialize the replicated database and enable replication once the
+# taler-exchange db is ready
+function setup_exchange_replication() {
+
+ taler-config -s exchange -o DB -V "postgres"
+ taler-config -s exchangedb-postgres -o CONFIG -V "postgres:///taler-ingress"
+
+ sudo -u auditor-ingress taler-exchange-dbinit -r || true
+ sudo -u auditor-ingress taler-exchange-dbinit -s || true
+
+ if [ "${PARTITION_DB}" = "true" ]; then
+ sudo -u auditor-ingress taler-exchange-dbinit -P ${NUM_PARTITIONS}
+ else
+ sudo -u auditor-infress taler-exchange-dbinit
+ fi
+
+ su auditor-ingress << EOF
+psql -d taler-ingress -U auditor-ingress -tAc 'GRANT ALL ON ALL TABLES IN
SCHEMA public TO auditor;'
+EOF
+
+ # Wait for exchange db to be ready to accept connections
+ DB_USER=egress wait_for_db
+
+ # Complicated setup to be able to drop old and not working replication slots
+ # and create a new one
+ su postgres << EOF
+ psql -d taler-ingress -tAc "ALTER SUBSCRIPTION ${NODE_NAME} DISABLE;"
+ psql -d taler-ingress -tAc "ALTER SUBSCRIPTION ${NODE_NAME} SET
(slot_name=NONE);"
+ psql -d taler-ingress -tAc "CREATE SUBSCRIPTION ${NODE_NAME} CONNECTION
'postgresql://egress:${DB_PASSWORD}@${DB_HOSTS}/${DB_NAME}' PUBLICATION
exchange;" || true
+EOF
+}
+
+# Start the auditor httpd and the nginx proxy
+function enable_webservice() {
+ create_cert "${NODE_NAME}.${DNS_ZONE}" "/etc/ssl/auditor"
+ ln -sf /etc/nginx/sites-available/auditor /etc/nginx/sites-enabled/auditor
+ systemctl restart taler-auditor-httpd \
+ nginx
+}
+
+# Setup the auditor configuration and configure the exchange to add this
auditor
+# Requires ssh access to the main exchange node
+function setup_config() {
+
+ rm -rf /var/lib/taler/auditor/*
+
+ setup_exchange_config_master_key_from_api
+
+ PUB_KEY=$(sudo -u taler-auditor-offline taler-auditor-offline setup)
+
+ wait_for_keys ${EXCHANGE_GW_DOMAIN}
+
+ sed -i -e "s/<AUDITOR_PUB_KEY_HERE>/${PUB_KEY}/g" \
+ -e "s|<AUDITOR_URL_HERE>|http://${NODE_NAME}.${DNS_ZONE}/|g" \
+ /etc/taler/conf.d/auditor.conf
+
+ enable_webservice
+
+ sudo -u auditor taler-auditor-dbinit
+ sudo -u auditor taler-auditor-exchange -m $(get_exchange_masterkey) -u
"https://${EXCHANGE_GW_DOMAIN}/"
+
+ # Connect to the main exchange node and add the auditor
+ # This is done from here because we may not have an auditor in some
experiments
+ ssh -o StrictHostKeyChecking=no ${PRIMARY_EXCHANGE} \
+ "/bin/bash ~/scripts/exchange.sh add-auditor '${PUB_KEY}'
'http://${NODE_NAME}.${DNS_ZONE}/' '${NODE_NAME}'"
+
+ taler-auditor-offline download > input.json
+ taler-auditor-offline show < input.json
+ taler-auditor-offline sign < input.json > output.json
+ taler-auditor-offline upload < output.json
+}
+
+# Condifugre and start the auditor replication
+function init_auditor() {
+ create_users
+ init_db
+ setup_config
+ setup_exchange_replication
+}
+
+case $1 in
+ init)
+ if [[ "${TALER_SETUP_AUDITOR_REPLICATION}" == "0" ]]; then
+ echo "Not setting up auditor"
+ exit 0
+ fi
+ if [[ "${PARTITION_DB}" == "true" ]]; then
+ init_auditor
+ else
+ echo "INFO: sharded DB not supported yet"
+ fi
+ ;;
+ *)
+ taler_perf_help $0 "$INFO_MSG" "$OPT_MSG"
+ ;;
+esac
+
+exit 0
diff --git a/experiment/scripts/bank.sh b/experiment/scripts/bank.sh
index 6184bd4..f93ac53 100755
--- a/experiment/scripts/bank.sh
+++ b/experiment/scripts/bank.sh
@@ -13,9 +13,27 @@ source ~/scripts/helpers.sh
# Start the taler-fakebank
function init_bank() {
+ echo "
+fs.file-max=500000
+ " >> /etc/sysctl.conf
+
+ echo "
+* soft nofile unlimited
+* hard nofile unlimited
+ " >> /etc/security/limits.conf
+
+ sysctl -p
+
+ # Force the "Make tranfer from X to Y" to be logged for statistics
+ # of payment distribution
+ echo "GNUNET_FORCE_LOG=\";;make_transfer;;INFO\"" \
+ | tee -a /etc/environment ~/.env
+
create_cert "${NODE_NAME}.${DNS_ZONE}" "/etc/ssl/bank"
setup_rsyslog_for_nginx
+
restart_rsyslog
+
ln -sf /etc/nginx/sites-available/fakebank /etc/nginx/sites-enabled/fakebank
systemctl restart taler-fakebank.service \
nginx
diff --git a/experiment/scripts/bench2.sh b/experiment/scripts/bench2.sh
new file mode 100644
index 0000000..8763446
--- /dev/null
+++ b/experiment/scripts/bench2.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+cd ~/taler/wallet-core
+
+git checkout .
+
+# -e "/reserve found/,+43 d" \
+sed -i \
+ -e "s/checkReserve(http, benchConf.exchange,
reserveKeyPair.pub)/checkReserve(http, benchConf.exchange, reserveKeyPair.pub,
30000)/g" \
+ -e "/const refreshDenoms/,+14 d" \
+ -e "s/\* 10/\* 8/g" \
+ packages/taler-wallet-cli/src/bench2.ts
+
+make -j $(nproc) install
+
diff --git a/experiment/scripts/benchmark.sh b/experiment/scripts/benchmark.sh
index 587e360..bd02773 100755
--- a/experiment/scripts/benchmark.sh
+++ b/experiment/scripts/benchmark.sh
@@ -27,24 +27,43 @@ function start_wallet_bench() {
LOG_LEVEL=INFO
fi
- NUM_DEPOSITS=$((RANDOM %21))
+ NUM_DEPOSITS=$(($RANDOM % 21))
if [[ ${WALLET_WITHDRAW_ONLY} == "true" ]]; then
NUM_DEPOSITS=0
fi
-
- taler-wallet-cli \
+
+ if [[ "${WALLET_BENCHMARK}" == bench3 ]] && \
+ [[ "${WALLET_MERCHANT_SELECTION}" =~ zipf|rand ]]; then
+ taler-wallet-cli \
-L ${LOG_LEVEL} \
advanced ${WALLET_BENCHMARK} \
- --config-json "
- {
- \"exchange\": \"${PROTO}://${EXCHANGE_GW_DOMAIN}/\",
- \"bank\": \"http://bank.${DNS_ZONE}/\",
- \"currency\": \"KUDOS\",
- \"payto\": \"payto://x-taler-bank/bank.${DNS_ZONE}/foo\",
- \"iterations\": 100000,
- \"deposits\": ${NUM_DEPOSITS},
- \"restartAfter\": 2
- }"
+ --config-json "
+ {
+ \"exchange\": \"${PROTO}://${EXCHANGE_GW_DOMAIN}/\",
+ \"bank\": \"http://bank.${DNS_ZONE}/\",
+ \"currency\": \"KUDOS\",
+ \"paytoTemplate\":
\"payto://x-taler-bank/bank.${DNS_ZONE}/merchant-\${id}\",
+ \"randomAlg\": \"${WALLET_MERCHANT_SELECTION}\",
+ \"numMerchants\": ${WALLET_NUM_MERCHANTS},
+ \"iterations\": 100000,
+ \"deposits\": ${NUM_DEPOSITS},
+ \"restartAfter\": 2
+ }"
+ else
+ taler-wallet-cli \
+ -L ${LOG_LEVEL} \
+ advanced ${WALLET_BENCHMARK} \
+ --config-json "
+ {
+ \"exchange\": \"${PROTO}://${EXCHANGE_GW_DOMAIN}/\",
+ \"bank\": \"http://bank.${DNS_ZONE}/\",
+ \"currency\": \"KUDOS\",
+ \"payto\": \"payto://x-taler-bank/bank.${DNS_ZONE}/merchant-1\",
+ \"iterations\": 100000,
+ \"deposits\": ${NUM_DEPOSITS},
+ \"restartAfter\": 2
+ }"
+ fi
}
case $1 in
diff --git a/experiment/scripts/createusers.sh
b/experiment/scripts/createusers.sh
index 3f8d8eb..4ef9d9a 100755
--- a/experiment/scripts/createusers.sh
+++ b/experiment/scripts/createusers.sh
@@ -26,6 +26,13 @@ WIREUSERNAME=taler-exchange-wire
MERCHUSERNAME=taler-merchant-httpd
MERCHGROUPNAME=www-data
+AUDITCONFIG_FILE="/etc/default/taler-auditor"
+AUDITTALER_HOME="/var/lib/taler-auditor"
+AUDITUSERNAME=taler-auditor-httpd
+AUDITGROUPNAME=www-data
+AOUSERNAME=taler-auditor-offline
+AOGROUPNAME=taler-auditor-offline
+
# Create taler groups as needed
if ! getent group ${GROUPNAME} >/dev/null; then
addgroup --quiet --system ${GROUPNAME}
@@ -122,3 +129,35 @@ if ! dpkg-statoverride --list
/etc/taler/secrets/merchant-db.secret.conf >/dev/n
${MERCHUSERNAME} root 460 \
/etc/taler/secrets/merchant-db.secret.conf
fi
+
+# Auditor
+if ! getent group ${AUDITGROUPNAME} >/dev/null; then
+ addgroup --quiet --system \
+ ${AUDITGROUPNAME}
+fi
+if ! getent group ${AOGROUPNAME} >/dev/null; then
+ addgroup --quiet --system ${AOGROUPNAME}
+fi
+
+if ! getent passwd ${AUDITUSERNAME} >/dev/null; then
+ adduser --quiet --system \
+ --ingroup ${AUDITGROUPNAME} \
+ --no-create-home \
+ --home ${AUDITTALER_HOME} \
+ ${AUDITUSERNAME}
+fi
+
+if ! dpkg-statoverride --list /etc/taler/secrets/auditor-db.secret.conf
>/dev/null 2>&1; then
+ dpkg-statoverride --add --update \
+ ${AUDITUSERNAME} ${AUDITGROUPNAME} 660 \
+ /etc/taler/secrets/auditor-db.secret.conf
+fi
+if ! getent passwd ${AOUSERNAME} >/dev/null; then
+ adduser --quiet --system \
+ --ingroup ${AOGROUPNAME} \
+ --no-create-home \
+ --home ${TALER_HOME} ${AOUSERNAME}
+fi
+
+install -d /run/taler/auditor-httpd -m 0755 -o ${AUDITUSERNAME} -g
${AUDITGROUPNAME}
+install -d /var/lib/taler/auditor -m 0700 -o ${AOUSERNAME} -g ${AOGROUPNAME}
diff --git a/experiment/scripts/database.sh b/experiment/scripts/database.sh
index 736efb9..535188f 100755
--- a/experiment/scripts/database.sh
+++ b/experiment/scripts/database.sh
@@ -13,6 +13,8 @@ source ~/scripts/helpers.sh
# move to tmp to prevent change directory errors
cd /tmp
+PG_CONF=/etc/postgresql/${POSTGRES_VERSION}/main
+
# Setup a disk if present to be used for WAL and move the WAL there
# Don't use in combination with `setup_ram_storage`
function setup_disks() {
@@ -23,7 +25,7 @@ function setup_disks() {
# Yeti nvme
DISK=/dev/disk4
else
- return
+ return 0
fi
echo 'start=2048, type=83' | sfdisk ${DISK} || true
yes | mkfs.ext4 -m 0 ${DISK} || true
@@ -59,11 +61,16 @@ function setup_config() {
mv /var/lib/postgresql /tmp/
fi
- sed -i "s\<DB_URL_HERE>\postgresql:///${DB_NAME}\g" \
+ sed -i -e "s\<DB_URL_HERE>\postgresql:///${DB_NAME}\g" \
+ -e "s/<SHARD_USER_HERE>/${DB_USER}/g" \
+ -e "s/<SHARD_USER_PW_HERE>/${DB_PASSWORD}/g" \
/etc/taler/secrets/exchange-db.secret.conf
+
+ sed -i -e "s|<SHARD_DOMAIN_HERE>|${DNS_ZONE}|g" \
+ /etc/taler/conf.d/exchange-business.conf
# Get hardware info to tune in postgresql.conf
- SHARED_MEM=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) / 3 ))
+ SHARED_MEM=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) / 4 ))
CACHE_SIZE=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) * 3/4))
NUM_CPU=$(lscpu | grep "CPU(s)" | head -n 1 | awk '{print $2}')
@@ -79,6 +86,9 @@ function setup_config() {
sysctl -p
fi
+ # disable swap
+ swapoff -a
+
# Allow longer lines to be logged by postgres
sed -i '1 i\$MaxMessageSize 4k' /etc/rsyslog.conf
@@ -135,18 +145,14 @@ function setup_config() {
autovacuum_vacuum_cost_limit=400
autovacuum_vacuum_scale_factor=0.1
autovacuum_vacuum_threshold=1000
-
# Default 50, 0.1
autovacuum_analyze_threshold=50
autovacuum_analyze_scale_factor=0.1
# use 25% of the available memory
# (https://www.postgresql.org/docs/13/runtime-config-resource.html)
- # shared_buffers=${SHARED_MEM}kB
- # effective_cache_size=${CACHE_SIZE}kB
- shared_buffers=24551953kB
- effective_cache_size=75491895kB
-
+ shared_buffers=${SHARED_MEM}kB
+ effective_cache_size=${CACHE_SIZE}kB
huge_pages=on
@@ -203,7 +209,7 @@ function setup_config() {
max_parallel_maintenance_workers=12
# out of shared memory
- max_locks_per_transaction=85
+ max_locks_per_transaction=120
# (max used =~ work_mem * max_connections)
# NOTE: This formula is not completely correct
@@ -215,16 +221,26 @@ function setup_config() {
# Disable sequential scans
# enable_seqscan=off
+ enable_partitionwise_join=on
+ enable_partitionwise_aggregate=on
+
# set our database location to /tmp
data_directory='/tmp/postgresql/${POSTGRES_VERSION}/main'
- " > /etc/postgresql/${POSTGRES_VERSION}/main/exchange.conf
+ " > ${PG_CONF}/exchange.conf
+
+ # Must be done here otherwise pg does not start a second time
+ if [[ ${NUM_AUDITORS} -ge 1 ]] && \
+ [[ ${TALER_SETUP_AUDITOR_REPLICATION} == 1 ]];
+ then
+ echo "wal_level=logical" >> ${PG_CONF}/exchange.conf
+ fi
- cp /etc/postgresql/${POSTGRES_VERSION}/main/exchange.conf
${LOG_DIR}/postgresql.conf
+ cp ${PG_CONF}/exchange.conf ${LOG_DIR}/postgresql.conf
if ! grep -q "include = 'exchange.conf'" \
- /etc/postgresql/${POSTGRES_VERSION}/main/postgresql.conf; then
+ ${PG_CONF}/postgresql.conf; then
echo "include = 'exchange.conf'" >> \
- /etc/postgresql/${POSTGRES_VERSION}/main/postgresql.conf
+ ${PG_CONF}/postgresql.conf
fi
}
@@ -243,17 +259,37 @@ function setup_pgbouncer() {
fi
}
+# Enable replication to the auditor - is only done when an auditor node is
present
+function setup_replication() {
+ if [[ "${NUM_AUDITORS}" -ge 1 ]] && \
+ [[ ${TALER_SETUP_AUDITOR_REPLICATION} == 1 ]];
+ then
+ su postgres << EOF
+ createuser --replication egress
+ psql -tAc "ALTER ROLE egress WITH PASSWORD '${DB_PASSWORD}';" || true
+ psql -d ${DB_NAME} -tAc "GRANT SELECT ON ALL TABLES IN SCHEMA public TO
egress;"
+ psql -tAc "DROP PUBLICATION auditor;"
+ psql -d ${DB_NAME} -tAc "CREATE PUBLICATION exchange FOR ALL TABLES;"
+EOF
+ grep -q "host all egress 127.16.0.0/12 md5" \
+ ${PG_CONF}/pg_hba.conf \
+ || echo "host all egress 172.16.0.0/12 md5" \
+ >> ${PG_CONF}/pg_hba.conf
+ systemctl restart postgresql
+ fi
+}
+
# Allow DB_USER from remote (Exchange will continue initialization only when
# this one was run)
function enable_remote_access() {
# Enable password for taler since this is the case in real world deployments
# For the postgres user do not enable authentication (used in metrics)
if ! grep -q "host all ${DB_USER} 127.16.0.0/12 md5" \
- /etc/postgresql/${POSTGRES_VERSION}/main/pg_hba.conf; then
+ ${PG_CONF}/pg_hba.conf; then
echo "
host all ${DB_USER} 172.16.0.0/12 md5
host all postgres 172.16.0.0/12 trust
- " >> /etc/postgresql/${POSTGRES_VERSION}/main/pg_hba.conf
+ " >> ${PG_CONF}/pg_hba.conf
fi
}
@@ -266,10 +302,9 @@ psql -d "${DB_NAME}" -tAc "CREATE USER MAPPING IF NOT
EXISTS FOR \"${DB_USER}\"
SERVER \"${i}\"
OPTIONS (user '${DB_USER}', password
'${DB_PASSWORD}');"
EOF
-# Only in pg 14
-# for in $(seq $NUM_SHARDS); do
-# psql -d "${DB_NAME}" -tAc "ALTER SERVER ${i} OPTIONS (async_capable
"true");
-# done
+ if [[ ${POSTGRES_VERSION} == 14 ]]; then
+ psql -d "${DB_NAME}" -tAc "ALTER SERVER ${i} OPTIONS (async_capable
'true');"
+ fi
done
}
@@ -286,6 +321,7 @@ psql postgres -tAc "SELECT 1 FROM pg_roles WHERE
rolname='taler-exchange-httpd'"
createuser taler-exchange-httpd
psql -tAc "SELECT 1 FROM pg_database WHERE datname='${DB_NAME}'" | \
grep -q 1 || \
+
createdb -O taler-exchange-httpd "${DB_NAME}"
psql -tAc "CREATE EXTENSION IF NOT EXISTS pg_stat_statements"
EOF
@@ -303,10 +339,10 @@ EOF
sudo -u taler-exchange-httpd taler-exchange-dbinit -s || true
if [ "${SHARD_DB}" = "true" ]; then
- sudo -u postgres taler-exchange-dbinit -F ${NUM_SHARDS}
+ sudo -u postgres taler-exchange-dbinit -F -P ${NUM_SHARDS} -f
configure_shard_access
elif [ "${PARTITION_DB}" = "true" ]; then
- sudo -u taler-exchange-httpd taler-exchange-dbinit -P ${NUM_PARTITIONS}
+ sudo -u taler-exchange-httpd taler-exchange-dbinit -P ${NUM_PARTITIONS} -f
else
sudo -u taler-exchange-httpd taler-exchange-dbinit
fi
@@ -314,7 +350,7 @@ EOF
# Grant access to the databse to the remote user
su taler-exchange-httpd -s /bin/bash << EOF
psql -d "${DB_NAME}"
-GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA public TO "${DB_USER}";
+GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO
"${DB_USER}";
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO "${DB_USER}";
EOF
@@ -337,6 +373,7 @@ case ${1} in
setup_disks
fi
init_db
+ setup_replication
setup_pgbouncer
restart_rsyslog
;;
diff --git a/experiment/scripts/exchange-proxy.sh
b/experiment/scripts/exchange-proxy.sh
index ed4854c..e81d9a0 100755
--- a/experiment/scripts/exchange-proxy.sh
+++ b/experiment/scripts/exchange-proxy.sh
@@ -47,7 +47,7 @@ function setup_config() {
# Allow enough files to be opened by nginx (www-data)
echo "
- fs.file-max=50000
+ fs.file-max=500000
" >> /etc/sysctl.conf
echo "
diff --git a/experiment/scripts/exchange.sh b/experiment/scripts/exchange.sh
index 12a5f8d..a887ae2 100755
--- a/experiment/scripts/exchange.sh
+++ b/experiment/scripts/exchange.sh
@@ -23,6 +23,11 @@ start NUM:
stop NUM:
Stop NUM exchange-httpd daemons
+
+add-auditor AUDITOR_PUB_KEY AUDITOR_API_URL AUDITOR_NAME:
+ Register an auditor to the exchange
+ Best called from the auditor node.
+
"
set -eux
@@ -35,7 +40,7 @@ function setup_primary_config() {
rm -rf /var/lib/taler/exchange-offline/*
# Setup the base configuration (helpers.sh)
- setup_exchange_config_without_master_key
+ setup_exchange_config_without_master_key
"http://${NODE_NAME}.${DNS_ZONE}:10000/"
MASTER_KEY=$(sudo -u taler-exchange-offline taler-exchange-offline setup)
@@ -142,6 +147,10 @@ case $1 in
stop)
stop_exchanges $2
;;
+ add-auditor)
+ taler-exchange-offline enable-auditor $2 $3 "$4" > auditor.json
+ taler-exchange-offline upload < auditor.json
+ ;;
*)
taler_perf_help $0 "$INFO_MSG" "$OPT_MSG"
;;
diff --git a/experiment/scripts/helpers.sh b/experiment/scripts/helpers.sh
index c972bd9..0278519 100755
--- a/experiment/scripts/helpers.sh
+++ b/experiment/scripts/helpers.sh
@@ -112,21 +112,26 @@ function setup_rsyslog_for_nginx() {
/etc/rsyslog.conf
}
+# Get the exchanges master public key via the primary exchanges API
+function get_exchange_masterkey() {
+ MASTER_KEY=$(
+ curl -k -f \
+ "${PRIMARY_EXCHANGE}:10000/keys" \
+ | jq -r '.master_public_key'
+ )
+ echo "${MASTER_KEY}"
+}
+
# Setup taler.conf for aggregator etc. with downloading the
# master public key from the exchange API
function setup_exchange_config_master_key_from_api() {
- setup_exchange_config_without_master_key
+ setup_exchange_config_without_master_key "http://${EXCHANGE_GW_DOMAIN}/"
wait_for_keys "${PRIMARY_EXCHANGE}:10000"
- MASTER_KEY=$(
- curl -k -f \
- "${PRIMARY_EXCHANGE}:10000/keys" \
- | jq -r '.master_public_key'
- )
-
+ MASTER_KEY=$(get_exchange_masterkey)
sed -i -e "s/<MASTER_KEY_HERE>/${MASTER_KEY}/g" \
/etc/taler/conf.d/exchange-business.conf
@@ -134,11 +139,14 @@ function setup_exchange_config_master_key_from_api() {
# Setup taler.conf for any exchange-* process, does not configure
# the master key
+# $1: Exchange base url
function setup_exchange_config_without_master_key() {
AGGREGATOR_SHARD_SIZE=$(echo "2^(30-${NUM_AGGREGATOR_PROCESSES})" | bc)
- sed -i
"s\<DB_URL_HERE>\postgresql://${DB_USER}:${DB_PASSWORD}@db.${DNS_ZONE}:${DB_PORT}/${DB_NAME}\g"
\
+ sed -i -e
"s\<DB_URL_HERE>\postgresql://${DB_USER}:${DB_PASSWORD}@db.${DNS_ZONE}:${DB_PORT}/${DB_NAME}\g"
\
+ -e "s/<SHARD_USER_HERE>/${DB_USER}/g" \
+ -e "s/<SHARD_USER_PW_HERE>/${DB_PASSWORD}/g" \
/etc/taler/secrets/exchange-db.secret.conf
sed -i -e "s/<EXCHANGE_CIPHER_HERE>/${EXCHANGE_CIPHER}/g" \
@@ -149,9 +157,10 @@ function setup_exchange_config_without_master_key() {
/etc/taler/secrets/exchange-accountcredentials.secret.conf
sed -i -e "s/<BANK_HOST_HERE>/bank.${DNS_ZONE}/g" \
- -e "s\<BASE_URL_HERE>\http://${NODE_NAME}.${DNS_ZONE}:10000/\g" \
+ -e "s|<BASE_URL_HERE>|${1}|g" \
-e "s/<MAX_REQUESTS_HERE>/${EXCHANGE_MAX_REQUESTS:-8192}/g" \
-e "s/<AGGREGATOR_SHARD_SIZE_HERE>/${AGGREGATOR_SHARD_SIZE}/g" \
+ -e "s/<SHARD_DOMAIN_HERE>/${DNS_ZONE}/g" \
/etc/taler/conf.d/exchange-business.conf
sed -i "s/<LOOKAHEAD_SIGN_HERE>/${LOOKAHEAD_SIGN}/g" \
diff --git a/experiment/scripts/monitor.sh b/experiment/scripts/monitor.sh
index 94a21db..b10d7df 100755
--- a/experiment/scripts/monitor.sh
+++ b/experiment/scripts/monitor.sh
@@ -19,13 +19,20 @@ set -ex
source ~/scripts/helpers.sh
# Update a data source on the external grafana instance
-# $1: Data-source name (configured in .env)
-# $2: Grid5000 external url for the node where the data source is hosted
-# - https://www.grid5000.fr/w/HTTP/HTTPs_access
+# $1: Datasource name (configured in .env)
+# $2: Port where the datasource is listenig
+# (http/http8080 or https/https8443)
+# See: https://www.grid5000.fr/w/HTTP/HTTPs_access
function update_datasource() {
+ # Get the id of the datasource to update
ID=$(jq --arg name "$1" '.[] | select(.name == $name) | .id' ds.json)
- jq --arg url "https://$(hostname | cut -d "." -f 1,2
-).$2.proxy.grid5000.fr" \
+ # We require e.g. dahu-2.grenoble.<PORT> as domain
+ # Extract dahu-2.grenoble from 'hostname'
+ HOST=$(hostname | cut -d "." -f 1,2 -)
+
+ # Replace the datasources url with our proxy domain
+ jq --arg url "https://${HOST}.${2}.proxy.grid5000.fr" \
--arg name "$1" \
'.[] | select(.name == $name) | .url = $url' \
ds.json | \
@@ -42,11 +49,13 @@ function update_datasource() {
# step is skipped - requires admin level api key to update data sources
function update_grafana() {
if [[ -z ${GRAFANA_HOST} || -z ${GRAFANA_API_KEY} ]]; then
- return
+ return 0
fi
AUTH_HEADER="Authorization: Bearer ${GRAFANA_API_KEY}"
GRAFANA_API="${GRAFANA_HOST}/api"
+ # Retrieve the initially configured datasources and safe them to a file
+ # to be used later in update_datasource
if ! curl -k -f -H "${AUTH_HEADER}" \
"${GRAFANA_API}/datasources" \
-o ds.json ;
@@ -62,12 +71,12 @@ function update_grafana() {
# Configure all exporters which run on this host
function configure_prometheus_and_exporters() {
- sed -i -e
"s\<EXCHANGE_DB_URL_HERE>\postgresql://postgres@db.${DNS_ZONE}:5432?sslmode=disable\g"
\
+ sed -i -e
"s\<EXCHANGE_DB_URL_HERE>\postgresql://postgres@db.${DNS_ZONE}:5432/${DB_NAME}?sslmode=disable\g"
\
/etc/default/prometheus-postgres-exporter
CFG=""
for MERCH in $(get_hosts "merchant"); do
- CFG="${CFG},postgresql://postgres@${MERCH}.${DNS_ZONE}:5432"
+
CFG="${CFG},postgresql://postgres@${MERCH}.${DNS_ZONE}:5432/taler-merchant?sslmode=disable"
sed -i "s/<MERCHANT_HOST_HERE>/${MERCH}.${DNS_ZONE}/g" \
/etc/monitor/prometheus.yaml
done
@@ -76,10 +85,19 @@ function configure_prometheus_and_exporters() {
CFG=""
for SHARD in $(get_hosts "shard"); do
- CFG="${CFG},postgresql://postgres@${SHARD}.${DNS_ZONE}:5432"
+
CFG="${CFG},postgresql://postgres@${SHARD}.${DNS_ZONE}:5432/${DB_NAME}?sslmode=disable"
done
sed -i "s|<SHARD_DB_URLS_HERE>|${CFG}|g" \
/etc/default/prometheus-postgres-exporter
+
+ CFG=""
+ if [[ ${NUM_AUDITORS} -ge 1 ]] && \
+ [[ ${TALER_SETUP_AUDITOR_REPLICATION} == 1 ]];
+ then
+
CFG="${CFG},postgresql://postgres@auditor.${DNS_ZONE}:5432/taler-ingress?sslmode=disable"
+ fi
+ sed -i "s|<AUDITOR_DB_URL_HERE>|${CFG}|g" \
+ /etc/default/prometheus-postgres-exporter
}
# Create the directory which will be used to store recovery data
diff --git a/experiment/scripts/run.sh b/experiment/scripts/run.sh
index 8f1dd47..c21fa77 100644
--- a/experiment/scripts/run.sh
+++ b/experiment/scripts/run.sh
@@ -22,6 +22,7 @@ set_host ${NODE_NAME}
PROMTAIL_LOG_PORT=1514
if [[ "${HOSTNAME}" =~ ${BANK_HOSTS} ]]; then
+ PROMTAIL_LOG_PORT=1518
setup_log
enable_logrotate
exec ~/scripts/bank.sh init
@@ -68,6 +69,10 @@ elif [[ "${HOSTNAME}" =~ ${WIREWATCH_HOSTS} ]]; then
enable_logrotate
enable_netdelay db.${DNS_ZONE}
exec ~/scripts/exchange-wirewatch.sh init
+elif [[ "${HOSTNAME}" =~ ${AUDITOR_HOSTS} ]]; then
+ setup_log
+ enable_logrotate
+ exec ~/scripts/auditor.sh init
elif [[ "${HOSTNAME}" =~ ${MERCHANT_HOSTS} ]]; then
setup_log
enable_logrotate
diff --git a/experiment/scripts/setup.sh b/experiment/scripts/setup.sh
index 14ad4d4..724b9e9 100644
--- a/experiment/scripts/setup.sh
+++ b/experiment/scripts/setup.sh
@@ -57,7 +57,7 @@ function parse_experiment_nodes() {
)
echo "${NODE^^}_HOSTS=\"${NODES_STR}\"" >> ~/.env
- echo "NUM_${NODE^^}S=$(echo ${NODES_STR} | awk -F '|' '{print NF}')" >>
~/.env
+ echo "NUM_${NODE^^}S=$(echo ${NODES_STR} | grep -v "none" | awk -F '|'
'{print NF}')" >> ~/.env
done
# Export NODE_NAME, which can be used to set log directories for example
@@ -129,7 +129,12 @@ function setup_environment() {
# Setup shared configurations such as the ones from configs/*
function setup_config() {
# Temporarily checkout to the feature branch
- cd "${G5K_HOME}" && git checkout "${G5K_COMMIT_SHA}" && git pull && cd
+ cd "${G5K_HOME}"
+
+ git pull
+ git checkout "${G5K_COMMIT_SHA}"
+
+ cd
# Remove default nginx config
rm /etc/nginx/sites-enabled/default > /dev/null 2>&1 || true
@@ -197,7 +202,8 @@ function clean_previous_setup() {
# (not all are present on every node - || true - to ignore errors)
systemctl stop taler-exchange-* \
taler-wallet* \
- prometheus* \
+ prometheus \
+ prometheus-*-exporter \
postgresql* \
promtail \
loki \
@@ -208,12 +214,16 @@ function clean_previous_setup() {
HBA_FILE=/tmp/postgresql/${POSTGRES_VERSION}/data/pg_hba.conf
fi
sed -i "/172.16.0.0\/12/d" "${HBA_FILE}" || true
+
+ if [[ "$REMOVE_PREVIOUS_EXPERIMENT_DATA" == "true" ]]; then
+ rm -rf /home/${G5K_USER}/exp-* || true
+ fi
}
clean_previous_setup
# Check if binaries need to be rebuilt on debian based operating systems
if ! grep -q "Red Hat" /proc/version; then
- source ~/scripts/install.sh &
+ source ~/scripts/install.sh
fi
parse_experiment_nodes
setup_log_dir
@@ -221,8 +231,6 @@ setup_environment
setup_config
setup_dns
-wait
-
if ! grep -q "Red Hat" /proc/version; then
# Only works in debian based operating systems
exec ~/scripts/createusers.sh
diff --git a/experiment/scripts/shard.sh b/experiment/scripts/shard.sh
index 4160c5d..921605f 100755
--- a/experiment/scripts/shard.sh
+++ b/experiment/scripts/shard.sh
@@ -25,7 +25,7 @@ function setup_config() {
fi
# Get hardware info to tune in postgresql.conf
- SHARED_MEM=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) / 3 ))
+ SHARED_MEM=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) / 4 ))
CACHE_SIZE=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) * 3/4))
NUM_CPU=$(lscpu | grep "CPU(s)" | head -n 1 | awk '{print $2}')
@@ -41,6 +41,9 @@ function setup_config() {
sysctl -p
fi
+ # disable swap
+ swapoff -a
+
# Configure postgres with an additional file and include this
# in the main configuration
echo "
diff --git a/experiment/scripts/taler-perf.sh b/experiment/scripts/taler-perf.sh
index 9e3340c..845c9f1 100644
--- a/experiment/scripts/taler-perf.sh
+++ b/experiment/scripts/taler-perf.sh
@@ -167,9 +167,9 @@ function rebuild() {
}
function rebuild_all() {
- for NODE in $(dig -t AXFR ${DNS_ZONE} | grep "\<A\>" | awk 'print substr($1,
1, length($1)-1)}'); do
+ for NODE in $(dig -t AXFR ${DNS_ZONE} | grep "\<A\>" | awk '{print
substr($1, 1, length($1)-1)}'); do
if [[ $NODE == $EXCHANGE_GW_DOMAIN ]]; then continue; fi
- ssh ${NODE} "taler-perf build $(printf "%q " "$@")" &
+ ssh -o StrictHostKeyChecking=no ${NODE} "taler-perf build $(printf "%q "
"$@")" &
done
wait
}
@@ -193,7 +193,7 @@ case "$1" in
;;
*)
echo "Usage:"
- echo "start|stop|rebuild"
+ echo "start|stop|build|rebuild_all"
echo "just run a command without an argument to get help"
exit 1
;;
diff --git a/experiment/taler.many.rspec b/experiment/taler.many.rspec
index 4abfe99..dc5c06a 100644
--- a/experiment/taler.many.rspec
+++ b/experiment/taler.many.rspec
@@ -1,87 +1,87 @@
<?xml version='1.0'?>
-<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request"
generated_by="jFed RSpec Editor" generated="2022-04-06T21:42:37.131+02:00"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:
[...]
+<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request"
generated_by="jFed RSpec Editor" generated="2022-05-15T13:28:29.815+02:00"
xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1"
xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1"
xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1"
xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:
[...]
<node client_id="DB" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="97.68354430379748" y="25.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="94.0"
y="32.5"/>
</node>
<node client_id="Exchange-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="221.0"
y="72.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="155.0"
y="76.5"/>
</node>
<node client_id="Bank" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="474.7974683544304" y="25.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="393.0"
y="33.5"/>
</node>
<node client_id="EProxy-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="226.5"
y="126.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="165.5"
y="125.5"/>
</node>
<node client_id="Monitor" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="915.0"
y="92.81119637333838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="689.5"
y="75.5"/>
</node>
<node client_id="Merchant-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="662.6455696202531" y="92.81119637333838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="861.5"
y="34.5"/>
</node>
<node client_id="DNS" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="781.0253164556962" y="25.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="679.0"
y="35.5"/>
</node>
<node client_id="Aggregator" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="500.5"
y="138.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="541.5"
y="35.5"/>
</node>
<node client_id="Wirewatch" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="649.5"
y="139.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="539.5"
y="74.5"/>
</node>
<node client_id="Transfer" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="790.5"
y="138.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="531.5"
y="116.5"/>
</node>
<node client_id="Closer" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="913.5"
y="137.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="523.5"
y="154.5"/>
</node>
<node client_id="Exchange-2" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="364.0"
y="70.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="314.0"
y="76.5"/>
</node>
<node client_id="Wallet-1" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -111,7 +111,7 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="205.30722735107315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="862.5"
y="202.5"/>
</node>
<node client_id="Wallet-6" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -135,19 +135,19 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="660.5"
y="234.5"/>
</node>
<node client_id="Wallet-10" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="236.665006020825"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="866.0"
y="235.5"/>
</node>
<node client_id="Wallet-11" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="79.0"
y="268.5"/>
</node>
<node client_id="Wallet-12" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -159,25 +159,25 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="471.9620253164557" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="478.0"
y="268.5"/>
</node>
<node client_id="Wallet-14" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="265.5"/>
</node>
<node client_id="Wallet-15" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="268.0227846905768"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="266.5"/>
</node>
<node client_id="Wallet-16" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="75.0"
y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="82.0"
y="298.5"/>
</node>
<node client_id="Wallet-17" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -189,31 +189,31 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="471.9620253164557" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="479.0"
y="300.5"/>
</node>
<node client_id="Wallet-19" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="670.4430379746834" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="666.0"
y="298.5"/>
</node>
<node client_id="Wallet-20" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="868.9240506329114" y="299.3805633603287"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="298.5"/>
</node>
<node client_id="Wallet-21" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="83.0"
y="328.5"/>
</node>
<node client_id="Wallet-22" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="279.15189873417717" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="274.0"
y="332.5"/>
</node>
<node client_id="Wallet-23" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -225,25 +225,25 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="677.5316455696203" y="333.4821476636838"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="666.0"
y="331.5"/>
</node>
<node client_id="Wallet-25" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="876.012658227848" y="331.91425873019625"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="328.5"/>
</node>
<node client_id="Wallet-26" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="86.34177215189874" y="364.0559818666919"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="84.0"
y="358.5"/>
</node>
<node client_id="Wallet-27" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="281.9873417721519" y="364.8399263334357"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="275.0"
y="360.5"/>
</node>
<node client_id="Wallet-28" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
@@ -255,199 +255,199 @@
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="681.7848101265823" y="366.40781526692325"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="364.5"/>
</node>
<node client_id="Wallet-30" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="881.6835443037975" y="366.40781526692325"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="360.5"/>
</node>
<node client_id="Wallet-31" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="393.84587160295615"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="79.0"
y="391.5"/>
</node>
<node client_id="Wallet-32" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="281.9873417721519" y="397.7655939366752"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="276.0"
y="392.5"/>
</node>
<node client_id="Wallet-33" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="484.72151898734177" y="399.33348287016264"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="478.0"
y="402.5"/>
</node>
<node client_id="Wallet-34" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="678.9493670886076" y="397.7655939366752"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="398.5"/>
</node>
<node client_id="Wallet-35" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="884.5189873417721" y="395.41376053644376"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="398.5"/>
</node>
<node client_id="Wallet-36" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="80.67088607594937" y="426.77153920619554"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="80.0"
y="423.5"/>
</node>
<node client_id="Wallet-37" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="289.0759493670886" y="428.33942813968315"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="277.0"
y="429.5"/>
</node>
<node client_id="Wallet-38" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="488.97468354430373" y="429.90731707317076"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="480.0"
y="434.5"/>
</node>
<node client_id="Wallet-39" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="688.873417721519" y="426.77153920619554"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="432.5"/>
</node>
<node client_id="Wallet-40" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="891.6075949367088" y="427.55548367293943"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="431.5"/>
</node>
<node client_id="Wallet-41" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="84.0"
y="463.3365853658537"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="80.0"
y="454.5"/>
</node>
<node client_id="Wallet-42" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="295.0"
y="460.3317073170732"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="277.0"
y="460.5"/>
</node>
<node client_id="Wallet-43" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="485.0"
y="460.3317073170732"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="479.0"
y="464.5"/>
</node>
<node client_id="Wallet-44" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="685.0"
y="455.8243902439025"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="464.5"/>
</node>
<node client_id="Wallet-45" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="892.0"
y="460.3317073170732"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="464.5"/>
</node>
<node client_id="Wallet-46" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="87.0"
y="497.89268292682925"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="81.0"
y="487.5"/>
</node>
<node client_id="Wallet-47" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="297.0"
y="492.63414634146346"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="278.0"
y="495.5"/>
</node>
<node client_id="Wallet-48" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="491.0"
y="496.390243902439"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="478.0"
y="494.5"/>
</node>
<node client_id="Wallet-49" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="689.0"
y="487.37560975609756"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="664.0"
y="497.5"/>
</node>
<node client_id="Wallet-50" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="897.0"
y="492.63414634146346"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="495.5"/>
</node>
<node client_id="Wallet-51" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="86.0"
y="530.1951219512196"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="82.0"
y="520.5"/>
</node>
<node client_id="Wallet-52" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="301.0"
y="525.6878048780488"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="279.0"
y="526.5"/>
</node>
<node client_id="Wallet-53" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="492.99999999999994" y="529.4439024390244"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="479.0"
y="526.5"/>
</node>
<node client_id="Wallet-54" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="692.0"
y="526.439024390244"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="664.0"
y="526.5"/>
</node>
<node client_id="Wallet-55" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="901.9999999999999" y="529.4439024390244"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="527.5"/>
</node>
<node client_id="Wallet-56" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="90.0"
y="558.7414634146342"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="84.0"
y="552.5"/>
</node>
<node client_id="Wallet-57" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="304.0"
y="558.7414634146342"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="279.0"
y="558.5"/>
</node>
<node client_id="Wallet-58" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="494.0"
y="560.2439024390244"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="479.0"
y="556.5"/>
</node>
<node client_id="Wallet-59" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="696.0"
y="557.2390243902439"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="665.0"
y="558.5"/>
</node>
<node client_id="Wallet-60" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"
x="904.9999999999999" y="564.0"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="865.0"
y="560.5"/>
</node>
<node client_id="EProxy-2" exclusive="true"
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
<sliver_type name="raw-pc">
<disk_image
name="http://public.lille.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
</sliver_type>
<hardware_type name="dahu-grenoble"/>
- <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="338.0"
y="126.5"/>
+ <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="304.5"
y="125.5"/>
</node>
</rspec>
\ No newline at end of file
diff --git a/image/debian11/taler-debian11.yaml
b/image/debian11/taler-debian11.yaml
index 738fba4..c3236ff 100644
--- a/image/debian11/taler-debian11.yaml
+++ b/image/debian11/taler-debian11.yaml
@@ -39,7 +39,7 @@ global:
g5k_kernel_params: "mitigations=off"
## Environment visibility
# g5k_visibility: "shared"
- taler_build_packages: "recutils autoconf uncrustify autopoint libtool
python3-pip libgcrypt20-dev libjansson-dev libcurl4-gnutls-dev libsodium-dev
libidn2-dev libunistring-dev libgnutls28-dev libsqlite3-dev libqrencode-dev
valgrind libpq-dev texinfo gdb make npm zip python3-distutils pkg-config"
+ taler_build_packages: "recutils autoconf uncrustify autopoint libtool
python3-pip libgcrypt20-dev libjansson-dev libcurl4-gnutls-dev libsodium-dev
libidn2-dev libunistring-dev libgnutls28-dev libsqlite3-dev libqrencode-dev
valgrind libpq-dev texinfo gdb make zip python3-distutils pkg-config"
taler_packages: "nginx postgresql-13 postgresql-contrib curl jq bc sudo git
zile dnsutils prometheus-postgres-exporter prometheus-nginx-exporter net-tools
netcat parallel nodejs tshark dnsmasq bind9 systemd-coredump bash-completion
pgbouncer pgstat linux-perf"
taler_packages_no_recommends: "prometheus prometheus-node-exporter
prometheus-pgbouncer-exporter"
taler_disable_services: "nginx postgresql prometheus
prometheus-postgres-exporter prometheus-nginx-exporter prometheus-node-exporter
named gettext-base dnsmasq prometheus-pgbouncer-exporter pgbouncer"
@@ -72,6 +72,8 @@ setup:
- exec_in: |
apt update
apt upgrade -y
+ apt install -y curl
+ curl -sL https://deb.nodesource.com/setup_16.x | bash -
apt install -y $${taler_packages} $${taler_build_packages}
apt install -y --no-install-recommends
$${taler_packages_no_recommends}
@@ -153,8 +155,7 @@ setup:
npm install -g pnpm
./bootstrap
- ./configure
- sed -i "s|^\s*pnpm install --frozen-lockfile --filter
@gnu-taler/taler-wallet-cli...|& --unsafe-perm|" Makefile
+ ./configure --prefix=/usr
make install
- grid5k:
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-grid5k] branch master updated (87b3f10 -> 653b702),
gnunet <=
- [taler-grid5k] 03/48: nodejs must be installed manually, gnunet, 2022/05/28
- [taler-grid5k] 02/48: nodejs must be installed manually, gnunet, 2022/05/28
- [taler-grid5k] 01/48: add shard user and domain in taler config, gnunet, 2022/05/28
- [taler-grid5k] 05/48: bank log on different port, gnunet, 2022/05/28
- [taler-grid5k] 16/48: auditor added to exchange, gnunet, 2022/05/28
- [taler-grid5k] 04/48: fix permissions, gnunet, 2022/05/28
- [taler-grid5k] 09/48: update dashboards, gnunet, 2022/05/28
- [taler-grid5k] 19/48: logical replication implemented, gnunet, 2022/05/28
- [taler-grid5k] 06/48: fix promtail, gnunet, 2022/05/28
- [taler-grid5k] 11/48: add auditor config files, gnunet, 2022/05/28