at 18.09-beta 1.5 kB view raw
1import ./make-test.nix ({ pkgs, lib, ... }: 2 3with lib; 4 5{ 6 name = "statsd"; 7 meta = with pkgs.stdenv.lib.maintainers; { 8 maintainers = [ ma27 ]; 9 }; 10 11 machine = { 12 services.statsd.enable = true; 13 services.statsd.backends = [ "statsd-influxdb-backend" "console" ]; 14 services.statsd.extraConfig = '' 15 influxdb: { 16 username: "root", 17 password: "root", 18 database: "statsd" 19 } 20 ''; 21 22 services.influxdb.enable = true; 23 24 systemd.services.influx-init = { 25 description = "Setup Influx Test Base"; 26 after = [ "influxdb.service" ]; 27 before = [ "statsd.service" ]; 28 29 script = '' 30 echo "CREATE DATABASE statsd" | ${pkgs.influxdb}/bin/influx 31 ''; 32 }; 33 }; 34 35 testScript = '' 36 $machine->start(); 37 $machine->waitForUnit("statsd.service"); 38 $machine->waitForOpenPort(8126); 39 40 # check state of the `statsd` server 41 $machine->succeed('[ "health: up" = "$(echo health | nc 127.0.0.1 8126 -w 120 -N)" ];'); 42 43 # confirm basic examples for metrics derived from docs: 44 # https://github.com/etsy/statsd/blob/v0.8.0/README.md#usage and 45 # https://github.com/etsy/statsd/blob/v0.8.0/docs/admin_interface.md 46 $machine->succeed("echo 'foo:1|c' | nc -u -w 0 127.0.0.1 8125"); 47 $machine->succeed("echo counters | nc -w 120 127.0.0.1 8126 -N | grep foo"); 48 $machine->succeed("echo 'delcounters foo' | nc -w 120 127.0.0.1 8126 -N"); 49 $machine->fail("echo counters | nc -w 120 127.0.0.1 8126 -N | grep foo"); 50 ''; 51})