summary refs log tree commit diff
path: root/pkgs/servers/monitoring/prometheus/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/monitoring/prometheus/default.nix')
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix56
1 files changed, 56 insertions, 0 deletions
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
new file mode 100644
index 00000000000..6e181c6ec9e
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, lib, goPackages, fetchFromGitHub, protobuf, vim }:
+
+with goPackages;
+
+buildGoPackage rec {
+   name = "prometheus-${version}";
+   version = "0.12.0";
+   goPackagePath = "github.com/prometheus/prometheus";
+   rev = "55dcb55498b43bafe94915a4de7907d6d66b4427";
+
+   src = fetchFromGitHub {
+     inherit rev;
+     owner = "prometheus";
+     repo = "prometheus";
+     sha256 = "17bbdk9axr91m2947ddbnzqwaap2vrzsbknbrlpdsmlsjhc8h7cb";
+   };
+
+   buildInputs = [
+     dns glog goleveldb prometheus.client_golang
+     goPackages.protobuf
+     protobuf  # the non-golang package, for protoc
+     vim  # for xxd, used in embed-static.sh
+   ];
+
+   # Metadata that gets embedded into the binary
+   buildFlagsArray = ''
+     -ldflags=
+         -X main.buildVersion ${version}
+         -X main.buildRevision ${builtins.substring 0 6 rev}
+         -X main.buildBranch master
+         -X main.buildUser nix@nixpkgs
+         -X main.buildDate 20150101-00:00:00
+         -X main.goVersion ${lib.getVersion go}
+   '';
+
+   preBuild = ''
+   (
+     cd "go/src/$goPackagePath"
+     protoc --proto_path=./config \
+            --go_out=./config/generated/ \
+            ./config/config.proto
+
+     cd web
+     ${stdenv.shell} ../utility/embed-static.sh static templates \
+       | gofmt > blob/files.go
+   )
+   '';
+
+   meta = with lib; {
+     description = "Service monitoring system and time series database";
+     homepage = http://prometheus.github.io;
+     license = licenses.asl20;
+     maintainers = with maintainers; [ benley ];
+     platforms = platforms.unix;
+   };
+}