aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKurt Jaeger <pi@FreeBSD.org>2016-10-15 05:09:11 +0000
committerKurt Jaeger <pi@FreeBSD.org>2016-10-15 05:09:11 +0000
commit1f28f360aac9139bd79b407bae27fe896205fca4 (patch)
tree83819087094ebfa4dede7ce0f49874b5e26e4cff
parentd212d59fdb3ccc65af89eb99944f58e8274faa08 (diff)
downloadports-1f28f360aac9139bd79b407bae27fe896205fca4.tar.gz
ports-1f28f360aac9139bd79b407bae27fe896205fca4.zip
New port: net-mgmt/prometheus
Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true. Prometheus' main distinguishing features as compared to other monitoring systems are: - a multi-dimensional data model (timeseries defined by metric name and set of key/value dimensions) - a flexible query language to leverage this dimensionality - no dependency on distributed storage; single server nodes are autonomous - timeseries collection happens via a pull model over HTTP - pushing timeseries is supported via an intermediary gateway - targets are discovered via service discovery or static configuration - multiple modes of graphing and dashboarding support - support for hierarchical and horizontal federation WWW: https://prometheus.io/ PR: 212468 Submitted by: Jev Bjoersell <jev@ecadlabs.com>
Notes
Notes: svn path=/head/; revision=424001
-rw-r--r--GIDs2
-rw-r--r--UIDs2
-rw-r--r--net-mgmt/Makefile1
-rw-r--r--net-mgmt/prometheus/Makefile39
-rw-r--r--net-mgmt/prometheus/distinfo3
-rw-r--r--net-mgmt/prometheus/files/prometheus.in65
-rw-r--r--net-mgmt/prometheus/pkg-descr19
7 files changed, 129 insertions, 2 deletions
diff --git a/GIDs b/GIDs
index 7379cfbc0a10..8759f791ec4f 100644
--- a/GIDs
+++ b/GIDs
@@ -419,7 +419,7 @@ nomad:*:472:
# free: 475
# free: 476
# free: 477
-# free: 478
+prometheus:*:478:
# free: 479
# free: 480
# free: 481
diff --git a/UIDs b/UIDs
index ffd2cf810169..c66256ee959f 100644
--- a/UIDs
+++ b/UIDs
@@ -424,7 +424,7 @@ nomad:*:472:472::0:0:Nomad Daemon:/var/tmp/nomad:/usr/sbin/nologin
# free: 475
# free: 476
# free: 477
-# free: 478
+prometheus:*:478:478::0:0:Prometheus Daemon:/var/tmp/prometheus:/usr/sbin/nologin
# free: 479
# free: 480
# free: 481
diff --git a/net-mgmt/Makefile b/net-mgmt/Makefile
index 73edcc854a32..3e8896415136 100644
--- a/net-mgmt/Makefile
+++ b/net-mgmt/Makefile
@@ -271,6 +271,7 @@
SUBDIR += pnp-icinga
SUBDIR += pnp-icinga2
SUBDIR += portmon
+ SUBDIR += prometheus
SUBDIR += py-flowtools
SUBDIR += py-ipcalc
SUBDIR += py-ipy
diff --git a/net-mgmt/prometheus/Makefile b/net-mgmt/prometheus/Makefile
new file mode 100644
index 000000000000..1b763ef39035
--- /dev/null
+++ b/net-mgmt/prometheus/Makefile
@@ -0,0 +1,39 @@
+# Created by: Jev Björsell <ports@ecadlabs.com>
+# $FreeBSD$
+
+PORTNAME= prometheus
+PORTVERSION= 1.2.1
+DISTVERSIONPREFIX= v
+CATEGORIES= net-mgmt
+
+MAINTAINER= ports@ecadlabs.com
+COMMENT= Systems monitoring and alerting toolkit
+
+LICENSE= APACHE20
+
+USES= go gmake
+USE_GITHUB= yes
+
+GO_PKGNAME= github.com/${PORTNAME}/${PORTNAME}
+
+PLIST_FILES= bin/prometheus \
+ bin/promtool \
+ etc/prometheus.yml
+
+USE_RC_SUBR= prometheus
+
+USERS= prometheus
+GROUPS= prometheus
+
+STRIP= # stripping can break go binaries
+
+do-build:
+ (cd ${GO_WRKSRC}/cmd/prometheus ; ${SETENV} ${GO_ENV} go install)
+ (cd ${GO_WRKSRC}/cmd/promtool ; ${SETENV} ${GO_ENV} go install)
+
+do-install:
+ ${INSTALL_PROGRAM} ${GO_WRKDIR_BIN}/prometheus ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${GO_WRKDIR_BIN}/promtool ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_DATA} ${WRKSRC}/documentation/examples/prometheus.yml ${STAGEDIR}${LOCALBASE}/etc
+
+.include <bsd.port.mk>
diff --git a/net-mgmt/prometheus/distinfo b/net-mgmt/prometheus/distinfo
new file mode 100644
index 000000000000..0b5c9f835773
--- /dev/null
+++ b/net-mgmt/prometheus/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1476506739
+SHA256 (prometheus-prometheus-v1.2.1_GH0.tar.gz) = d94b0904fde618ab1c9a2e1bec98da00bb9a29faf621db55dfa313346526f91a
+SIZE (prometheus-prometheus-v1.2.1_GH0.tar.gz) = 2638657
diff --git a/net-mgmt/prometheus/files/prometheus.in b/net-mgmt/prometheus/files/prometheus.in
new file mode 100644
index 000000000000..70c824e4984c
--- /dev/null
+++ b/net-mgmt/prometheus/files/prometheus.in
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+# PROVIDE: prometheus
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# prometheus_enable (bool): Set to NO by default
+# Set it to YES to enable prometheus
+# prometheus_user (string): Set user to run prometheus
+# Default is "prometheus"
+# prometheus_group (string): Set group to run prometheus
+# Default is "prometheus"
+# prometheus_data_dir (string): Set dir to run prometheus in
+# Default is "/var/tmp/prometheus"
+# prometheus_log_file (string): Set file that prometheus will log to
+# Default is "/var/log/prometheus.log"
+# prometheus_args (string): Set additional command line arguments
+# Default is ""
+
+. /etc/rc.subr
+
+name=prometheus
+rcvar=prometheus_enable
+
+load_rc_config $name
+
+: ${prometheus_enable:="NO"}
+: ${prometheus_user:="prometheus"}
+: ${prometheus_group:="prometheus"}
+: ${prometheus_config:="%%PREFIX%%/etc/prometheus.yml"}
+: ${prometheus_data_dir:="/var/db/prometheus"}
+: ${prometheus_log_file:="/var/log/prometheus.log"}
+: ${prometheus_args:=""}
+
+pidfile=/var/run/prometheus.pid
+required_files="${prometheus_config}"
+command="/usr/sbin/daemon"
+procname="%%PREFIX%%/bin/prometheus"
+sig_reload=HUP
+extra_commands="reload"
+command_args="-p ${pidfile} /usr/bin/env ${procname} \
+ -config.file=${prometheus_config} \
+ -storage.local.path=${prometheus_data_dir} \
+ ${prometheus_args} > ${prometheus_log_file} 2>&1"
+
+start_precmd=prometheus_startprecmd
+
+prometheus_startprecmd()
+{
+ if [ ! -e ${pidfile} ]; then
+ install -o ${prometheus_user} -g ${prometheus_group} /dev/null ${pidfile};
+ fi
+ if [ ! -f "${prometheus_log_file}" ]; then
+ install -o ${prometheus_user} -g ${prometheus_group} -m 640 /dev/null ${prometheus_log_file};
+ fi
+ if [ ! -d ${prometheus_data_dir} ]; then
+ install -d -o ${prometheus_user} -g ${prometheus_group} -m 750 ${prometheus_data_dir}
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/net-mgmt/prometheus/pkg-descr b/net-mgmt/prometheus/pkg-descr
new file mode 100644
index 000000000000..6a5c6ed1d6b3
--- /dev/null
+++ b/net-mgmt/prometheus/pkg-descr
@@ -0,0 +1,19 @@
+Prometheus is a systems and service monitoring system. It collects metrics
+from configured targets at given intervals, evaluates rule expressions,
+displays the results, and can trigger alerts if some condition is observed
+to be true.
+
+Prometheus' main distinguishing features as compared to other monitoring
+systems are:
+
+- a multi-dimensional data model (timeseries defined by metric name and
+ set of key/value dimensions)
+- a flexible query language to leverage this dimensionality
+- no dependency on distributed storage; single server nodes are autonomous
+- timeseries collection happens via a pull model over HTTP
+- pushing timeseries is supported via an intermediary gateway
+- targets are discovered via service discovery or static configuration
+- multiple modes of graphing and dashboarding support
+- support for hierarchical and horizontal federation
+
+WWW: https://prometheus.io/