at master 1.5 kB view raw
1{ pkgs, ... }: 2{ 3 name = "mimir"; 4 nodes = { 5 server = 6 { ... }: 7 { 8 environment.systemPackages = [ pkgs.jq ]; 9 services.mimir.enable = true; 10 services.mimir.configuration = { 11 ingester.ring.replication_factor = 1; 12 }; 13 14 services.telegraf.enable = true; 15 services.telegraf.extraConfig = { 16 agent.interval = "1s"; 17 agent.flush_interval = "1s"; 18 inputs.exec = { 19 commands = [ 20 "${pkgs.coreutils}/bin/echo 'foo i=42i'" 21 ]; 22 data_format = "influx"; 23 }; 24 outputs = { 25 http = { 26 # test remote write 27 url = "http://localhost:8080/api/v1/push"; 28 29 # Data format to output. 30 data_format = "prometheusremotewrite"; 31 32 headers = { 33 Content-Type = "application/x-protobuf"; 34 Content-Encoding = "snappy"; 35 X-Scope-OrgID = "nixos"; 36 X-Prometheus-Remote-Write-Version = "0.1.0"; 37 }; 38 }; 39 }; 40 }; 41 }; 42 }; 43 44 testScript = '' 45 start_all() 46 server.wait_for_unit("mimir.service") 47 server.wait_for_unit("telegraf.service") 48 server.wait_for_open_port(8080) 49 server.wait_until_succeeds( 50 "curl -H 'X-Scope-OrgID: nixos' http://127.0.0.1:8080/prometheus/api/v1/label/host/values | jq -r '.data[0]' | grep server" 51 ) 52 ''; 53}