about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/servers/monitoring/prometheus/mail-exporter.nix30
-rw-r--r--pkgs/servers/monitoring/prometheus/mail-exporter_deps.nix92
-rw-r--r--pkgs/top-level/all-packages.nix1
3 files changed, 123 insertions, 0 deletions
diff --git a/pkgs/servers/monitoring/prometheus/mail-exporter.nix b/pkgs/servers/monitoring/prometheus/mail-exporter.nix
new file mode 100644
index 000000000000..129c2b333723
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/mail-exporter.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "mailexporter-${version}";
+  version = "2019-07-14";
+
+  goPackagePath = "github.com/cherti/mailexporter";
+
+  src = fetchFromGitHub {
+    rev = "c60d1970abbedb15e70d6fc858f7fd76fa061ffe";
+    owner = "cherti";
+    repo = "mailexporter";
+    sha256 = "0wlw7jvmhgvg1r2bsifxm2d0vj0iqhplnx6n446625sslvddx3vn";
+  };
+
+  goDeps = ./mail-exporter_deps.nix;
+
+  postInstall = ''
+    install -D -m 0444 -t $bin/share/man/man1 $src/man/mailexporter.1
+    install -D -m 0444 -t $bin/share/man/man5 $src/man/mailexporter.conf.5
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Export Prometheus-style metrics about mail server functionality";
+    homepage = "https://github.com/cherti/mailexporter";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ willibutz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/mail-exporter_deps.nix b/pkgs/servers/monitoring/prometheus/mail-exporter_deps.nix
new file mode 100644
index 000000000000..221f179940bc
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/mail-exporter_deps.nix
@@ -0,0 +1,92 @@
+[
+  {
+    goPackagePath = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev = "4b2b341e8d7715fae06375aa633dbb6e91b3fb46";
+      sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "6c65a5562fc06764971b7c5d05c76c75e84bdbf7";
+      sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
+    };
+  }
+  {
+    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev = "c182affec369e30f25d3eb8cd8a478dee585ae7d";
+      sha256 = "1xqsf9vpcrd4hp95rl6kgmjvkv1df4aicfw4l5vfcxcwxknfx2xs";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/client_golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_golang";
+      rev = "a6c69798cccecfd43070693e4416838767f73e18";
+      sha256 = "0s6xprvkdyfvmx4540454972fn3gvrzy7fyv0yq42h32nw3l7p75";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev = "fd36f4220a901265f90734c3183c5f0c91daa0b8";
+      sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev = "31bed53e4047fd6c510e43a941f90cb31be0972a";
+      sha256 = "1q16br348117ffycxdwsldb0i39p34miclfa8z93k6vjwnrqbh2l";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev = "8f55e607908ea781ad9d08521730d73e047d9ac4";
+      sha256 = "023581b68mz89yhgnk4w08ch05ix60v0hv9jlqz65w43s4j7g4vb";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "04f50cda93cbb67f2afa353c52f342100e80e625";
+      sha256 = "0hmfsz9y1ingwsn482hlzzmzs7kr3cklm0ana0mbdk70isw2bxnw";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/fsnotify.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/fsnotify.v1";
+      rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
+      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
+      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+    };
+  }
+]
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f91d7e8fbb85..3bd0d2144320 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14787,6 +14787,7 @@ in
   prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { };
   prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { };
   prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { };
+  prometheus-mail-exporter = callPackage ../servers/monitoring/prometheus/mail-exporter.nix { };
   prometheus-mesos-exporter = callPackage ../servers/monitoring/prometheus/mesos-exporter.nix { };
   prometheus-minio-exporter = callPackage ../servers/monitoring/prometheus/minio-exporter { };
   prometheus-mysqld-exporter = callPackage ../servers/monitoring/prometheus/mysqld-exporter.nix { };