import ./make-test-python.nix ({ pkgs, ... }: {
  name = "mimir";
  nodes = {
    server = { ... }: {
      environment.systemPackages = [ pkgs.jq ];
      services.mimir.enable = true;
      services.mimir.configuration = {
        ingester.ring.replication_factor = 1;
      };

      services.telegraf.enable = true;
      services.telegraf.extraConfig = {
        agent.interval = "1s";
        agent.flush_interval = "1s";
        inputs.exec = {
          commands = [
            "${pkgs.coreutils}/bin/echo 'foo i=42i'"
          ];
          data_format = "influx";
        };
        outputs = {
          http = {
            # test remote write
            url = "http://localhost:8080/api/v1/push";

            # Data format to output.
            data_format = "prometheusremotewrite";

            headers = {
              Content-Type = "application/x-protobuf";
              Content-Encoding = "snappy";
              X-Scope-OrgID = "nixos";
              X-Prometheus-Remote-Write-Version = "0.1.0";
            };
          };
        };
      };
    };
  };

  testScript = ''
    start_all()
    server.wait_for_unit("mimir.service")
    server.wait_for_unit("telegraf.service")
    server.wait_for_open_port(8080)
    server.wait_until_succeeds(
        "curl -H 'X-Scope-OrgID: nixos' http://127.0.0.1:8080/prometheus/api/v1/label/host/values | jq -r '.data[0]' | grep server"
    )
  '';
})
