at 18.09-beta 1.4 kB view raw
1import ./make-test.nix ({ pkgs, ... } : 2{ 3 name = "graphite"; 4 nodes = { 5 one = 6 { ... }: { 7 virtualisation.memorySize = 1024; 8 time.timeZone = "UTC"; 9 services.graphite = { 10 web.enable = true; 11 api = { 12 enable = true; 13 port = 8082; 14 finders = [ pkgs.python27Packages.influxgraph ]; 15 }; 16 carbon.enableCache = true; 17 seyren.enable = true; 18 pager.enable = true; 19 beacon.enable = true; 20 }; 21 }; 22 }; 23 24 testScript = '' 25 startAll; 26 $one->waitForUnit("default.target"); 27 $one->waitForUnit("graphiteWeb.service"); 28 $one->waitForUnit("graphiteApi.service"); 29 $one->waitForUnit("graphitePager.service"); 30 $one->waitForUnit("graphite-beacon.service"); 31 $one->waitForUnit("carbonCache.service"); 32 $one->waitForUnit("seyren.service"); 33 # The services above are of type "simple". systemd considers them active immediately 34 # even if they're still in preStart (which takes quite long for graphiteWeb). 35 # Wait for ports to open so we're sure the services are up and listening. 36 $one->waitForOpenPort(8080); 37 $one->waitForOpenPort(2003); 38 $one->succeed("echo \"foo 1 `date +%s`\" | nc -N localhost 2003"); 39 $one->waitUntilSucceeds("curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2"); 40 ''; 41})