rPackages.unigd: fix build on darwin (#379402)
[NixPkgs.git] / nixos / tests / victoriametrics / external-promscrape-config.nix
blob3173223b79bdafc6a031dd84fecec55fd38465cc
1 import ../make-test-python.nix (
2   {
3     lib,
4     pkgs,
5     ...
6   }:
7   let
8     nodeExporterPort = 9100;
9     promscrapeConfig = {
10       global = {
11         scrape_interval = "2s";
12       };
13       scrape_configs = [
14         {
15           job_name = "node";
16           static_configs = [
17             {
18               targets = [
19                 "node:${toString nodeExporterPort}"
20               ];
21             }
22           ];
23         }
24       ];
25     };
26     settingsFormat = pkgs.formats.yaml { };
27     promscrapeConfigYaml = settingsFormat.generate "prometheusConfig.yaml" promscrapeConfig;
28   in
29   {
30     name = "victoriametrics-external-promscrape-config";
31     meta = with pkgs.lib.maintainers; {
32       maintainers = [
33         ryan4yin
34       ];
35     };
37     nodes = {
38       victoriametrics =
39         {
40           config,
41           pkgs,
42           ...
43         }:
44         {
45           environment.systemPackages = [ pkgs.jq ];
46           networking.firewall.allowedTCPPorts = [ 8428 ];
47           services.victoriametrics = {
48             enable = true;
49             extraOptions = [
50               "-promscrape.config=${toString promscrapeConfigYaml}"
51             ];
52           };
53         };
55       node =
56         { ... }:
57         {
58           services.prometheus.exporters.node = {
59             enable = true;
60             openFirewall = true;
61           };
62         };
63     };
65     testScript = ''
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\"'"
79       )
80     '';
81   }