From 9c1f0b33a3dd4e7d374c9cfcdf0b6c67efd0a09d Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Tue, 17 Feb 2015 14:28:56 -0800 Subject: New package: Prometheus monitoring system --- pkgs/servers/monitoring/prometheus/default.nix | 56 ++++++++++++ pkgs/top-level/all-packages.nix | 2 + pkgs/top-level/go-packages.nix | 118 +++++++++++++++++++++++++ 3 files changed, 176 insertions(+) create mode 100644 pkgs/servers/monitoring/prometheus/default.nix diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix new file mode 100644 index 000000000000..4c05a859f017 --- /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.10.0"; + goPackagePath = "github.com/prometheus/prometheus"; + rev = "f5a0f7fa185dae2c772a5847a7aac9ba33b545f9"; + + src = fetchFromGitHub { + inherit rev; + owner = "prometheus"; + repo = "prometheus"; + sha256 = "1wagmr4bca8fbvi48n9p4hdnx1m4chyaa1bzman6dhqfmkiikf5q"; + }; + + 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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bf0f408b73f1..19d4131a773f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8382,6 +8382,8 @@ let postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { }; + prometheus = callPackage ../servers/monitoring/prometheus { }; + psqlodbc = callPackage ../servers/sql/postgresql/psqlodbc { }; pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) { diff --git a/pkgs/top-level/go-packages.nix b/pkgs/top-level/go-packages.nix index 890239f35a69..e07cebdae1e5 100644 --- a/pkgs/top-level/go-packages.nix +++ b/pkgs/top-level/go-packages.nix @@ -21,6 +21,18 @@ let self = _self // overrides; _self = with self; { }; }; + glog = buildGoPackage rec { + rev = "44145f04b68cf362d9c4df2182967c2275eaefed"; + name = "glog-${rev}"; + goPackagePath = "github.com/golang/glog"; + src = fetchFromGitHub { + inherit rev; + owner = "golang"; + repo = "glog"; + sha256 = "1k7sf6qmpgm0iw81gx2dwggf9di6lgw0n54mni7862hihwfrb5rq"; + }; + }; + image = buildGoPackage rec { rev = "490b1ad139b3"; name = "go.image-${rev}"; @@ -215,6 +227,19 @@ let self = _self // overrides; _self = with self; { }; }; + ginkgo = buildGoPackage rec { + rev = "5ed93e443a4b7dfe9f5e95ca87e6082e503021d2"; + name = "ginkgo-${stdenv.lib.strings.substring 0 7 rev}"; + goPackagePath = "github.com/onsi/ginkgo"; + src = fetchFromGitHub { + inherit rev; + owner = "onsi"; + repo = "ginkgo"; + sha256 = "0ghrx5qmgvgb8cbvsj53v1ir4j9agilg4wyhpk5ikqdv6mmqly4h"; + }; + subPackages = [ "./" ]; # don't try to build test fixtures + }; + goamz = buildGoPackage rec { rev = "2a8fed5e89ab9e16210fc337d1aac780e8c7bbb7"; name = "goamz-${rev}"; @@ -267,6 +292,56 @@ let self = _self // overrides; _self = with self; { }; }; + golang_protobuf_extensions = buildGoPackage rec { + rev = "ba7d65ac66e9da93a714ca18f6d1bc7a0c09100c"; + name = "golang-protobuf-extensions-${stdenv.lib.strings.substring 0 7 rev}"; + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + src = fetchFromGitHub { + inherit rev; + owner = "matttproud"; + repo = "golang_protobuf_extensions"; + sha256 = "1vz6zj94v90x8mv9h6qfp1211kmzn60ri5qh7p9fzpjkhga5k936"; + }; + buildInputs = [ protobuf ]; + }; + + goleveldb = buildGoPackage rec { + rev = "e9e2c8f6d3b9c313fb4acaac5ab06285bcf30b04"; + name = "goleveldb-${stdenv.lib.strings.substring 0 7 rev}"; + goPackagePath = "github.com/syndtr/goleveldb"; + src = fetchFromGitHub { + inherit rev; + owner = "syndtr"; + repo = "goleveldb"; + sha256 = "0vg3pcrbdhbmanwkc5njxagi64f4k2ikfm173allcghxcjamrkwv"; + }; + propagatedBuildInputs = [ ginkgo gomega gosnappy ]; + }; + + gomega = buildGoPackage rec { + rev = "8adf9e1730c55cdc590de7d49766cb2acc88d8f2"; + name = "gomega-${stdenv.lib.strings.substring 0 7 rev}"; + goPackagePath = "github.com/onsi/gomega"; + src = fetchFromGitHub { + inherit rev; + owner = "onsi"; + repo = "gomega"; + sha256 = "1rf6cxn50d1pji3pv4q372s395r5nxwcgp405z2r2mfdkri4v3w4"; + }; + }; + + gosnappy = buildGoPackage rec { + rev = "ce8acff4829e0c2458a67ead32390ac0a381c862"; + name = "gosnappy-${stdenv.lib.strings.substring 0 7 rev}"; + goPackagePath = "github.com/syndtr/gosnappy"; + src = fetchFromGitHub { + inherit rev; + owner = "syndtr"; + repo = "gosnappy"; + sha256 = "0ywa52kcii8g2a9lbqcx8ghdf6y56lqq96sl5nl9p6h74rdvmjr7"; + }; + }; + gox = buildGoPackage rec { rev = "e8e6fd4fe12510cc46893dff18c5188a6a6dc549"; name = "gox-${stdenv.lib.strings.substring 0 7 rev}"; @@ -783,6 +858,49 @@ let self = _self // overrides; _self = with self; { propagatedBuildInputs = [ kr.text ]; }; + prometheus.client_golang = buildGoPackage rec { + rev = "4627d59e8a09c330c5ccfe7414baca28d8df847d"; + name = "prometheus-client-${stdenv.lib.strings.substring 0 7 rev}"; + goPackagePath = "github.com/prometheus/client_golang"; + src = fetchFromGitHub { + inherit rev; + owner = "prometheus"; + repo = "client_golang"; + sha256 = "1mmj1r8xfi1gwb5f0l6sxjj804dhavp3pjmrqpbaa1g82bmz1hr1"; + }; + propagatedBuildInputs = [ + protobuf + golang_protobuf_extensions + prometheus.client_model + prometheus.procfs + ]; + }; + + prometheus.client_model = buildGoPackage rec { + rev = "fa8ad6fec33561be4280a8f0514318c79d7f6cb6"; + name = "prometheus-client-model-${stdenv.lib.strings.substring 0 7 rev}"; + goPackagePath = "github.com/prometheus/client_model"; + src = fetchFromGitHub { + inherit rev; + owner = "prometheus"; + repo = "client_model"; + sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9"; + }; + buildInputs = [ protobuf ]; + }; + + prometheus.procfs = buildGoPackage rec { + rev = "92faa308558161acab0ada1db048e9996ecec160"; + name = "prometheus-procfs-${stdenv.lib.strings.substring 0 7 rev}"; + goPackagePath = "github.com/prometheus/procfs"; + src = fetchFromGitHub { + inherit rev; + owner = "prometheus"; + repo = "procfs"; + sha256 = "0kaw81z2yi45f6ll6n2clr2zz60bdgdxzqnxvd74flynz4sr0p1v"; + }; + }; + pty = buildGoPackage rec { rev = "67e2db24c831afa6c64fc17b4a143390674365ef"; name = "pty-${stdenv.lib.strings.substring 0 7 rev}"; -- cgit 1.4.1