summaryrefslogtreecommitdiffstats
path: root/nixos/tests
diff options
context:
space:
mode:
authorMaximilian Güntner <code@mguentner.de>2020-12-13 18:26:13 +0100
committerMaximilian <code@klandest.in>2020-12-21 21:23:39 +0100
commit65fd0312778cc86f0db9c4c87edcd5b06aacee7f (patch)
tree8624a665498da462fe0136c3efce2eb263bf1a09 /nixos/tests
parentce7608d6e7cac1b6c616b9ef0dc7c4c838ff547b (diff)
nixos: add prometheus_nginxlog_exporter module + test
Diffstat (limited to 'nixos/tests')
-rw-r--r--nixos/tests/prometheus-exporters.nix61
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;