Merge pull request #6408 from benley/prometheus

New packages: Prometheus monitoring system
This commit is contained in:
lethalman 2015-03-24 10:11:15 +01:00
commit 990d8d1a60
10 changed files with 528 additions and 0 deletions

View file

@ -0,0 +1,56 @@
{ stdenv, lib, goPackages, fetchFromGitHub, protobuf, vim }:
with goPackages;
buildGoPackage rec {
name = "prometheus-alertmanager-${version}";
version = "0.1.0";
goPackagePath = "github.com/prometheus/alertmanager";
src = fetchFromGitHub {
owner = "prometheus";
repo = "alertmanager";
rev = "942cd35dea6dc406b106d7a57ffe7adbb3b978a5";
sha256 = "1c14vgn9s0dn322ss8fs5b47blw1g8cxy9w4yjn0f7x2sdwplx1i";
};
buildInputs = [
goPackages.glog
goPackages.protobuf
goPackages.fsnotify
goPackages.httprouter
goPackages.prometheus.client_golang
goPackages.pushover
protobuf
vim
];
buildFlagsArray = ''
-ldflags=
-X main.buildVersion ${version}
-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} blob/embed-static.sh static templates \
| gofmt > blob/files.go
)
'';
meta = with lib; {
description = "Alerting dispather for the Prometheus monitoring system";
homepage = "https://github.com/prometheus/alertmanager";
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,25 @@
{ stdenv, lib, goPackages, fetchFromGitHub }:
goPackages.buildGoPackage rec {
name = "prometheus-cli-0.2.0";
goPackagePath = "github.com/prometheus/prometheus_cli";
src = fetchFromGitHub {
owner = "prometheus";
repo = "prometheus_cli";
rev = "b36c21d2301cf686bff81953573a29a6d5a0a883";
sha256 = "190dlc6fyrfgxab4xj3gaz4jwx33jhzg57d8h36xjx56gbvp7iyk";
};
buildInputs = [
goPackages.prometheus.client_model
goPackages.prometheus.client_golang
];
meta = with lib; {
description = "Command line tool for querying the Prometheus HTTP API";
homepage = https://github.com/prometheus/prometheus_cli;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
}

View file

@ -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;
};
}

View file

@ -0,0 +1,23 @@
{ stdenv, lib, goPackages, fetchFromGitHub, }:
goPackages.buildGoPackage rec {
name = "prometheus-haproxy-exporter-0.4.0";
goPackagePath = "github.com/prometheus/haproxy_exporter";
src = fetchFromGitHub {
owner = "prometheus";
repo = "haproxy_exporter";
rev = "6ee6d1df3e68ed73df37c9794332b2594e4da45d";
sha256 = "0lbwv6jsdfjd9ihiky3lq7d5rkxqjh7xfaziw8i3w34a38japlpr";
};
buildInputs = [ goPackages.prometheus.client_golang ];
meta = with lib; {
description = "HAProxy Exporter for the Prometheus monitoring system";
homepage = https://github.com/prometheus/haproxy_exporter;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,24 @@
{ stdenv, lib, goPackages, fetchFromGitHub }:
goPackages.buildGoPackage rec {
name = "prometheus-mesos-exporter-${stdenv.lib.strings.substring 0 7 rev}";
rev = "a4a6638d6db6b5137e130cd4903b30dd82b78e9a";
goPackagePath = "github.com/prometheus/mesos_exporter";
src = fetchFromGitHub {
inherit rev;
owner = "prometheus";
repo = "mesos_exporter";
sha256 = "1h4yxfcr8l9i2m1s5ygk3slhxdrs4mvmpn3sq8m5s205abvp891q";
};
buildInputs = [ goPackages.mesos-stats ];
meta = with lib; {
description = "Export Mesos metrics to Prometheus";
homepage = https://github.com/prometheus/mesos_exporter;
licenses = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,32 @@
{ stdenv, lib, goPackages, fetchFromGitHub }:
with goPackages;
buildGoPackage rec {
name = "prometheus-node-exporter-0.8.0";
goPackagePath = "github.com/prometheus/node_exporter";
src = fetchFromGitHub {
owner = "prometheus";
repo = "node_exporter";
rev = "aaf01e52e25883671fd67234b415df7abd0e4eac";
sha256 = "0j1qvgsc2hcv50l9lyfivkzsyjkjp3w1yyqvd1gzfybk7hi59dya";
};
buildInputs = [
glog
go-runit
ntp
prometheus.client_golang
prometheus.client_model
protobuf
];
meta = with lib; {
description = "Prometheus exporter for machine metrics";
homepage = https://github.com/prometheus/node_exporter;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,51 @@
{ stdenv, lib, goPackages, fetchFromGitHub }:
with goPackages;
buildGoPackage rec {
name = "prometheus-pushgateway-${version}";
version = "0.1.0";
goPackagePath = "github.com/prometheus/pushgateway";
rev = "3f1d42dade342ddb88381607358bae61a0a6b6c7";
src = fetchFromGitHub {
inherit rev;
owner = "prometheus";
repo = "pushgateway";
sha256 = "1wqxbl9rlnxszp9ylvdbx6f5lyj2z0if3x099fnjahbqmz8yhnf4";
};
buildInputs = [
go-bindata
protobuf
httprouter
golang_protobuf_extensions
prometheus.client_golang
];
buildFlagsArray = ''
-ldflags=
-X main.buildVersion ${version}
-X main.buildRev ${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"
go-bindata ./resources/
)
'';
meta = with lib; {
description =
"Allows ephemeral and batch jobs to expose metrics to Prometheus";
homepage = https://github.com/prometheus/pushgateway;
license = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,27 @@
{ stdenv, lib, goPackages, fetchFromGitHub }:
goPackages.buildGoPackage rec {
name = "prometheus-statsd-bridge-${stdenv.lib.strings.substring 0 7 rev}";
rev = "9715b183150c7bed8a10affb23d33fb55c597180";
goPackagePath = "github.com/prometheus/statsd_bridge";
src = fetchFromGitHub {
inherit rev;
owner = "prometheus";
repo = "statsd_bridge";
sha256 = "119024xb08qjwbhplpl5d94bjdfhn92w4ffn4kxr7aviri1gynfz";
};
buildInputs = with goPackages; [
fsnotify
prometheus.client_golang
];
meta = with lib; {
description = "Receives StatsD-style metrics and exports them to Prometheus";
homepage = https://github.com/prometheus/statsd_bridge;
licenses = licenses.asl20;
maintainers = with maintainers; [ benley ];
platforms = platforms.unix;
};
}

View file

@ -8392,6 +8392,22 @@ let
postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
prometheus = callPackage ../servers/monitoring/prometheus { };
prometheus-alertmanager =
callPackage ../servers/monitoring/prometheus/alertmanager { };
prometheus-cli =
callPackage ../servers/monitoring/prometheus/cli { };
prometheus-haproxy-exporter =
callPackage ../servers/monitoring/prometheus/haproxy_exporter { };
prometheus-mesos-exporter =
callPackage ../servers/monitoring/prometheus/mesos_exporter { };
prometheus-node-exporter =
callPackage ../servers/monitoring/prometheus/node_exporter { };
prometheus-pushgateway =
callPackage ../servers/monitoring/prometheus/pushgateway { };
prometheus-statsd-bridge =
callPackage ../servers/monitoring/prometheus/statsd_bridge { };
psqlodbc = callPackage ../servers/sql/postgresql/psqlodbc { };
pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {

View file

@ -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}";
@ -203,6 +215,18 @@ let self = _self // overrides; _self = with self; {
};
};
fsnotify = buildGoPackage rec {
rev = "4894fe7efedeeef21891033e1cce3b23b9af7ad2";
name = "fsnotify-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "github.com/howeyc/fsnotify";
src = fetchFromGitHub {
inherit rev;
owner = "howeyc";
repo = "fsnotify";
sha256 = "09r3h200nbw8a4d3rn9wxxmgma2a8i6ssaplf3zbdc2ykizsq7mn";
};
};
g2s = buildGoPackage rec {
rev = "ec76db4c1ac16400ac0e17ca9c4840e1d23da5dc";
name = "g2s-${stdenv.lib.strings.substring 0 7 rev}";
@ -215,6 +239,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}";
@ -231,6 +268,18 @@ let self = _self // overrides; _self = with self; {
buildInputs = [ sets go-simplejson check-v1 ];
};
goautoneg = buildGoPackage rec {
rev = "75cd24fc2f2c2a2088577d12123ddee5f54e0675";
name = "goautoneg-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "bitbucket.org/ww/goautoneg";
src = fetchhg {
inherit rev;
url = "https://${goPackagePath}";
sha256 = "19khhn5xhqv1yp7d6k987gh5w5rhrjnp4p0c6fyrd8z6lzz5h9qi";
};
};
gocheck = buildGoPackage rec {
rev = "87";
name = "gocheck-${rev}";
@ -267,6 +316,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}";
@ -450,6 +549,18 @@ let self = _self // overrides; _self = with self; {
};
};
go-runit = buildGoPackage rec {
rev = "a9148323a615e2e1c93b7a9893914a360b4945c8";
name = "go-runit-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "github.com/soundcloud/go-runit";
src = fetchFromGitHub {
inherit rev;
owner = "soundcloud";
repo = "go-runit";
sha256 = "00f2rfhsaqj2wjanh5qp73phx7x12a5pwd7lc0rjfv68l6sgpg2v";
};
};
go-simplejson = buildGoPackage rec {
rev = "1cfceb0e12f47ec02665ef480212d7b531d6f4c5";
name = "go-simplejson-${stdenv.lib.strings.substring 0 7 rev}";
@ -544,6 +655,18 @@ let self = _self // overrides; _self = with self; {
go-homedir ldap g2s gox govers ];
};
httprouter = buildGoPackage rec {
rev = "bde5c16eb82ff15a1734a3818d9b9547065f65b1";
name = "httprouter-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "github.com/julienschmidt/httprouter";
src = fetchFromGitHub {
inherit rev;
owner = "julienschmidt";
repo = "httprouter";
sha256 = "1l74pvqqhhval4vfnhca9d6i1ij69qs3ljf41w3m1l2id42rq7r9";
};
};
influxdb-go = buildGoPackage rec {
rev = "63c9a5f67dcb633d05164bf8442160c9e2e402f7";
name = "influxdb-go-${stdenv.lib.strings.substring 0 7 rev}";
@ -659,6 +782,20 @@ let self = _self // overrides; _self = with self; {
propagatedBuildInputs = [ go-codec armon.go-metrics ];
};
mesos-stats = buildGoPackage rec {
rev = "0c6ea494c19bedc67ebb85ce3d187ec21050e920";
name = "mesos-stats-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "github.com/antonlindstrom/mesos_stats";
src = fetchFromGitHub {
inherit rev;
owner = "antonlindstrom";
repo = "mesos_stats";
sha256 = "18ggyjf4nyn77gkn16wg9krp4dsphgzdgcr3mdflv6mvbr482ar4";
};
propagatedBuildInputs = [ prometheus.client_golang glog ];
};
mgo = buildGoPackage rec {
rev = "2";
name = "mgo-${rev}";
@ -694,6 +831,18 @@ let self = _self // overrides; _self = with self; {
};
};
ntp = buildGoPackage rec {
rev = "0a5264e2563429030eb922f258229ae3fee5b5dc";
name = "ntp-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "github.com/beevik/ntp";
src = fetchFromGitHub {
inherit rev;
owner = "beevik";
repo = "ntp";
sha256 = "03fvgbjf2aprjj1s6wdc35wwa7k1w5phkixzvp5n1j21sf6w4h24";
};
};
oglematchers = buildGoPackage rec {
rev = "4fc24f97b5b74022c2a3f4ca7eed57ca29083d3e";
name = "oglematchers-${stdenv.lib.strings.substring 0 7 rev}";
@ -757,6 +906,18 @@ let self = _self // overrides; _self = with self; {
};
};
beorn7.perks = buildGoPackage rec {
rev = "b965b613227fddccbfffe13eae360ed3fa822f8d";
name = "beorn7.perks-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "github.com/beorn7/perks";
src = fetchFromGitHub {
inherit rev;
owner = "beorn7";
repo = "perks";
sha256 = "1p8zsj4r0g61q922khfxpwxhdma2dx4xad1m5qx43mfn28kxngqk";
};
};
pflag = buildGoPackage rec {
date = "20131112";
rev = "94e98a55fb412fcbcfc302555cb990f5e1590627";
@ -783,6 +944,51 @@ let self = _self // overrides; _self = with self; {
propagatedBuildInputs = [ kr.text ];
};
prometheus.client_golang = buildGoPackage rec {
name = "prometheus-client-${version}";
version = "0.3.2";
goPackagePath = "github.com/prometheus/client_golang";
src = fetchFromGitHub {
owner = "prometheus";
repo = "client_golang";
rev = "${version}";
sha256 = "1fn56zp420hxpm0prr76yyhh62zq3sqj3ppl2r4qxjc78f8ckbj4";
};
propagatedBuildInputs = [
protobuf
golang_protobuf_extensions
prometheus.client_model
prometheus.procfs
beorn7.perks
goautoneg
];
};
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}";
@ -795,6 +1001,18 @@ let self = _self // overrides; _self = with self; {
};
};
pushover = buildGoPackage rec {
rev = "a8420a1935479cc266bda685cee558e86dad4b9f";
name = "pushover-${stdenv.lib.strings.substring 0 7 rev}";
goPackagePath = "github.com/thorduri/pushover";
src = fetchFromGitHub {
inherit rev;
owner = "thorduri";
repo = "pushover";
sha256 = "0j4k43ppka20hmixlwhhz5mhv92p6wxbkvdabs4cf7k8jpk5argq";
};
};
raw = buildGoPackage rec {
rev = "724aedf6e1a5d8971aafec384b6bde3d5608fba4";
name = "raw-${stdenv.lib.strings.substring 0 7 rev}";