2015-06-08 06:36:56 +00:00
|
|
|
import ./make-test.nix {
|
|
|
|
name = "prometheus";
|
|
|
|
|
|
|
|
nodes = {
|
2018-07-20 20:56:59 +00:00
|
|
|
one = { ... }: {
|
2015-06-08 06:36:56 +00:00
|
|
|
services.prometheus = {
|
|
|
|
enable = true;
|
|
|
|
scrapeConfigs = [{
|
|
|
|
job_name = "prometheus";
|
2016-12-20 22:17:46 +00:00
|
|
|
static_configs = [{
|
2015-06-08 06:36:56 +00:00
|
|
|
targets = [ "127.0.0.1:9090" ];
|
|
|
|
labels = { instance = "localhost"; };
|
|
|
|
}];
|
|
|
|
}];
|
|
|
|
rules = [ ''testrule = count(up{job="prometheus"})'' ];
|
2018-11-04 18:27:43 +00:00
|
|
|
|
|
|
|
# a very simple version of the alertmanager configuration just to see if
|
|
|
|
# configuration checks & service startup are working
|
|
|
|
alertmanager = {
|
|
|
|
enable = true;
|
|
|
|
listenAddress = "[::1]";
|
|
|
|
port = 9093;
|
|
|
|
configuration = {
|
|
|
|
route.receiver = "webhook";
|
|
|
|
receivers = [
|
|
|
|
{
|
|
|
|
name = "webhook";
|
|
|
|
webhook_configs = [
|
|
|
|
{ url = "http://localhost"; }
|
|
|
|
];
|
|
|
|
}
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
2015-06-08 06:36:56 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
testScript = ''
|
|
|
|
startAll;
|
|
|
|
$one->waitForUnit("prometheus.service");
|
|
|
|
$one->waitForOpenPort(9090);
|
|
|
|
$one->succeed("curl -s http://127.0.0.1:9090/metrics");
|
2018-11-04 18:27:43 +00:00
|
|
|
$one->waitForUnit("alertmanager.service");
|
|
|
|
$one->waitForOpenPort("9093");
|
|
|
|
$one->succeed("curl -f -s http://localhost:9093/");
|
2015-06-08 06:36:56 +00:00
|
|
|
'';
|
|
|
|
}
|