cadvisor test: fix (#18671)

* influxdb module: add postStart

* cadvisor module: increase TimeoutStartSec

Under high load, the cadvisor module can take longer than the default 90
seconds to start. This change should hopefully fix the test on Hydra.

Changed files
+10 -10
nixos
modules
services
databases
monitoring
tests
+9 -4
nixos/modules/services/databases/influxdb.nix
···
enabled = false;
}];
-
collectd = {
enabled = false;
typesdb = "${pkgs.collectd}/share/collectd/types.db";
database = "collectd_db";
port = 25826;
-
};
-
opentsdb = {
enabled = false;
-
};
continuous_queries = {
enabled = true;
···
preStart = ''
mkdir -m 0770 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}; fi
'';
};
···
enabled = false;
}];
+
collectd = [{
enabled = false;
typesdb = "${pkgs.collectd}/share/collectd/types.db";
database = "collectd_db";
port = 25826;
+
}];
+
opentsdb = [{
enabled = false;
+
}];
continuous_queries = {
enabled = true;
···
preStart = ''
mkdir -m 0770 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}; fi
+
'';
+
postStart = mkBefore ''
+
until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://127.0.0.1${toString configOptions.http.bind-address}'/ping; do
+
sleep 1;
+
done
'';
};
+1
nixos/modules/services/monitoring/cadvisor.nix
···
${optionalString cfg.storageDriverSecure "-storage_driver_secure"}
''}
'';
};
};
···
${optionalString cfg.storageDriverSecure "-storage_driver_secure"}
''}
'';
+
TimeoutStartSec=300;
};
};
-3
nixos/tests/cadvisor.nix
···
$influxdb->waitForUnit("influxdb.service");
-
# Wait until influxdb admin interface is available
-
$influxdb->waitUntilSucceeds("curl -f 127.0.0.1:8083");
-
# create influxdb database
$influxdb->succeed(q~
curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE root"
···
$influxdb->waitForUnit("influxdb.service");
# create influxdb database
$influxdb->succeed(q~
curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE root"
-3
nixos/tests/influxdb.nix
···
$one->waitForUnit("influxdb.service");
-
# Check if admin interface is avalible
-
$one->waitUntilSucceeds("curl -f 127.0.0.1:8083");
-
# create database
$one->succeed(q~
curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE test"
···
$one->waitForUnit("influxdb.service");
# create database
$one->succeed(q~
curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE test"