diff options
author | Maximilian Güntner <code@mguentner.de> | 2020-12-13 18:26:13 +0100 |
---|---|---|
committer | Maximilian <code@klandest.in> | 2020-12-21 21:23:39 +0100 |
commit | 65fd0312778cc86f0db9c4c87edcd5b06aacee7f (patch) | |
tree | 8624a665498da462fe0136c3efce2eb263bf1a09 /nixos/tests | |
parent | ce7608d6e7cac1b6c616b9ef0dc7c4c838ff547b (diff) |
nixos: add prometheus_nginxlog_exporter module + test
Diffstat (limited to 'nixos/tests')
-rw-r--r-- | nixos/tests/prometheus-exporters.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix index 3eb4341e39cb..ffa7f420c093 100644 --- a/nixos/tests/prometheus-exporters.nix +++ b/nixos/tests/prometheus-exporters.nix @@ -444,6 +444,67 @@ let ''; }; + nginxlog = { + exporterConfig = { + enable = true; + group = "nginx"; + settings = { + namespaces = [ + { + name = "filelogger"; + source = { + files = [ "/var/log/nginx/filelogger.access.log" ]; + }; + } + { + name = "syslogger"; + source = { + syslog = { + listen_address = "udp://127.0.0.1:10000"; + format = "rfc3164"; + tags = ["nginx"]; + }; + }; + } + ]; + }; + }; + metricProvider = { + services.nginx = { + enable = true; + httpConfig = '' + server { + listen 80; + server_name filelogger.local; + access_log /var/log/nginx/filelogger.access.log; + } + server { + listen 81; + server_name syslogger.local; + access_log syslog:server=127.0.0.1:10000,tag=nginx,severity=info; + } + ''; + }; + }; + exporterTest = '' + wait_for_unit("nginx.service") + wait_for_unit("prometheus-nginxlog-exporter.service") + wait_for_open_port(9117) + wait_for_open_port(80) + wait_for_open_port(81) + succeed("curl http://localhost") + execute("sleep 1") + succeed( + "curl -sSf http://localhost:9117/metrics | grep 'filelogger_http_response_count_total' | grep -q 1" + ) + succeed("curl http://localhost:81") + execute("sleep 1") + succeed( + "curl -sSf http://localhost:9117/metrics | grep 'syslogger_http_response_count_total' | grep -q 1" + ) + ''; + }; + node = { exporterConfig = { enable = true; |