nixpkgs/nixos/tests/graphite.nix
Alyssa Ross ada1d87767
python3.pkgs.graphite_beacon: remove
Due to lack of maintenance.  It is not compatible with the default
Python version (due to the tornado 5) dependency, and doesn't look
like it will be any time soon.
2022-07-10 09:17:23 +00:00

47 lines
1.5 KiB
Nix

import ./make-test-python.nix ({ pkgs, ... } :
{
name = "graphite";
nodes = {
one =
{ ... }: {
time.timeZone = "UTC";
services.graphite = {
web = {
enable = true;
extraConfig = ''
SECRET_KEY = "abcd";
'';
};
api = {
enable = true;
port = 8082;
finders = [ ];
};
carbon.enableCache = true;
seyren.enable = false; # Implicitely requires openssl-1.0.2u which is marked insecure
};
};
};
testScript = ''
start_all()
one.wait_for_unit("default.target")
one.wait_for_unit("graphiteWeb.service")
one.wait_for_unit("graphiteApi.service")
one.wait_for_unit("carbonCache.service")
# The services above are of type "simple". systemd considers them active immediately
# even if they're still in preStart (which takes quite long for graphiteWeb).
# Wait for ports to open so we're sure the services are up and listening.
one.wait_for_open_port(8080)
one.wait_for_open_port(8082)
one.wait_for_open_port(2003)
one.succeed('echo "foo 1 `date +%s`" | nc -N localhost 2003')
one.wait_until_succeeds(
"curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2"
)
one.wait_until_succeeds(
"curl 'http://localhost:8082/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2"
)
'';
})