at master 1.1 kB view raw
1{ pkgs, ... }: 2{ 3 name = "telegraf"; 4 meta = with pkgs.lib.maintainers; { 5 maintainers = [ mic92 ]; 6 }; 7 8 nodes.machine = 9 { ... }: 10 { 11 services.telegraf.enable = true; 12 services.telegraf.environmentFiles = [ 13 (pkgs.writeText "secrets" '' 14 SECRET=example 15 '') 16 ]; 17 services.telegraf.extraConfig = { 18 agent.interval = "1s"; 19 agent.flush_interval = "1s"; 20 inputs.exec = { 21 commands = [ 22 "${pkgs.runtimeShell} -c 'echo $SECRET,tag=a i=42i'" 23 ]; 24 timeout = "5s"; 25 data_format = "influx"; 26 }; 27 inputs.ping = { 28 urls = [ "127.0.0.1" ]; 29 count = 4; 30 interval = "10s"; 31 timeout = 1.0; 32 }; 33 outputs.file.files = [ "/tmp/metrics.out" ]; 34 outputs.file.data_format = "influx"; 35 }; 36 }; 37 38 testScript = '' 39 start_all() 40 41 machine.wait_for_unit("telegraf.service") 42 machine.wait_until_succeeds("grep -q example /tmp/metrics.out") 43 machine.wait_until_succeeds("grep -q ping /tmp/metrics.out") 44 ''; 45}