ghostty: init at 1.0.0 (#368404)
[NixPkgs.git] / nixos / tests / vector / file-sink.nix
blob999e8d58443c39bcfddc18e4aeed2d42e5d9768d
1 import ../make-test-python.nix (
2   { lib, pkgs, ... }:
4   {
5     name = "vector-test1";
6     meta.maintainers = [ pkgs.lib.maintainers.happysalada ];
8     nodes.machine =
9       { config, pkgs, ... }:
10       {
11         services.vector = {
12           enable = true;
13           journaldAccess = true;
14           settings = {
15             sources = {
16               journald.type = "journald";
18               vector_metrics.type = "internal_metrics";
20               vector_logs.type = "internal_logs";
21             };
23             sinks = {
24               file = {
25                 type = "file";
26                 inputs = [
27                   "journald"
28                   "vector_logs"
29                 ];
30                 path = "/var/lib/vector/logs.log";
31                 encoding = {
32                   codec = "json";
33                 };
34               };
36               prometheus_exporter = {
37                 type = "prometheus_exporter";
38                 inputs = [ "vector_metrics" ];
39                 address = "[::]:9598";
40               };
41             };
42           };
43         };
44       };
46     # ensure vector is forwarding the messages appropriately
47     testScript = ''
48       machine.wait_for_unit("vector.service")
49       machine.wait_for_open_port(9598)
50       machine.wait_until_succeeds("journalctl -o cat -u vector.service | grep 'version=\"${pkgs.vector.version}\"'")
51       machine.wait_until_succeeds("journalctl -o cat -u vector.service | grep 'API is disabled'")
52       machine.wait_until_succeeds("curl -sSf http://localhost:9598/metrics | grep vector_build_info")
53       machine.wait_until_succeeds("curl -sSf http://localhost:9598/metrics | grep vector_component_received_bytes_total | grep journald")
54       machine.wait_until_succeeds("curl -sSf http://localhost:9598/metrics | grep vector_utilization | grep prometheus_exporter")
55       machine.wait_for_file("/var/lib/vector/logs.log")
56     '';
57   }