gnunet-svn
[Top][All Lists]
Advanced

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

[taler-grid5k] 43/141: dynamically update grafana datasources


From: gnunet
Subject: [taler-grid5k] 43/141: dynamically update grafana datasources
Date: Thu, 18 Nov 2021 14:49:44 +0100

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

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

commit e82cb7f7c0e796040520c219a4120a2b8c3dabe6
Author: Boss Marco <bossm8@bfh.ch>
AuthorDate: Wed Oct 13 17:41:51 2021 +0200

    dynamically update grafana datasources
---
 configs/etc/default/prometheus-postgres-exporter   |   2 +-
 configs/etc/monitor/loki.yaml                      |   2 +-
 configs/etc/monitor/postgres-exporter.yaml         | 275 +++++++++++++++++++++
 configs/etc/monitor/promtail.yaml                  |   2 +-
 configs/etc/nginx/sites-available/proxy            |   6 +-
 .../systemd/system/taler-exchange-httpd@.service   |  22 ++
 .../systemd/system/taler-exchange-httpd@.socket    |  14 ++
 experiment/env                                     |  11 +-
 experiment/run.sh                                  |  14 --
 experiment/scripts/database.sh                     |   5 +-
 experiment/scripts/monitor.sh                      |  51 +++-
 experiment/scripts/proxy.sh                        |   2 +-
 experiment/setup.sh                                |   2 +-
 experiment/taler-perf.rspec                        |   8 +-
 image/taler-debian11.yaml                          |   2 +-
 15 files changed, 385 insertions(+), 33 deletions(-)

diff --git a/configs/etc/default/prometheus-postgres-exporter 
b/configs/etc/default/prometheus-postgres-exporter
index 35fea35..15722ac 100644
--- a/configs/etc/default/prometheus-postgres-exporter
+++ b/configs/etc/default/prometheus-postgres-exporter
@@ -7,7 +7,7 @@
 DATA_SOURCE_NAME='<DB_URL_HERE>'
 
 # Set the command-line arguments to pass to the server.
-ARGS=''
+ARGS='--extend.query-path=/etc/monitor/postgres-exporter.yaml'
 
 # Available flags:
 #  --web.listen-address=":9187"  Address to listen on for web interface and 
telemetry.
diff --git a/configs/etc/monitor/loki.yaml b/configs/etc/monitor/loki.yaml
index affd655..96fd7a4 100644
--- a/configs/etc/monitor/loki.yaml
+++ b/configs/etc/monitor/loki.yaml
@@ -2,7 +2,7 @@ auth_enabled: false
 
 server:
   http_listen_port: 80
-  grpc_listen_port: 0
+  grpc_listen_port: 9096
 
 ingester:
   wal:
diff --git a/configs/etc/monitor/postgres-exporter.yaml 
b/configs/etc/monitor/postgres-exporter.yaml
new file mode 100644
index 0000000..d1a20a1
--- /dev/null
+++ b/configs/etc/monitor/postgres-exporter.yaml
@@ -0,0 +1,275 @@
+pg_replication:
+  query: "SELECT CASE WHEN NOT pg_is_in_recovery() THEN 0 ELSE GREATEST (0, 
EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp()))) END AS lag"
+  master: true
+  metrics:
+    - lag:
+        usage: "GAUGE"
+        description: "Replication lag behind master in seconds"
+
+pg_postmaster:
+  query: "SELECT pg_postmaster_start_time as start_time_seconds from 
pg_postmaster_start_time()"
+  master: true
+  metrics:
+    - start_time_seconds:
+        usage: "GAUGE"
+        description: "Time at which postmaster started"
+
+pg_stat_user_tables:
+  query: |
+   SELECT
+     current_database() datname,
+     schemaname,
+     relname,
+     seq_scan,
+     seq_tup_read,
+     idx_scan,
+     idx_tup_fetch,
+     n_tup_ins,
+     n_tup_upd,
+     n_tup_del,
+     n_tup_hot_upd,
+     n_live_tup,
+     n_dead_tup,
+     n_mod_since_analyze,
+     COALESCE(last_vacuum, '1970-01-01Z') as last_vacuum,
+     COALESCE(last_autovacuum, '1970-01-01Z') as last_autovacuum,
+     COALESCE(last_analyze, '1970-01-01Z') as last_analyze,
+     COALESCE(last_autoanalyze, '1970-01-01Z') as last_autoanalyze,
+     vacuum_count,
+     autovacuum_count,
+     analyze_count,
+     autoanalyze_count
+   FROM
+     pg_stat_user_tables
+  metrics:
+    - datname:
+        usage: "LABEL"
+        description: "Name of current database"
+    - schemaname:
+        usage: "LABEL"
+        description: "Name of the schema that this table is in"
+    - relname:
+        usage: "LABEL"
+        description: "Name of this table"
+    - seq_scan:
+        usage: "COUNTER"
+        description: "Number of sequential scans initiated on this table"
+    - seq_tup_read:
+        usage: "COUNTER"
+        description: "Number of live rows fetched by sequential scans"
+    - idx_scan:
+        usage: "COUNTER"
+        description: "Number of index scans initiated on this table"
+    - idx_tup_fetch:
+        usage: "COUNTER"
+        description: "Number of live rows fetched by index scans"
+    - n_tup_ins:
+        usage: "COUNTER"
+        description: "Number of rows inserted"
+    - n_tup_upd:
+        usage: "COUNTER"
+        description: "Number of rows updated"
+    - n_tup_del:
+        usage: "COUNTER"
+        description: "Number of rows deleted"
+    - n_tup_hot_upd:
+        usage: "COUNTER"
+        description: "Number of rows HOT updated (i.e., with no separate index 
update required)"
+    - n_live_tup:
+        usage: "GAUGE"
+        description: "Estimated number of live rows"
+    - n_dead_tup:
+        usage: "GAUGE"
+        description: "Estimated number of dead rows"
+    - n_mod_since_analyze:
+        usage: "GAUGE"
+        description: "Estimated number of rows changed since last analyze"
+    - last_vacuum:
+        usage: "GAUGE"
+        description: "Last time at which this table was manually vacuumed (not 
counting VACUUM FULL)"
+    - last_autovacuum:
+        usage: "GAUGE"
+        description: "Last time at which this table was vacuumed by the 
autovacuum daemon"
+    - last_analyze:
+        usage: "GAUGE"
+        description: "Last time at which this table was manually analyzed"
+    - last_autoanalyze:
+        usage: "GAUGE"
+        description: "Last time at which this table was analyzed by the 
autovacuum daemon"
+    - vacuum_count:
+        usage: "COUNTER"
+        description: "Number of times this table has been manually vacuumed 
(not counting VACUUM FULL)"
+    - autovacuum_count:
+        usage: "COUNTER"
+        description: "Number of times this table has been vacuumed by the 
autovacuum daemon"
+    - analyze_count:
+        usage: "COUNTER"
+        description: "Number of times this table has been manually analyzed"
+    - autoanalyze_count:
+        usage: "COUNTER"
+        description: "Number of times this table has been analyzed by the 
autovacuum daemon"
+
+pg_statio_user_tables:
+  query: "SELECT current_database() datname, schemaname, relname, 
heap_blks_read, heap_blks_hit, idx_blks_read, idx_blks_hit, toast_blks_read, 
toast_blks_hit, tidx_blks_read, tidx_blks_hit FROM pg_statio_user_tables"
+  metrics:
+    - datname:
+        usage: "LABEL"
+        description: "Name of current database"
+    - schemaname:
+        usage: "LABEL"
+        description: "Name of the schema that this table is in"
+    - relname:
+        usage: "LABEL"
+        description: "Name of this table"
+    - heap_blks_read:
+        usage: "COUNTER"
+        description: "Number of disk blocks read from this table"
+    - heap_blks_hit:
+        usage: "COUNTER"
+        description: "Number of buffer hits in this table"
+    - idx_blks_read:
+        usage: "COUNTER"
+        description: "Number of disk blocks read from all indexes on this 
table"
+    - idx_blks_hit:
+        usage: "COUNTER"
+        description: "Number of buffer hits in all indexes on this table"
+    - toast_blks_read:
+        usage: "COUNTER"
+        description: "Number of disk blocks read from this table's TOAST table 
(if any)"
+    - toast_blks_hit:
+        usage: "COUNTER"
+        description: "Number of buffer hits in this table's TOAST table (if 
any)"
+    - tidx_blks_read:
+        usage: "COUNTER"
+        description: "Number of disk blocks read from this table's TOAST table 
indexes (if any)"
+    - tidx_blks_hit:
+        usage: "COUNTER"
+        description: "Number of buffer hits in this table's TOAST table 
indexes (if any)"
+
+pg_database:
+  query: "SELECT pg_database.datname, pg_database_size(pg_database.datname) as 
size_bytes FROM pg_database"
+  master: true
+  cache_seconds: 30
+  metrics:
+    - datname:
+        usage: "LABEL"
+        description: "Name of the database"
+    - size_bytes:
+        usage: "GAUGE"
+        description: "Disk space used by the database"
+
+pg_stat_statements:
+  query: "SELECT t2.rolname, t3.datname, queryid, calls, total_time / 1000 as 
total_time_seconds, min_time / 1000 as min_time_seconds, max_time / 1000 as 
max_time_seconds, mean_time / 1000 as mean_time_seconds, stddev_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 as blk_read_time_seconds,  [...]
+  master: true
+  metrics:
+    - rolname:
+        usage: "LABEL"
+        description: "Name of user"
+    - datname:
+        usage: "LABEL"
+        description: "Name of database"
+    - queryid:
+        usage: "LABEL"
+        description: "Query ID"
+    - calls:
+        usage: "COUNTER"
+        description: "Number of times executed"
+    - total_time_seconds:
+        usage: "COUNTER"
+        description: "Total time spent in the statement, in milliseconds"
+    - min_time_seconds:
+        usage: "GAUGE"
+        description: "Minimum time spent in the statement, in milliseconds"
+    - max_time_seconds:
+        usage: "GAUGE"
+        description: "Maximum time spent in the statement, in milliseconds"
+    - mean_time_seconds:
+        usage: "GAUGE"
+        description: "Mean time spent in the statement, in milliseconds"
+    - stddev_time_seconds:
+        usage: "GAUGE"
+        description: "Population standard deviation of time spent in the 
statement, in milliseconds"
+    - rows:
+        usage: "COUNTER"
+        description: "Total number of rows retrieved or affected by the 
statement"
+    - shared_blks_hit:
+        usage: "COUNTER"
+        description: "Total number of shared block cache hits by the statement"
+    - shared_blks_read:
+        usage: "COUNTER"
+        description: "Total number of shared blocks read by the statement"
+    - shared_blks_dirtied:
+        usage: "COUNTER"
+        description: "Total number of shared blocks dirtied by the statement"
+    - shared_blks_written:
+        usage: "COUNTER"
+        description: "Total number of shared blocks written by the statement"
+    - local_blks_hit:
+        usage: "COUNTER"
+        description: "Total number of local block cache hits by the statement"
+    - local_blks_read:
+        usage: "COUNTER"
+        description: "Total number of local blocks read by the statement"
+    - local_blks_dirtied:
+        usage: "COUNTER"
+        description: "Total number of local blocks dirtied by the statement"
+    - local_blks_written:
+        usage: "COUNTER"
+        description: "Total number of local blocks written by the statement"
+    - temp_blks_read:
+        usage: "COUNTER"
+        description: "Total number of temp blocks read by the statement"
+    - temp_blks_written:
+        usage: "COUNTER"
+        description: "Total number of temp blocks written by the statement"
+    - blk_read_time_seconds:
+        usage: "COUNTER"
+        description: "Total time the statement spent reading blocks, in 
milliseconds (if track_io_timing is enabled, otherwise zero)"
+    - blk_write_time_seconds:
+        usage: "COUNTER"
+        description: "Total time the statement spent writing blocks, in 
milliseconds (if track_io_timing is enabled, otherwise zero)"
+
+pg_process_idle:
+  query: |
+    WITH
+      metrics AS (
+        SELECT
+          application_name,
+          SUM(EXTRACT(EPOCH FROM (CURRENT_TIMESTAMP - 
state_change))::bigint)::float AS process_idle_seconds_sum,
+          COUNT(*) AS process_idle_seconds_count
+        FROM pg_stat_activity
+        WHERE state = 'idle'
+        GROUP BY application_name
+      ),
+      buckets AS (
+        SELECT
+          application_name,
+          le,
+          SUM(
+            CASE WHEN EXTRACT(EPOCH FROM (CURRENT_TIMESTAMP - state_change)) 
<= le
+              THEN 1
+              ELSE 0
+            END
+          )::bigint AS bucket
+        FROM
+          pg_stat_activity,
+          UNNEST(ARRAY[1, 2, 5, 15, 30, 60, 90, 120, 300]) AS le
+        GROUP BY application_name, le
+        ORDER BY application_name, le
+      )
+    SELECT
+      application_name,
+      process_idle_seconds_sum as seconds_sum,
+      process_idle_seconds_count as seconds_count,
+      ARRAY_AGG(le) AS seconds,
+      ARRAY_AGG(bucket) AS seconds_bucket
+    FROM metrics JOIN buckets USING (application_name)
+    GROUP BY 1, 2, 3
+  metrics:
+    - application_name:
+        usage: "LABEL"
+        description: "Application Name"
+    - seconds:
+        usage: "HISTOGRAM"
+        description: "Idle time of server processes"
+
diff --git a/configs/etc/monitor/promtail.yaml 
b/configs/etc/monitor/promtail.yaml
index a63a6c2..231d5b6 100644
--- a/configs/etc/monitor/promtail.yaml
+++ b/configs/etc/monitor/promtail.yaml
@@ -6,7 +6,7 @@ positions:
   filename: /tmp/positions.yaml
 
 clients:
-  - url: http://monitor.perf.taler:8080/loki/api/v1/push
+  - url: http://monitor.perf.taler/loki/api/v1/push
 
 scrape_configs:
 - job_name: system
diff --git a/configs/etc/nginx/sites-available/proxy 
b/configs/etc/nginx/sites-available/proxy
index 5e96bf2..487418e 100644
--- a/configs/etc/nginx/sites-available/proxy
+++ b/configs/etc/nginx/sites-available/proxy
@@ -4,6 +4,9 @@ server {
 
   server_name localhost;
 
+  allow 172.16.0.0/12;
+  deny all;
+
   location / {
      proxy_pass <EXCHANGE_URL_HERE>;
      proxy_redirect off;
@@ -15,8 +18,7 @@ server {
   location /stub_status {
      stub_status;
      access_log off;
-     allow 127.0.0.1;
-     deny all;
   }
 
 }
+
diff --git a/configs/usr/lib/systemd/system/taler-exchange-httpd@.service 
b/configs/usr/lib/systemd/system/taler-exchange-httpd@.service
new file mode 100755
index 0000000..de5acde
--- /dev/null
+++ b/configs/usr/lib/systemd/system/taler-exchange-httpd@.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=GNU Taler payment system exchange REST API at %I
+AssertPathExists=/run/taler/exchange-httpd
+Requires=taler-exchange-httpd@%I.socket taler-exchange-secmod-rsa.service 
taler-exchange-secmod-eddsa.service
+After=postgres.service network.target taler-exchange-secmod-rsa.service 
taler-exchange-secmod-eddsa.service
+PartOf=taler-exchange.target
+
+[Service]
+User=taler-exchange-httpd
+Type=simple
+Restart=on-failure
+EnvironmentFile=/etc/default/taler-exchange-httpd
+ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf $ARGS
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=no
+PrivateDevices=yes
+ProtectSystem=full
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/configs/usr/lib/systemd/system/taler-exchange-httpd@.socket 
b/configs/usr/lib/systemd/system/taler-exchange-httpd@.socket
new file mode 100755
index 0000000..79e3100
--- /dev/null
+++ b/configs/usr/lib/systemd/system/taler-exchange-httpd@.socket
@@ -0,0 +1,14 @@
+[Unit]
+Description=Taler Exchange Socket at %I
+PartOf=taler-exchange-httpd.service
+
+[Socket]
+ListenStream=%I
+Accept=no
+Service=taler-exchange-httpd.service
+SocketUser=taler-exchange-httpd
+SocketGroup=www-data
+SocketMode=0660
+
+[Install]
+WantedBy=sockets.target
diff --git a/experiment/env b/experiment/env
index a0d4715..85f1b26 100755
--- a/experiment/env
+++ b/experiment/env
@@ -13,14 +13,15 @@ EXCHANGE_DOMAIN=exch.perf.taler
 DATABASE_DOMAIN=db.perf.taler
 BANK_DOMAIN=bank.perf.taler
 
-PROMETHEUS_CNAME=prometheus.perf.taler
-LOKI_CNAME=loki.perf.taler
+PROMETHEUS_DATASOURCE_NAME=Prometheus
+LOKI_DATASOURCE_NAME=Loki
 
-PROMETHEUS_PORT=http8080
-LOKI_PORT=http
+PROMETHEUS_G5K_PROXY_PORT=http8080
+LOKI_G5K_PROXY_PORT=http
 
 DB_NAME=taler-exchange
 DB_USER=taler
 DB_PASSWORD=
 
-DNS_HMAC_SHA256=
+DYNDNS_KEY=
+GRAFANA_API_KEY=
diff --git a/experiment/run.sh b/experiment/run.sh
index b069c45..3e29401 100644
--- a/experiment/run.sh
+++ b/experiment/run.sh
@@ -16,18 +16,6 @@ send
 EOF
 }
 
-# Set a cname record to the external grid5000 proxy
-# argument 1: cname to be added
-# argument 2: grid5000 port, one of http, http8080
-function set_cname() {
-  nsupdate -k /root/ddns.key -v << EOF
-server ${DNS_HOST}
-zone ${DNS_ZONE}
-update add $1 60 CNAME $(hostname | cut -d "." -f 1,2 -).$2.proxy.grid5000.fr
-send
-EOF
-}
-
 case "${HOSTNAME}" in 
   ${BANK_HOSTS}) 
     echo "BANK"
@@ -56,8 +44,6 @@ case "${HOSTNAME}" in
   ${MONITOR_HOSTS})
     echo "MONITOR"
     set_ddn ${MONITOR_DOMAIN}
-    set_cname ${PROMETHEUS_CNAME} ${PROMETHEUS_PORT}
-    set_cname ${LOKI_CNAME} ${LOKI_PORT}
     exec ~/scripts/monitor.sh
     ;;
 esac
diff --git a/experiment/scripts/database.sh b/experiment/scripts/database.sh
index 3fd3a7d..80ebe9d 100755
--- a/experiment/scripts/database.sh
+++ b/experiment/scripts/database.sh
@@ -8,7 +8,10 @@ sed -i "s\<DB_URL_HERE>\postgresql:///${DB_NAME}\g" \
        /etc/taler/secrets/exchange-db.secret.conf
 
 echo "listen_addresses='*'" >> /etc/postgresql/13/main/postgresql.conf
-echo "host all all 172.16.0.0/12 md5" >> /etc/postgresql/13/main/pg_hba.conf
+# Enable password for taler since this is commonly the case
+echo "host all ${DB_USER} 172.16.0.0/12 md5" >> 
/etc/postgresql/13/main/pg_hba.conf
+# For the postgres user do not enable authentication (used in metrics)
+echo "host all postgres 172.16.0.0/12 trust" >> 
/etc/postgresql/13/main/pg_hba.conf
 
 systemctl restart postgresql 
 
diff --git a/experiment/scripts/monitor.sh b/experiment/scripts/monitor.sh
index fedf55e..69e54d8 100755
--- a/experiment/scripts/monitor.sh
+++ b/experiment/scripts/monitor.sh
@@ -1,12 +1,61 @@
 #!/bin/bash
 set -eux
 
-sed -i 
"s\<DB_URL_HERE>\postgresql://${DB_USER}:${DB_PASSWORD}@${DATABASE_DOMAIN}:5432/${DB_NAME}\g"
 \
+AUTH_HEADER="Authorization: Bearer ${GRAFANA_API_KEY}"
+GRAFANA_API="https://$(host ${DNS_HOST} | sed -n 1p | awk '{print 
$4}'):3000/api"
+
+if ! curl -k -f -H "${AUTH_HEADER}" \
+  "${GRAFANA_API}/datasources" \
+  -o ds.json ;
+then 
+  echo "Failed to retrieve datasources from Grafana"
+  exit $?
+fi
+
+function update_datasource() {
+  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" \
+     --arg name "$1" \
+     '.[] | select(.name == $name) | .url = $url' \
+     ds.json | tee /dev/tty | curl -X PUT -k -f -d @- \
+       -H "${AUTH_HEADER}" \
+       -H "Content-Type: application/json" \
+       -H "Accept: application/json" \
+        "${GRAFANA_API}/datasources/${ID}"
+}
+
+update_ds "${PROMETHEUS_DATASOURCE_NAME}" "${PROMETHEUS_G5K_PROXY_PORT}"
+update_ds "${LOKI_DATASOURCE_NAME}" "${LOKI_G5K_PROXY_PORT}"
+
+sed -i "s\<DB_URL_HERE>\postgresql://postgres@${DATABASE_DOMAIN}:5432\g" \
        /etc/default/prometheus-postgres-exporter
 
 sed -i "s\<PROXY_URL_HERE>\http://${PROXY_DOMAIN}/stub_status\g"; \
        /etc/default/prometheus-nginx-exporter
 
+until PGPASSWORD="${DB_PASSWORD}" psql \
+      -h "${DATABASE_DOMAIN}" \
+      -U "${DB_USER}" \
+      -d "${DB_NAME}" \
+      -c '\q';
+do
+  echo "Database not ready yet"
+  sleep 1
+done
+
+# Proxy takes longer to start
+
+until wget http://${PROXY_DOMAIN}/keys \
+      --spider \
+      --timeout=5 \
+      --tries=1 \
+      --quiet;
+do
+  echo "Exchange not ready yet"
+  sleep 1
+done
+
 systemctl restart prometheus \
                  loki \
                  prometheus-postgres-exporter \
diff --git a/experiment/scripts/proxy.sh b/experiment/scripts/proxy.sh
index e08747e..ad36d2c 100755
--- a/experiment/scripts/proxy.sh
+++ b/experiment/scripts/proxy.sh
@@ -6,7 +6,7 @@ sed "s\<EXCHANGE_URL_HERE>\http://${EXCHANGE_DOMAIN}\g"; \
 
 # Nginx does not start until the destination server is reachable - wait here 
 # nginx: [emerg] host not found in upstream "exch.perf.taler" ...
-until wget http://${EXCHANGE_DOMAIN}/management/keys \
+until wget http://${EXCHANGE_DOMAIN}/keys \
        --spider \
        -q;
 do
diff --git a/experiment/setup.sh b/experiment/setup.sh
index 4e353c1..3814b35 100644
--- a/experiment/setup.sh
+++ b/experiment/setup.sh
@@ -22,7 +22,7 @@ cp -r "${G5K_HOME}"/configs/* /
 cat << EOF > /root/ddns.key 
 key "ddns-key.perf.taler" {
   algorithm hmac-sha256;
-  secret "${DNS_HMAC_SHA256}";
+  secret "${DYNDNS_KEY}";
 };
 EOF
 
diff --git a/experiment/taler-perf.rspec b/experiment/taler-perf.rspec
index 31f59b9..d00fa75 100644
--- a/experiment/taler-perf.rspec
+++ b/experiment/taler-perf.rspec
@@ -1,11 +1,11 @@
 <?xml version='1.0'?>
-<rspec xmlns="http://www.geni.net/resources/rspec/3"; type="request" 
generated_by="jFed RSpec Editor" generated="2021-10-11T21:41:58.863+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="2021-10-13T16:35:44.259+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.lyon.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
     </sliver_type>
-    <hardware_type name="grisou-nancy"/>
-    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="514.0" 
y="84.5"/>
+    <hardware_type name="gros-nancy"/>
+    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="522.0" 
y="87.5"/>
   </node>
   <node client_id="Exchange" exclusive="true" 
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
     <sliver_type name="raw-pc">
@@ -33,7 +33,7 @@
       <disk_image 
name="http://public.lyon.grid5000.fr/~bfhch01/taler-debian11.dsc"/>
     </sliver_type>
     <hardware_type name="grappe-nancy"/>
-    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="603.5" 
y="226.5"/>
+    <location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1"; x="603.5" 
y="228.5"/>
   </node>
   <node client_id="Monitor" exclusive="true" 
component_manager_id="urn:publicid:IDN+am.grid5000.fr+authority+am">
     <sliver_type name="raw-pc">
diff --git a/image/taler-debian11.yaml b/image/taler-debian11.yaml
index 0bb9087..534464c 100644
--- a/image/taler-debian11.yaml
+++ b/image/taler-debian11.yaml
@@ -38,7 +38,7 @@ global:
   # g5k_kernel_params: ""
   ## Environment visibility
   # g5k_visibility: "shared"
-  taler_packages: "nginx postgresql-13 taler-exchange taler-auditor 
taler-merchant taler-exchange-offline taler-wallet-cli sudo git zile dnsutils 
libtalerexchange-dev prometheus-postgres-exporter prometheus-nginx-exporter"
+  taler_packages: "nginx postgresql-13 postgresql-contrib curl jq 
taler-exchange taler-auditor taler-merchant taler-exchange-offline 
taler-wallet-cli sudo git zile dnsutils libtalerexchange-dev 
prometheus-postgres-exporter prometheus-nginx-exporter"
   taler_packages_no_recommends: "prometheus"
   other_packages_no_clean: "$${taler_packages} 
$${taler_packages_no_recommends}" 
   taler_disable_services: "nginx postgresql prometheus 
prometheus-postgres-exporter prometheus-nginx-exporter"

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



reply via email to

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