[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.
- [taler-grid5k] 08/141: make pq accesible, (continued)
- [taler-grid5k] 08/141: make pq accesible, gnunet, 2021/11/18
- [taler-grid5k] 11/141: fix exch script, gnunet, 2021/11/18
- [taler-grid5k] 09/141: fix overwriting, gnunet, 2021/11/18
- [taler-grid5k] 01/141: add new version of image, gnunet, 2021/11/18
- [taler-grid5k] 02/141: rename jobs, gnunet, 2021/11/18
- [taler-grid5k] 07/141: update db script, gnunet, 2021/11/18
- [taler-grid5k] 10/141: update bank config, add dns and bank scripts, gnunet, 2021/11/18
- [taler-grid5k] 04/141: add dummy scripts and some etc files, gnunet, 2021/11/18
- [taler-grid5k] 58/141: update wallet script, gnunet, 2021/11/18
- [taler-grid5k] 05/141: update init scripts, gnunet, 2021/11/18
- [taler-grid5k] 43/141: dynamically update grafana datasources,
gnunet <=
- [taler-grid5k] 68/141: update clearing of dns, gnunet, 2021/11/18
- [taler-grid5k] 44/141: fix function name, gnunet, 2021/11/18
- [taler-grid5k] 52/141: fix dns entries for wallets, gnunet, 2021/11/18
- [taler-grid5k] 49/141: add node exporter, gnunet, 2021/11/18
- [taler-grid5k] 50/141: add node-exporters, gnunet, 2021/11/18
- [taler-grid5k] 21/141: remove default pg port, gnunet, 2021/11/18
- [taler-grid5k] 25/141: remove resolv.conf, gnunet, 2021/11/18
- [taler-grid5k] 16/141: add var for bind, gnunet, 2021/11/18
- [taler-grid5k] 30/141: add script order, gnunet, 2021/11/18
- [taler-grid5k] 70/141: update wallet logs, gnunet, 2021/11/18