1 import ../make-test-python.nix (
8 nodeExporterPort = 9100;
11 scrape_interval = "2s";
19 "node:${toString nodeExporterPort}"
26 settingsFormat = pkgs.formats.yaml { };
27 promscrapeConfigYaml = settingsFormat.generate "prometheusConfig.yaml" promscrapeConfig;
30 name = "victoriametrics-external-promscrape-config";
31 meta = with pkgs.lib.maintainers; {
45 environment.systemPackages = [ pkgs.jq ];
46 networking.firewall.allowedTCPPorts = [ 8428 ];
47 services.victoriametrics = {
50 "-promscrape.config=${toString promscrapeConfigYaml}"
58 services.prometheus.exporters.node = {
66 node.wait_for_unit("prometheus-node-exporter")
67 node.wait_for_open_port(${toString nodeExporterPort})
69 victoriametrics.wait_for_unit("victoriametrics")
70 victoriametrics.wait_for_open_port(8428)
73 promscrape_config = victoriametrics.succeed("journalctl -u victoriametrics -o cat | grep 'promscrape.config'")
74 assert '${toString promscrapeConfigYaml}' in promscrape_config
76 victoriametrics.wait_until_succeeds(
77 "curl -sf 'http://localhost:8428/api/v1/query?query=node_exporter_build_info\{instance=\"node:9100\"\}' | "
78 + "jq '.data.result[0].value[1]' | grep '\"1\"'"